■■Servlet/JSP(EJB含む)質問スレ Part4■■
3 :
nobodyさん :2005/06/02(木) 01:23:57 ID:H2oPsMVa
書いたひとが祥寛ちゃんだ、というのは除いて? 基本的に、だいぶ叩かれて修正されてるから間違ってはないと思う。 まず、値を格納するBeanに、その値をデータベースからとってくる処理が入ってる。 Beanは値を格納することに専念するべき。処理は別クラス ここに書いてるようなやり方だと、どこに書いていいかわからない処理がいっぱい出てきて破綻する。 あと、データソースの設定の書式はTomcatのバージョンで違うから、設定ファイル書くんじゃなくてadminツールを使う。
5 :
nobodyさん :2005/06/02(木) 15:08:05 ID:YneXANuw
すいません、質問お願いします。 JSPです。 フォームを使ってユーザー名や性別などをサーバーに送信し、 そのサーバーに送信された情報をユーザー側のPCでテーブル上で表示するにはどうしたらいいでしょうか? 情報(送信された回数)が増えればそれらの情報全てをテーブルに蓄積させていきたいです。
<%@page contentType="text/html; charset=Windows-31J"%> <table> <tr><td>${paramValue.name}</td><td>${paramValue.sex}</td></tr> </table>
7 :
5 :2005/06/02(木) 23:27:35 ID:FvzNxNAr
>>6 ありがとうございます!!
助かりました!!
8 :
nobodyさん :2005/06/02(木) 23:47:04 ID:AiHl+iFb
ログインされた状態で 10分間何もせずにその後何か実行させたらメッセージをだしてログアウトさせたいのですが それってTomcat5で可能でしょうか? やりかたがよくわからないのですが いいやり方とかあればおしえてください
9 :
6 :2005/06/02(木) 23:47:19 ID:???
マジデスカッΣΣ(゚д゚lll)
10 :
5 :2005/06/03(金) 00:00:47 ID:FvzNxNAr
>>6 実行してみたらうまくいきませんでした・・・。
${paramValue.name} ${paramValue.sex} と表示されるだけです。
ちなみに
input.htmlというファイル
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-type" content="text/html; charset=Shift_JIS">
<title>form input</title>
</head>
<body>
<p><b>Form input</b>
<p><form action="form.jsp">
Name <input type="text" name="name" size=25><br>
Birth day <input type="text" name="sex" size=15><br>
<br>
<input type="submit" value="Submit">
</form></p>
</body>
</html>
form.jspというファイル
<%@page contentType="text/html; charset=Windows-31J"%>
<table>
<tr><td>${paramValue.name}</td><td>${paramValue.sex}</td></tr>
</table>
でやってます。
どう改善すればいいでしょうか?
${paramValue.name} こんなしんタクすってあったっけ? 三年も離れてると物忘れはげすぃ
・・・遅すぎ
>>10 ${param.name}と${param.sex}でやってみて。
14 :
nobodyさん :2005/06/03(金) 01:30:34 ID:fwZtEJ6Q
jspで困っております・・。 サーブレットを利用したものではなく jspのみでテキストファイルに書き出す方法を教えていただけませんでしょうか? javaの時のようにやってみるのですが?どうにもどこにも書きこまれません。 コンパイルは一応とおるのですが、指定ファイル名が認識されてないのでしょうか? 簡単なサンプルコードなどを教えていただけるとたすかります。 初歩的な質問で申し訳ありませんがどなたか教えてください。
15 :
nobodyさん :2005/06/03(金) 01:31:08 ID:yfSf3buM
すいません。 他スレで聞いたんですが、なかなかレスが付かないのでここで質問させてください。 質問お願いします。 JSPです。 フォームを使ってユーザー名や性別などをサーバーに送信し、 そのサーバーに送信された情報をユーザー側のPCでテーブル上で表示するにはどうしたらいいでしょうか? 情報(送信された回数)が増えればそれらの情報全てをテーブルに蓄積させていきたいです。
16 :
15 :2005/06/03(金) 01:32:47 ID:yfSf3buM
すいません、 手違いで重複してしまいました・・・。
>>14 <%
FileWriter fw = new FileWriter("c:\\test.txt");
fw.write("aaa");
fw.close();
%>
18 :
nobodyさん :2005/06/03(金) 01:48:48 ID:fwZtEJ6Q
だめっていうのは、どういうこと? 例外が出る?
20 :
15 :2005/06/03(金) 02:45:47 ID:yfSf3buM
>>18 ありがとうございます。
一つ気になったんですが、私がやろうとしているコトはデータベース自体をいじらないとできないのでしょうか?
データをデータベースに登録して表示したいなら、データベースにデータ書き込まないとできないよ。
22 :
15 :2005/06/03(金) 03:21:34 ID:yfSf3buM
>>21 そうですか、ありがとうございます。
データデースうんぬん抜きで出来る事をやらされていると思うのですが、
たぶん私の考え違いかもしれません。でもって今まで色々調べて見たんですが、やっぱりわかりません・・・。
input.htmlというファイルで
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>無題ドキュメント</title>
</head>
<body>
<h1>テスト</h1>
<form name="form1" method="post" action="">
<p>名前はなんですか?
<input name="name" type="text" size="50"><br>
出身はどこですか?!?
<input name="from" type="text" size="50"><br>
趣味はなんですか?
<input name="hoby" type="text" size="50">
</p>
<p>
<input type="submit" name="Submit" value="送信">
</p>
</form>
</body>
</html>
というソースを書きました。
これを実行した際にフォームに文章を記入し送信ボタンを押すと、送信しただけそのデータがテーブル状で表示されるようにしたいです。
それはどうすればいいでしょうか?ネットで検索しても本で調べてもわかりません・・・。
お願いします。
applicationスコープにつっこめ。
24 :
15 :2005/06/03(金) 03:41:56 ID:yfSf3buM
>>23 すいません。専門的過ぎるコトはわかりません・・・。
勉強する気がないならあきらめろ。
27 :
nobodyさん :2005/06/04(土) 01:46:18 ID:JA2V/49m
質問があります。 どなたか教えて下さい。 textデータをJSPで表示しようとすると文字化けしてしまいます。 数字やローマ字は平気なんですが・・・。 これはどうすれば解消できますか?
>>27 出力のコンテントタイプと文字エンコーディング名を指定していない。
29 :
nobodyさん :2005/06/04(土) 02:08:53 ID:JA2V/49m
>>28 解決できました!!
ありがとうございます!!
30 :
nobodyさん :2005/06/04(土) 16:25:53 ID:DfR1Y7ro
strutsの開発でstrutsタグで <html:text property="test" value=""> などtextやselectなどを入れたときは正常に表示されるのですが <html:checkbox property="test" value=""/> などチェックボックスタグを入れたとき、画面上に javax.servlet.ServletException: ????????Bean org.apache.struts.taglib.html.BEAN ?????? が帰ってきて表示エラー表示になります struts-html.tldをみると <name>checkbox</name> <tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass> <attribute> と一応存在していますのでタグがないわけではなさそうです どこが悪いのでしょうか? どうか教えてください
31 :
nobodyさん :2005/06/04(土) 16:51:30 ID:3cT7rHu9
actionFormは正しく指定されているのかと
32 :
nobodyさん :2005/06/04(土) 17:00:59 ID:DfR1Y7ro
>>31 ??
テキストはアクションフォームは正しくセットされなくても表示できて
チェックボックスはアクションフォームに正しくセットされてなくちゃいけないの?
33 :
nobodyさん :2005/06/07(火) 00:55:57 ID:d9HK/fVm
Tomcatの質問はこちらでOKですか……? 「tomcat」でスレタイ検索かけたのですが、専用スレがないみたいで。 サーブレットを動かしたいのですが、tomcatが立ち上がらないのです。 OKなら詳細書きます。 よりふさわしいスレがあるようでしたら誘導お願いします。
ヒントでも書いとけば、回答あったのにね。
35 :
33 :2005/06/07(火) 07:22:09 ID:???
>34 私のことでしょうか……? コンテキストの設定の問題だと思うのですが、 ソースとか載せたいので、 ここでいいのかわからない状態では書きにくいです。 過去スレでtomcatスレはあったんだけどなぁ。
Tomcatが起動しないのにソースとか関係ないと思うが。 コンテキストの設定がまずい場合も、そのコンテキストが立ち上がらないだけでTomcat自体は立ち上がるはず。
環境ぐらい書けよ
38 :
33 :2005/06/07(火) 11:03:13 ID:WvJdcIR8
>>36 そうなんですか……?
インストール直後の状態だときちんと立ち上がり、
<context>〜</context>を追加すると、エラーが出て立ち上がらず、
その部分をコメントアウトするとまた起動するので、
てっきりその問題だと思ったのですが……。
>>37 応えてくださる方がいらっしゃるようなので、改めて書きます。
スレ違いの質問になってしまうと思ったので、伏せておきました。
ご不快にさせてしまったのなら、ごめんなさい。
win2000、Tomcat4.1を使用しています。
インストール後、起動させて「localhost:8080」のテストをして、
きちんと画面が表示されることを確認しました。
そこで、自作のサーブレットを動かす為に、
server.xmlの</host>の直前に以下を追記した所、
エラーが出てTomcatが起動しなくなりました。
ただし、その部分をコメントアウトすると、また正しく起動します。
◆追加した記述◆
<Context path="/javaroad" docBase="webapps/javaroad" debug="0" reloadable="true">
</Context>
エラーログは次に貼ります。
39 :
33 :2005/06/07(火) 11:03:59 ID:WvJdcIR8
◆エラー◆ Catalina.start: LifecycleException: 以前のエラーのためにコンテキストの起動が失敗しました LifecycleException: 以前のエラーのためにコンテキストの起動が失敗しました at org.apache.catalina.core.StandardContext.start(StandardContext.java:3578) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141) at org.apache.catalina.core.StandardHost.start(StandardHost.java:707) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2143) at org.apache.catalina.startup.Catalina.start(Catalina.java:463) at org.apache.catalina.startup.Catalina.execute(Catalina.java:350) at org.apache.catalina.startup.Catalina.process(Catalina.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
40 :
33 :2005/06/07(火) 11:04:13 ID:WvJdcIR8
サービス Tomcat-Standalone を停止します Catalina.stop: LifecycleException: Coyoteコネクタは起動されていません LifecycleException: Coyoteコネクタは起動されていません at org.apache.coyote.tomcat4.CoyoteConnector.stop(CoyoteConnector.java:1296) at org.apache.catalina.core.StandardService.stop(StandardService.java:499) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2178) at org.apache.catalina.startup.Catalina.start(Catalina.java:494) at org.apache.catalina.startup.Catalina.execute(Catalina.java:350) at org.apache.catalina.startup.Catalina.process(Catalina.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156) 長々とごめんなさい。 何かおわかりになる方がいらっしゃいましたら、 ご回答よろしくお願いいたします。
docBase="webapps/javaroad" → docBase="javaroad" ※Tomcatインストールディレクトリ/webapps/javaroad があるという前提。 Tomcatインストールディレクトリ/webapps/webapps/javaroad があるのならあなたの設定は正しい。
42 :
nobodyさん :2005/06/07(火) 18:03:08 ID:JFan3jc8
再度お世話になります。
SUN Java App Server 8を利用しています。ファイルREALMではない認証方式を
りようしたいと考えています。LDAPに興味があるのですが、どなたか
SUN Java App Server 8でLDAPを利用していらっしゃいませんか?
参考になるサイトをご紹介頂ければ大変嬉しいです。
公式マニュアルにはSSHとファイルREALMの方法しか書かれていません。
BEAのサーバーにはLDAP付属しているそうですので、SUNのサーバーでも
できるはずだと思うのですが。
どうぞ宜しくお願い致します。
>>33 SUN Java App Server 8のご利用をお奨めします。インストール大変簡単です。
>>38 Tomcat4.1で、server.xmlに<context>を追加するな、と。
44 :
nobodyさん :2005/06/07(火) 23:11:13 ID:51Ax6C6R
web開発で質問ですが よく画像ファイルを挿入する場合たいていgifファイルを使ってますよね? あれって例えば他の画像用の拡張子であるたとえばJPGじゃ駄目というか gifを使ったほうがいいという何か理由ってあるのでしょうか?
>>44 見た目の画質の割にファイルサイズを小さくできるからだろ。
jpegで同じファイルサイズにするともっと荒く見えたりする。
46 :
nobodyさん :2005/06/08(水) 15:09:56 ID:nLK15AOn
簡単なJSPを作ってセッションの変化を確認するテストをするために <p><%=request.getSession(true).getId()%></p> を<body>タグの中に書いてリロードさせているんだけど IEとネスケでそれぞれクッキーを無効に設定して やってみたところネスケはリロードするたびにSessionIDが変化して IEは変化しなかった。 動きとしてはネスケの方が正しいと思うんだけど なぜIEだとクッキーを送信しているような動きに? SERVER Windows2000 SP4 + Tomcat5.0.28 CLIANT WindowsXP Home SP2 + IE6.0
47 :
nobodyさん :2005/06/08(水) 15:32:58 ID:nLK15AOn
46だけど ひょっとしてIEの仕様でイントラの クッキーは受け取るということかな つまり、イントラにはクッキーを制御する設定がない? 指揮者のだれかおせーて。
>イントラにはクッキーを制御する設定がない? そういうこと。 localhostじゃなくて127.0.0.1を使ってみれ。
49 :
nobodyさん :2005/06/08(水) 16:09:44 ID:nLK15AOn
>>48 >localhostじゃなくて127.0.0.1を使ってみれ。
たしかに・・・
直IPだとIEはインターネットとして扱うんですね。
プライベートIPであっても。
どーもでした。
現行のEJB2.0の使用用途がまるっきり見えて来ないんですが どこいうところで使うもんなんですか? シリアライズしまくりで、サーバにも優しく無い上に リモートルックアップするのにコストかかり過ぎです。 ローカルルックアップするぐらいなら、 普通のBeanで組んだ方が速いですよね。 EJBって実用段階に来てない気がしてならないんですが。 罠じゃないんですかEJBって。
EJB2に不満ならSpring+Hibernateでも使えばいいし、EJB3のプレビューも出てき始めてる中、なにをいまさら・・・
Spring、Hibernate 結構興味深いなぁ。 BeanからSQL流すのと、どっちが速いか検証してみる価値は十分ありそう。
実行の速さを競うもんじゃないからなぁ。 「Hibernateの場合はCGLIBを使ってるので10%くらいしか遅くならない」というのが売り文句だったりするわけだし。 開発の早さを競うもんだ。クリティカルな部分だけSQL直で。
55 :
nobodyさん :2005/06/09(木) 13:36:57 ID:0Vlq/rvk
サーブレットコンテナの管理用 GUI からウェブアプリの環境変数を設定することってできないんでしょうか? たとえば、サーブレットが管理者のメールアドレスを表示するようなケースで、メールアドレスを GUI から設定したいのです。 web.xml の init-param は、管理者が手で編集しないといけないし、データベースに格納する場合は、メールアドレスを書き込むための GUI を別途用意しなければいけませんよね? tomcat と JRun 4 を使っています。
56 :
nobodyさん :2005/06/10(金) 17:43:47 ID:utqCHAzS
auでフォームに入力した値をサーブレットで取りたいのですが、 POSTとGETで取得するときのエンコードを変えないと文字化けするのですが そういうものなのでしょうか? auでPOSTの場合 byte[] arrBytes = sText.getBytes("WINDOWS-31J"); String sResult = new String(arrBytes, "WINDOWS-31J"); auでGETの場合 byte[] arrBytes = sText.getBytes("ISO-8859-1"); String sResult = new String(arrBytes, "WINDOWS-31J"); ちなみにPC(IE)やドコモ、ボーダフォンはGETとPOSTともに getBytes("ISO-8859-1")でいけました。
>>55 サーバにCSVかXMLにして保存。
じゃだめなの?
MVCモデルについて質問なんですが C→M→VとM→C→Vはどちらが正しい、 または能率がいいのでしょうか?
>>59 JavaBeanから直にJSPがデータを受け取るのと、
Servletを経由してからJSPで表示するののどちらがいいのか?
ということなのですが・・・
>>56 そういうものです。URIEncodingを設定してください。
それよりsetBodyEncodingForURIを設定してsetCharacterEncodingするのが楽だと思うけど。
>>60 で、Servletが受け取った値はどうやってJSPが受け取るのだ?
WebではMVCにするよりレイヤーパターンにしたほうがいいと思うけど。
>>58 理想を言えば、MVCはそれぞれ独立していて、どれも同じレベルであるものです。
(三権分立みたいな感じ?)
MもVもCもそれぞれが独立したパーツで、Mを別のMに切り替えようとVもCも全く関係なく、Vを別のVに切り替えようとMもCもまったく関係ないというものです。
>>62 解説してるサイトではどこも微妙に説明が違ってて悩んでました
図なんかではModelがControllerとだけ繋がってたりするので・・・
明確に分離するにはそっちの方がいいのかと思ってました
レイヤーパターンというのも調べてみたいと思います
>>63 それぞれ独立していればMVCモデルの利点は保たれるということでしょうか?
>>57 シェルがどうとか ftp がどうとか、面倒になるので、ユーザーにコンソールを使わせたくないのです。
すべてをウェブブラウザで操作できるようにしておきたい。
>>64 独立したらMVCモデルじゃない。MVCは三角形の関連ができてこそMVCなんだけど、VとMが関連すべきではないということでレイヤースタイルになる。
だから、最近の「MVCモデル」の説明は全然「MVCモデル」になってない。
mvc model2のことかーーーー
それ以外のMVCだと、ぶっちゃけUI系とデータ系と処理系の3部分に別れてたらとりあえずMVCって感じで、設計の基準にならない。
69 :
nobodyさん :2005/06/12(日) 02:22:28 ID:qiQ42OR2
MVCやるなら、Struts使おう。
70 :
nobodyさん :2005/06/12(日) 11:19:57 ID:LhGlNmPa
71 :
nobodyさん :2005/06/12(日) 11:26:48 ID:LhGlNmPa
70はstrutsでの話です
で、まあ、ここに書いてあるような、データ格納用のJavaBeanにデータ操作メソッドを書くというのは、やめたほうがいいわけだ。
73 :
nobodyさん :2005/06/12(日) 15:08:28 ID:LhGlNmPa
>>72 ということは
例えば他にどういうやり方があるのでしょうか?
>>70 StrutsでもJSFでもTapestoryでもSpringでもいいから、とりあえず入門書買え。
その方が早そうだ。
JavaBeanは単純に値を格納するだけのsetter/getterだけを持つクラスにして、データ転送用のオブジェクトを用意する。 ValueObject(VO)とDataTransferObject(DTO)っていうパターン。 DTOは前はDataAccessObject(DAO)っていう名前だった。 でもデータアクセス自体はORマッピングが行うことも多いから、DAOじゃなくてDTOに変わった。 「エンタープライズアプリケーションアーキテクチャパターン」だと「バリューオブジェクト」と「データ変換オブジェクト」
正解キボンヌ
JavaBeanは単純に値を格納するだけのsetter/getterだけを持つクラスにして、データ転送用のオブジェクトを用意する。 →これは一つのやり方としてはあり。 ValueObject(VO)とDataTransferObject(DTO)っていうパターン。 →DAOとDTOだ。 DTOは前はDataAccessObject(DAO)っていう名前だった。 →大嘘。ValueObject(VO)がDataAccessObject(DAO)になった。
まちがえた。 ValueObject(VO)がDataTransferObject(DTO)になった。
80 :
75 :2005/06/12(日) 16:05:10 ID:???
sunのパターンだとVO+DAOで、マーチンファウラーのパターンだとDTO+DAOか。 ごっちゃになってた。 ところで、PofEAAの訳本、DTOは「データ変換オブジェクト」って訳されてるはずなのに「データ転送オブジェクト」も索引にのってて、そのページには両方の言葉が混じってるので激ワロス
Sunも2年ぐらい前からはDTO+DAOだよ。 ちなみに、DTOは「データ転送オブジェクト」だ。
82 :
nobodyさん :2005/06/12(日) 17:16:27 ID:zSMpRE9A
それじゃあ単純に値を格納するだけのsetter/getterだけを持つクラスは DAOなの?DTOなの?
>>82 DTO。(以前はValueObject)
DAOはEIS層からデータの出し入れ処理を実装するクラスだ。
へぇ
85 :
nobodyさん :2005/06/13(月) 10:56:35 ID:RXkwJR48
SunJavaSystem7ASでクラスパスを通すとき、server.policyでパーミッションを指定しないとだめでしょうか? JDBCドライバなんかは無指定で見えてるのですが、自前のjarが見えません。
Tomcat上でJSPを動かしてるのですが、 JSPからみて ../WEB-INF/classes にあるclassファイルの メソッドを呼び出せないのでしょうか?
呼べるよ
88 :
86 :2005/06/13(月) 23:09:22 ID:???
どのように呼ぶのでしょうか? servletと同じように宣言したらシンボルエラーが出てしまいます。
> servletと同じように宣言したら おまえがServletでどう宣言しているのかもわからないし >シンボルエラーが出てしまいます。 「シンボルエラーが出る」がどういうことなのかもよくわからん。
JSPのようなメソッド名を書かないJavaでは 再帰プログラミングはどう行えばいいんでしか? (´・ω・)
inner class
formからサーブレットに文字列を送るとき、 >や<などを渡すとテキストとしてではなくHTMLとして読まれてしまいます。 つまり、<hr> のようなテキストを送信すると <hr>として解釈されてしまい、困ってます。 これはサーブレット側でHTMLエンコードのメソッドを作って解決するしか無いのでしょうか? formからはPostで送りたいのでenctype="application/x-www-form-urlencoded"でしか 送信できないのがいけないのでしょうか・・・。 どなたか、解決策あったらご教示いただけないでしょうか? よろしくお願いします。
HTMLもテキストなのだが・・・
95 :
nobodyさん :2005/06/17(金) 23:28:57 ID:QbQnTgUm
Strutsでデータベースを取得するときに アクションクラスの役割ですが アクションクラス内でDB取得メソッドを呼び出すのが普通なんでしょうか? それともアクションクラスでビジネスロジックを呼び出して、 そのビジネスロジック内からDB取得メソッドを 呼び出すのが普通のやり方なんでしょうか?
96 :
nobodyさん :2005/06/18(土) 07:13:21 ID:tWCSnidS
セッションの情報って各クライアントのブラウザに格納されるのでしょうか?
99 :
nobodyさん :2005/06/19(日) 23:11:37 ID:nbw7nWZR
そ
d
tomcat 4.1-31にJFS1.1とjakarta-taglibs1.0をインストールすると
java.lang.ClassNotFoundException: org.apache.catalina.Container
が出て起動すらできなくなります。パスも通しているので問題はないと
思っています。
common/libの下に以下を参考に7ファイル組み込みました。
ttp://dream.mods.jp/jsf/tom5andjsf/tom5.html
JSFはTomcat4で動いたっけ?
common/libにライブラリ入れるな、とか思うけどな。
myfacesならTomcat4で動くみたいなので、JSFが対応してないわけじゃないと思う。
そうなの?
107 :
nobodyさん :2005/06/20(月) 19:51:12 ID:7r24+CZe
JSFはJSP2.0、つーかJSTL1.1が使えないと、かなり機能制限されて
しまうのだよ。だからTomcatなら5.0.x以降にした方が快適なのは
間違いない。
>>105 最近バグも減ってきたんじゃない? bug発見したらその
機能を使うのを我慢する、というスタンスでもそこそこ行けそうな
気がするけど。
>>105 ブラウザのリロードで画面遷移してしまう(しかも行ったり来たり)とか、
セッションタイムアウトでも何食わぬ顔でもう一度同じ画面を返してくるとか、
「その機能を使わなければいい」では済まないバグが多々ある。
commnadLinkもおかしかった。(すべてバージョン1.0.9)
RI(1.1_01)に入れ替えてみたら普通に動くのも確認済み。
皆さんありがとうございます。common/libに入れないでWEB-INFに*.jarを組み込むのが礼儀なのでしょうか。
>>107 さんの言う通り、Tomcat-5.0.28にすると問題は発生しなくなりました。
しかしEclipse3.0.2+Tomcat5.0.28+FacesIDE+TomcatPluginV3+Myfacesという環境で
test.jspを作成し<h:inputText value="#{hoge.str}"/>というような一行を
存在するだけで、通常のHTMLタグは認識されますが上のようなカスタムタグは
一切認識されません。
<body><h2>test</h2><h:inputText value="#{hoge.str}"/></body>と書くと
<body><h2>test</h2></body>だけがレスポンスとして返ってきます。やはり
facesIDE+myfacesという環境をやめて何か別の環境でJSFを構築したいのですが
何か代替するものはあるのでしょうか?
こんなのも出ちまうぜw HTTP????? 500 ?? The server encountered an internal error () that prevented it from fulfilling this request. javax.servlet.ServletException: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244) javax.servlet.http.HttpServlet.service(HttpServlet.java:809) java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:568) org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401) org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248) org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:179) 以下略 ?? ?????????????????Apache Tomcat/5.0.30????????????
111 :
nobodyさん :2005/06/21(火) 14:19:50 ID:Ld99PUeC
知恵を貸してください。 Tomcat 5.5系(+Eclipse)を使っています。 ハードをモニタするために、スレッドを一つ活かしておいて、servletにアク セスがあったときにはそのスレッド(のinstance)に聞いて最新n個を応答する、 みたいなことがやりたいのですが、別プログラムにしてファイル保存→ servletで読み出して参照、以外の方法がおもいつきません。 なにか気の効いた方法(パターン?)があれば教えてください。
112 :
111 :2005/06/21(火) 14:57:26 ID:???
あー少し誤解してた。Servletって活きたままなので、そのThread自身が manageできる場合は直接管理しておけばいいわけね。
113 :
プログラマの皆さんにお尋ねします。 :2005/06/21(火) 19:45:07 ID:YhSaII8H
再度お世話になります。全部読ませていただきましたが、STRUTSの人気がかなりのようですね。 私は以前こちらで「WEBアプリの基本はフレームワークなし」と 「STRUTSなんて要らない。開発を複雑にしているだけ。滅びるに値する」という 書き込みが大変気になりまして、実際の開発ではSTRUTSもなにも使いませんでした。 開発当初はCMP−EJB2.0にうつつを抜かし、見事に大失敗しまして、今は SUNの純正JAVAサーバーのDEPLOYTOOLを利用しながらフレームワーク無しで 仕事をしています。データーベースアクセスは直接JSPに書き込んでいます。 MVCではありませんが、ページごとの管理ですので意外に開発が楽でした。 ご質問なのですが、こちらの皆さんは従来のEJBには利用価値があるとおもいますか。 HIBERNATEを利用されている方に特にお尋ねしたいです。 また、私はSUNのDEPLOYTOOLの愛用者なのですが、ECLIPSEにも同じようなDEPLOYMENT DESCRIPTOR作成TOOLが付属しているのでしょうか。EARファイル、JARファイルの作成は 手書きなのでしょうか。 上の2つを是非お聞きしたいです。どうぞ宜しくお願い致します。
ごめん、釣だよね
115 :
プログラマの皆さんにお尋ねします :2005/06/21(火) 21:05:00 ID:YhSaII8H
>>114 いえ。113に書いたことは真面目な質問なんです。やはり私はアマのままなのかな。。。
ページごとの管理なのにEJB使うのがアホでした、と。
EJB3はいいけどold EJBはPOJOにとって変わるのでは? EJBが廃れたのもコストがかかりすぎるからでしょ?
XDoclet使えばEJBもそんなに苦じゃない。
そこでNetBeans4.1ですよ、と。
>>113 フレームワーク無しなんて信じられない。
つーか、直にServlet書いた経験って過去物語。
だけど今から勉強して自身で使うならStrutsは
薦められない。何故ならStruts2.0(Shale)は
今のStrutsとは全く形が違うし、下位互換が
無いことがハッキリしてるから。
分散環境でないならEJB使う必要は全く無い。
そんなもの使うのは単なる馬鹿。
そもそもJSPに直接DBアクセス書いて満足なら、
EJBだHibernateだ検討するのは意味が無い。
MVCというよりLayerを理解してから出直してね。
121 :
107 :2005/06/22(水) 11:58:42 ID:???
>>108 情報サンクスコ
MyFacesそこまでヒドイとは知らなかった。
>>109 ><body><h2>test</h2></body>だけがレスポンスとして返ってきます。やはり
<f:view><h:form>を書いて。それからinputTextやる前に<h:outputText value="HelloWorld">を試して。
>facesIDE+myfacesという環境をやめて何か別の環境でJSFを構築したいのですが
SunのR.I.1.0.1にすれば?
122 :
113 (MVCとSQL直書き) :2005/06/22(水) 17:18:58 ID:aO9Cw/ex
皆さんどうもありがとうございます。
MVCは試したことがあるんです。CMPEJB2.0に騙されて、MVCヤメテ、それでJSPだけで
SQL直書きのファイル沢山つくって、それでシステムつくったんです。
1年ほど前にこちらで「ファイル直したら、またWEB.XMLの書き直し。もういや」
といったSTRUTS批判が目だっていたのですが、最近はそれ程STRUTS批判はありませんね。
自分で勉強していくうちに、MVCで上手にシステムかけたらいいなと思うように
なりました。JSFのCREATORも試したことがあるのですが、もうどうしようもない。
あれで、SUNはよく金とれますね。
>>120 STRUTSはお奨めではないですか。自分でフレームワークもどきがつくれて、そろそろ
STRUTSに挑戦しようとおもっていたのですが、やっぱりやめようかな。
SPRINGとHIBERNATEは面白そうですが、「軽快なJAVA」に書かれているように
本当に使いやすいのかなと疑心暗鬼しています。STRUTS愛用者の方々の意見も
お聞きしたいです。上手にMVCを実現できるフレームワークはどれでしょうか。
123 :
120 :2005/06/22(水) 19:22:32 ID:???
経験あるならJSFの道を進めばいいじゃん。 あれ自身DI機能があるから、君が興味を持って いるというSpringとの相性も良いよ。 O/RマッパはAOPと組み合わせるとメチャ便利。 単純な、いわゆる「マスターメンテ」的なシステムだと 恩恵は無いけど、それなりの関連構造をもった オブジェクトとDBを連携させる時など強烈に便利。 もしAOPを使わないとすると ・データストア層のソースが誇大化、メンテ不能。 ・コネクションをビジネスロジック層で取得する。 どちらかの方法を取るハメになる。何故かは自分で 考えろ。 だがAOPとO/Rマッパを共同作業させれば、驚く程 短いスッキリとしたソースになり、また一見目に 見えない形で、ビジネスロジック単位でトランザクションを 制御することが可能になる。 ちなみに漏れが今やってるのはJSF+Spring+iBATISだ。
AOPってなに? それと、O/Rまっぱって言っても データベースの設計がそれなりにちゃんとしてないと かえって苦労するでしょ?
スレ違いかも知れませんが、 サーブレットとJSPのUMLを書く場合、 一つのJSPファイルは一つのクラスとみなすのが一般的なのでしょうか? それともJSPというクラス一つにまとめるのが一般的ですか?
画面への出力処理について質問させてください。 CGIでnphを使用すると処理を行いつつ画面への 文字出力(追記みたいなイメージ)が可能かと思います。 上記動作をservletにて実現させようと思い 下記のコードをServlet内に組んでみましたが 動作させると全ての動作が完了してから 「1」が100個同時に表示されてしまいます。 PrintWriter out = res.getWriter(); for(int i=0; i<100; i++) { out.write("1<BR>"); out.flush(); } out.close(); ループ値iがインクリメントされる毎に画面に「1」の出力を 増やしていく方法分かる方いませんでしょうか? 宜しくお願いいたします。
>>126 冗談でも馬鹿にしてるわけでもなんでもなく、
Javaの基礎からやり直したほうがいい。
ServletResponse#flushBuffer()使えばできるのか? やってみないとわかんr
>>124 データベースの設計がそれなりにちゃんとしてないと、ORマッパ使おうが使うまいが苦労する。
ORマッパ使った方が楽だけどなぁ。
130 :
123 :2005/06/23(木) 10:26:46 ID:???
>>124 >AOPってなに?
AOPのAはAspectのA。
単純に言っちゃうと、特定のメソッドなりフィールドに対して
「呪文」をかけられるのよ。
(SpringAOPの場合はメソッドへの呪文のみ)
トランザクションに応用する場合の例で言うと、例えば
"update"という文字で始まるメソッドはトランザクション配下
ですよ、って宣言できるワケ。
Javaソースにはトランザクション記述もコネクションも
try/catchも無いのに、一旦呪文がかかるとAspectが
勝手にそういうソースを織り込んでくれるんだわ。
詳しく知りたかったら
・軽快なJava
・LightWeightJava
・Spring入門
あたりを嫁。Seasar2系blogを読み漁るのもヨシ。
>130 便乗質問だが、自分で調べて見て、 「XMLかなんかの設定ファイルに沿って、特定のメソッドの前処理と後処理に指定のメソッドを呼び出す」 という風に理解しているがこれであってるのでしょうか?
132 :
124 :2005/06/23(木) 11:03:50 ID:???
133 :
nobodyさん :2005/06/23(木) 11:04:59 ID:RkAQSA99
>>131 合ってる。
付け加えると、正常処理時とか例外発生時とかの指定も可。
Springの場合(詳しく知らんがSeasar2でもおそらく)トランザクション制御の
ソースはSpring側であらかじめ用意されているので、それを利用すると楽。
Springのソースまで読んだワケではないけど、debugログを吐かせると、
前処理やらcommitやらrollbackが動いているのが見えて楽しいよ。
134 :
133 :2005/06/23(木) 11:57:48 ID:???
正確に言うと「呼び出す」ではなく、まさに「織り込む」というのが正解。 sageついでに。
>>121 OracleがMyFacesに参加するらしいよ。
136 :
113 :2005/06/23(木) 20:01:08 ID:4/LL7wxd
>>123 どうもありがとうございます。JSF+SPRING+IBATISのJSFとSPRINGはフレームワーク
ですから問題起きませんか?
お使いのエディタはEMACSでしょうか、ECLIPSEでしょうか。
私HIBERNATEとAOPの勉強始めます。強烈に便利とまで言われたら、もう
勉強するしかないですね。「軽快なJAVA」はちょっと足りない部分が
多いですから、WWW.HIBERNATE.ORG行ったんです。でも、あまり良い
チュトリアルがなくて。。。。このままだと、HIBERNATEを縁の下で
支えているXMLファイルの書き方覚えるだけでかなり難儀するかもしれない
です。IBATISはどうですか。あまり聞きませんが、HIBERNATEよりも
使いやすいすくて、文書豊富ですか?
JSFでバッキングビーンのメソッド中で、 request.getRequestDispatcher.forwardメソッドを呼び出しているのですが、 java.lang.IllegalStateException: Cannot forward. Response already committed. と例外が発生してしまいます。 原因がわかる方がいらっしゃったら教えてください。
138 :
137 :2005/06/23(木) 21:17:41 ID:???
補足です。 forwardメソッドの引数となるrequestとresponseは ExternalContextのgetRequestメソッドとgetResponceメソッドを 使用して取得したものです。
>>136 > JSFとSPRINGはフレームワークですから
iBatisもDB接続フレームワークだし、ListやMapもコレクションフレームワークで、なにかフレームワークであることが原因で問題が起こるとしたら何もできなくなるな。
HibernateのXMLがいやなら、Hibernate Annotations使えば?
140 :
123 :2005/06/23(木) 22:27:43 ID:???
>>136 問題起きてない。
IDEはEclipse使ってる。
O/Rマッパだが、純粋な美しいOOを適用できるなら、現時点では
Hibernateがベストだと思うよ。EJB3もHibernateの影響を強く受けて
いるしね。(つーかLindaがKingを召喚した)
漏れがHibernateじゃなくてiBATISを選んだのは二つの理由。
1)完璧なOOやったんじゃ、チョロっとした画面出すのに数千〜数万の
オブジェクトが出来てしまう。そんなのイヤンだからSQLのSUMとか、
やりたくないけど「月次集計テブル union 当月明細テブル」みたいな
処理もやって、パフォーマンス出さなくちゃならん。だからSQLは
自由に書きたい。
2)美しいDB構造ではない。つーか、「取消伝票発行する時に、
以前存在してた得意先はテーブルに存在しないかもしれない。
でも、取消伝票はその得意先を使って発行しなくちゃならん。」
なんて用件があった。存在しないものを、あたかも存在してるように
見せるなんてHibernateじゃ無理だろ。
つーことでiBATISにしたワケ。漏れSQLを書くの嫌いじゃないしね。
ま、iBATISは設定ファイルにSQLを直書きするので、xmlが
長くなるのがイヤンだけど、Javaソースはスッキリスッキリ。
参考まで。
141 :
123 :2005/06/23(木) 22:29:06 ID:???
追記 教科書だけど、「LightWeightJava」はHibernateやJSFのノウハウは 素敵だけど、Springの解説は弱い。「Spring入門」は設計理論が素敵。 なので両方読み合わせることを薦める。 あとサンプルアプリ。三冊ともなんちゃらDaoImplにAspectせずに FacadeにAspectしていることを確認シル
>>140 > チョロっとした画面出すのに数千〜数万のオブジェクトが出来てしまう。
そんなことはないと思うが。
それに、OR使っても集計はHQLなりEQLなりSQLでDBにやらせるよ。
> 存在しないものを、あたかも存在してるように見せるなんてHibernateじゃ無理だろ。
SQLでできることならできるよ。
逆に、そういう1レコードに対する手続きは書きやすいと思う。
「ORマッピングを使うならSQLを使ってはいけない」みたいな変な縛りを課さなければいいだけ。
> チョロっとした画面出すのに数千〜数万のオブジェクトが出来てしまう。 あんたがまともに使えてないだけ。
144 :
140 :2005/06/24(金) 09:35:04 ID:???
>>142 >>143 できるのならその方法を教えて、マジ。
ちなみに集計するだけじゃないよ。
あと、「Hibernate3なら」も無しでお願い。
>>144 なにやってるかも書かずに方法教えてといわれてもねぇ。
SQLで効率よく処理できるならSQLで書けばいいんじゃない?
ORマッピングは、データベースがやってた処理をJavaにもってきてJavaで処理記述するためのツールじゃないよ。
不安になってきた ORマッピングってなんだっけ?
147 :
113 :2005/06/24(金) 13:42:58 ID:7Lvl9NLQ
>>140-141 どうもありがとうございます。かなり熟練された方なのでしょうね。
私が意外なのは、STRUTS批判があまりこのスレッドで見られなくなった
ことです。
もうJSFの時代なのでしょうか。ちょっとあれに手出して、こっちに手出して
これが新しくて面白そうだから今度はこっちという風なことをあまりしたく
なくて(というよりもそんな余裕がありません)、WEBプログラミングが
すらすらできる方はもう一流プログラマと言ってもいいと思うんです、
私もそうなりたいのですが、一時期「EJBを制すればJ2EEを制す」なんて
大きな勘違いしていて、それでもう途方に暮れています。
すこしでも皆さんに追いつけるようになりたいんです。当分の間は
HIBERNATEの勉強に精を出そうと思います。またお世話になると思います
けれども、そのときはどうぞ宜しくお願いします。
WEBプログラミングが上手にできる方々って、何を次の目標にしているの
でしょうね。組み込み系のシステム開発でしょうか。うーーーーん。
コンパイラーの自作(そんなことは誰もしませんか?)でしょうか。
ロボットの制御プログラミングなんてできたら面白そうですね。
火星探索ロボットの制御はJAVAでしたんですよね、確か。
>>146 リレーショナルデータベースのデータをJavaのオブジェクトにマッピングしてくれるツール
RDBからとってきたデータをJavaで処理したり、Javaで処理したデータをRDBにつっこむときのデータ変換をやってくれる。
RDB一発でやってた処理をJavaにもってきて、Javaで処理書くようにしてもあまり便利ではない。
ほしいデータが複数のテーブルをjoinさせないと得られないとしたら そういう場合のORマッピングって有効なの?使える?
>>149 iBatisなら、複数のテーブルをjoinするSQLを書けばいい。
joinして引っ張ってくるだけなら定義ファイルでも可。
Hibernateは知らないので他の人プリーズ。
DAO&DTOでjdbcを使ってresultsetからbeanに値をセットする方法に比べて 定義ファイルを書く方が楽だってことで ORマッピング(・∀・)イイということなわけ?
>>149 複数テーブルのjoinが、社員コードから社員名をとってくるとか商品コードから商品名をとってくるとかだったら、joinの必要すらない。
勝手にたぐってくれる。
パフォーマンスが気になるときにjoin書く。
>>151 152みたいな、関連データをひっぱってくるのがすごく楽。
定義ファイルとかマッピングクラスとかは、自動的に書いてくれるツールがあるから、手書きは補正程度。
JOINというか、複数テーブルをエンティティ間の関連という形で実現している。 実際に発行されるSQL文はJOINしたものを発行するか、テーブルごとに発行するかを設定により選択可能。 たくさんのオブジェクトを引っ張ってきては困る場合は遅延ロードを使えばOK。 設定ファイルはMiddlegenやXDocletで自動生成。
社員グループマスターと社員区分マスターと社員マスターがあって 社員グループコードと社員区分コードを指定して 社員オブジェクト(DTO)を取得するときもORマッピングだと大丈夫なの? JDBCだと3つのテーブルをjoinしてwhereで条件をつけるんだけど
>>155 社員マスタのグループコードと区分コード指定するだけだろ。joinの必要なし。
抽出だけならJDBCでもjoinの必要なし。
>>154 いまからやるなら、Hibernate Annotations使って設定ファイルなしでやるのがおすすめ。
>>156 それじゃあ
社員情報を表示するときに、
社員オブジェクトの社員グループコードから社員グループオブジェクトの社員グループ名を検索するわけ?
社員オブジェクトの取得時に
社員グループ名と社員区分名を取得したいときはORマッピングってどうなるの?
WHERE 社員.社員区分=? AND 社員.社員区分コード=? とすると適切な検索をしてくれる。 JOINして検索するかどうかは判断できるぐらいにHibernateは賢い。 (キャッシュになかったらJOINして検索してくれる) ちなみに、HibernateはRDBに対して実際に発行されるSQL文をログやコンソールで 見ることが出来るよ。
>>159 (・∀・)ソウダッタノカー!
(・∀・)イイジャンソレ!
>>158 Lazy Lodingを指定するとそうなる。
で、そのときでも同じオブジェクトはキャッシュする。
Lazy Lodingしなければ、最初の取得時にとってくる
"from Shain s join ShainGroup g join ShainKubun k"
とか書けば、条件はマッピング定義から勝手に判断してくれる。
ちょっとtomcatの質問になってしまうんですが、どうかお願いします。
環境は以下です
OS:windowsXP home
JRE:5.0
tomcat:5.5.9
"
http://localhost:8080 "で接続すると、tomcatのTOPは表示されます。
eclipseで"test"というプロジェクトを作成して、直下に"hello.jsp"というjspファイルを作成しました。
ブラウザで"
http://localhost:8080/test/hello.jsp "に接続してみると
──────────────────────
HTTPステータス 404 - /test/hello.jsp
type ステータスレポート
メッセージ /test/hello.jsp
説明 The requested resource (/test/hello.jsp) is not available.
──────────────────────
といったメッセージが出て、表示されません。
かれこれ二日立ち止まっています。
いったい何が原因でしょうか?私の足りない頭でしょうか?
どうかお願いします。
163 :
nobodyさん :2005/06/26(日) 17:06:11 ID:icQN5iRw
EJBを使わずとも、ある程度のWeb開発はできると言われますが それだとEJBを使うメリットって何なのでしょうか? Webプロジェクトの開発において EJBを導入することによって具体的に何が可能になるのでしょうか?
165 :
nobodyさん :2005/06/26(日) 18:02:28 ID:icQN5iRw
167 :
nobodyさん :2005/06/26(日) 21:40:09 ID:2qO04mrj
一般的にプロジェクトの開発時に フリー、シェア含めて一番使われているAPサーバって何なんでしょうか? もしベストテンや使用シェアなどがあれば教えてください DBだとオラクルやDB2が人気だと思いますが…
商用ではWebLogic/WebSphereが2topだね。 次点でOracle。 意外にInterstageも多い気がする。 開発者人気ではTomcat/WebLogic/JBossなんじゃね?
>>169 世の中のWeb開発の8割はWebLogic/WebSphereだったっけ?
171 :
nobodyさん :2005/06/27(月) 12:10:54 ID:nRBU1AZe
perlのexit()みたいなのってどうやんの
tomcat5.0.30が文字化けで使い物にならねぇたじけてくれぇ Eclipse、server.xml、web.xmlにもUTF-8で文字コード指定しているが ?????ばかっりだ
>>173 質問内容が使い物にならないんで助けてくれ。
175 :
nobodyさん :2005/06/28(火) 07:33:24 ID:lqYGe2ED
ヒント:UTF-16
176 :
nobodyさん :2005/06/28(火) 14:33:38 ID:bmwUbQUV
【Hibernate】について再度質問させてください。不勉強を覚悟でお聞きします。
どうかお読みになった方々がご気分を悪くされなければいいのですが・・・
PostgresとMySQL、MS-SQLにはそれぞれ方言があります。特に日付関数の
方言なんて酷いものです。
Hibernateを使うということは、この方言を隠蔽できるということでしょうか。
私はSunのAppSERVER8が一つのパッケージになっていて気に入っているのですが、
もし、Hibernateがそのような方言を隠蔽することができるのでしたら、
MySQLからAppSERVER8にもともと付属しているPOINTBASEを使おうと考えています。
JBOSS+HIBERNATEをJBOSSに付属してるHSQLで動かしている方ともお話し
仕手みたいです。DB板ではHSQLの評価が高いですね。
私はECLIPSE+JBOSS+HIBERNATE+HSQLに大変興味がありまして、今後は
この組み合わせで少しづつ勉強したいと思っています。
また、どうぞ宜しくお願い致します。
>>173 お使いのサーバーに余裕があるのでしたらSUNのAPPSERVER8をお奨めします。
アンインストールも優しいですので、試してみる価値あります。
>>176 PostgreSQLが使える環境で、わざわざHSQLDBを使う必要はないと思うね。
方言?dialectでぐぐれ。
179 :
178 :2005/06/28(火) 21:41:25 ID:???
ぬあ、自己解決。散々待たされた後マンテ中です、と出てきますた…すんません。
>>176 Hotonndono Hougen Ni Taiou Dekiteru Yo!
>176 あれこれ分かりようもないことを考える前に手を動かせ。 やって見てから書き込め。 >Hibernateを使うということは、この方言を隠蔽できるということでしょうか どういう情報収集すればこんなことすら分からないのかが理解できんな。 それっぽい単語を繰り返し言って満足感を得たいだけならチラシの裏に、な。
>>176 そのへんを透過的に扱えないとフレームワークの意味がないでしょ。
興味があるといいながら、まるで試した気配がないな。
184 :
nobodyさん :2005/07/01(金) 14:23:15 ID:yr5B0l2Q
みなさん、いつも、どうもありがとうございます。
>>140 で問題になっていることは、例えば
DBに登録された
従業員のうちで4月に登録された従業員だけ抽出する
といったとき、SQLでは SELECT * FROM employee WHERE reg = 4
とすればいいだけなのに、Hibernateだと
いったん全ての従業員のJavaBeanをメモリの中に作ってしまって、
それから reg = 4 だけを抽出する。
といった問題を指摘されているのでしょうか。
>>182 透過的とは上手な表現ですね。なるほど。
>184 市ね
日本語訳:ムヒ塗りすぎ
セッションが切れたときにログイン画面まで戻したいんだけど フィルター使って毎回チェックするのが普通? それともすべてのJSPにインクルードしたJSP(〜さん。こんにちは見たいなのが 表示されてる画面上のヘッダー)でしょりしたりする?
好きなように。
191 :
nobodyさん :2005/07/05(火) 21:24:29 ID:cSKKDHID
JSF の <h:form> によって生成される HTML の <form> タグを、 method="post" じゃなく、 method="get" にしたいのですが。 なんか方法ありまつか?
>>189 うちはフィルタでやってるよ。
セッションって勝手に作られるときがあるんで特定のタグを
ログイン時にセッションに書き込んでフィルタで毎回チェックしてる。
(ログイン画面なんかのチェック除外のURLはweb.xmlのInitParameterに設定してる)
>>189 > それともすべてのJSPにインクルードしたJSPでしょりしたりする?
あらゆる JSP で include が行われるわけじゃないし filter のほうが汎用性が高いと思う。
JSPではログインに限らず、処理をしない。
失礼します。 昨日とあるサイトを見せられ、改造しろといわれて中を見て、 一日経ってどうやらこれは「XML+jsp/Servlet+JavaBeans」で作られているらしい ということが分かってきたような段階です。 aspの経験はあり、似たような感じのjspはなんとか動かせたのですが、 実際に作る際にはロジック部分はServlet、JavaBeansに切り分けて書いているようです。 そこでとりあえずjspからBeansを呼んでみようとしたのですが、うまくいきません。 ---------------------- ROOT/WEB-INF/classes/test1.class 作成 >public class test1 { ↓ ROOT/test.jsp 作成 ><jsp:useBean id="obj_test" class="test1" scope="session" /> ↓ >C:\Tomcat4.1\work\Standalone\localhost\_\test_jsp.java:77: シンボルを解決できません。 >シンボル: クラス test1 >場所 : org.apache.jsp.test_jsp の クラス > test1 obj_test = null; ---------------------- そこで質問なのですが、 jspからJavaBeansを使用する際に必要な事は、以下に挙げる以外にありますでしょうか? ●WEB-INFの下にclassesフォルダを掘る。(どこかの設定でpathを通す必要あり?現状何もしてません) ●classesフォルダの下に任意の名前のコンパイルしたclassファイルを置く。 ●jsp固有のタグを使用してインスタンスを生成する。 以上、ご教授宜しくお願いします。.
どこかの設定でpathを通す必要あり? →不要。 JavaBeansは、デフォルトパッケージ(パッケージ指定無し)で作ってはいけない。 必ずパッケージ宣言をし、/WEB-INF/classes の下にパッケージツリー構造のフォルダを作成して そこにコンパイル済みクラスファイルを配置する。 あと、クラス名は大文字から始めるべし。言語仕様上は小文字から始まる名前でも動作するが Sunでは推奨していないし、業界全体でもクラス名は大文字から始める習慣が浸透している。 コード中で変数名なのかクラス/インタフェース名なのか区別しやすいからね。
>>196 いまから使うならTomcat4.1じゃなくTomcat5.5を使ったほうがいいよ。
まだ日本語版でてないけど、NetBeans4.1使えばweb.xmlエディタもついてるので、作業しやすい。
>198 >昨日とあるサイトを見せられ、改造しろといわれて中を見て、 と書いてあるが。 5.5だとJDKまで入れ替えろってことか。きびしいな。
>>199 JDKも最新つかっときゃいいんじゃねぇの?
あぁ、「とあるサイト」を改造して別のサイト作るわけじゃないのね。
>>197 教えて頂いた通り、classesの下に任意のフォルダを作成し、
その名称をパッケージ名とすることで問題なく動きました。
名称の約束事等も、大変参考になりました。
ありがとうございます!
>>198-200 仰るとおり既にある環境がtomcat4.1なんですが、開発(作業)環境の問題はたしかにあるんですよね。。
私の偏見かもしれないんですが、オブジェクト指向系の開発環境って
エディタが勝手に各種設定をやってくれるってイメージがあるので(結構な数のBeansをコンパイルする時等)、
そこら辺も調べてます。
オブジェクト指向系ではない開発環境はほとんどないと思うが・・・
203 :
nobodyさん :2005/07/08(金) 20:13:04 ID:4YhNblk4
Tomcat 5.0.18 を使用していますが、開発中のコードで、 内部サーバーエラー 500 と出るのは解りますが、 肝心のメッセージ内容が、 "org.apache.jasper.JasperException: ???????" って表示されるので、原因を知ろうにも、何が悪いのか解りません。 何をどうすれば、 ??????? の部分がちゃんと読めるようになりますか?
5.0.28以降を使う
205 :
nobodyさん :2005/07/08(金) 20:41:43 ID:4YhNblk4
>> 204 Tomcat のバージョンを 5.0.28 にしたら治った。。 ありがとうございます。 あー、疲れました。
どうして最新版を使わずに悩むのか、謎だな。
謎という程でもない
>>33 と同様に
Tomcat4.1でContextを追加して別のプロジェクト(?)を追加したいのですが
追加すると
Tomcatが勝手に終了してしまいます。
>>43 にContextを追加するなとありますが
4.1で追加すると何か問題があるのでしょうか?
>>43 ではないが・・・
server.xml を直接編集せずに
コンテキスト設定ファイルを作ってそれをデプロイしろってことでしょ?
TomcatでFTP通信したいんですが上手くいきません・・・ 誰か簡単に手順を教えてください( ´Д`)
・FTPサーバーに接続する ・コマンドなげる ・ファイルやりとり ・接続閉じる
213 :
nobodyさん :2005/07/14(木) 21:59:43 ID:ruRs12+o
jakarta-tomcat-5.5.9をlinuxサーバにインストールし、
http://host:8080/servlets-examples/servlet/HelloWorldExample とりあえずこれがブラウザから実行できるようになったので、
では自作プログラムをと思ったのですが、
HTTPステータス 404 -
The requested resource (/TEST/servlet/test) is not available.
このエラーです。
javac -classpath /usr/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar test.java
これでコンパイルは出来ていて、web.xmlの中でservlet-name,servlet-classの指定もしたのに、
ブラウザで実行できません。
また、web.xmlはそのままで、
HelloWorldExampleの方を同じ方法でコンパイルすると、やはりコンパイルは出来るのですが、同じエラー(HTTPステータス 404 )です。
オリジナルの容量が 2056 HelloWorldExample.class
上のコンパイルでは 1721 HelloWorldExample.class
となっているので何かコンパイル時に足りないことがあるのかと思うのですが、
どのような指定が正しいのでしょうか?
>>214 web.xmlに指定した内容をはりつけてみろ
/servlet-examples 以下を /testに全てコピーして、 /test/WEB-INF/web.xmlにこれを追加 <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> .... </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/HelloWorld</url-pattern> </servlet-mapping> でも HelloWorldExampleの部分は触れていないのですが HelloWorldExampleをコンパイルすると オリジナルと容量が変わって実行できなくなるというのはどういうわけなんでしょう? HelloWorldExampleをコンパイルする前(オリジナルのファイル)を実行する ( host:8080/test/servlet/HelloWorldExample をブラウザから開く)と ちゃんと実行できるのですが、 このサンプルファイルをコンパイルし直して,/test/WEB-INF/classes(オリジナルに上書き)コピーしても実行できていないということは やはりコンパイル方法 javac -classpath /usr/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar ...java これがおかしいと思うのですが web.xmlの設定の問題なのでしょうか?
217 :
nobodyさん :2005/07/16(土) 09:16:30 ID:6Cm0TSY1
server.xml
/test きってないんだねぇ
そんなところで悩むなら、おとなしくNetBeansでも使って勉強しろと思うのはおれだけか。
>>219 うん、おまいだけ。
肝心なところをわからないままで進めてどうする。
コンパイル後のサイズなんて気にするな。 コンパイラによっても変わるし、コンパイル時のオプションによっても変わるから。
223 :
214 :2005/07/16(土) 13:31:53 ID:???
ありがとうございます
>>221 はい、こちらを見ています。
http://host:8080/test/servlet/HelloWorld http://host:8080/test/servlet/HelloWorldExample こちら側の実際の名前と説明時の名前が一致していなくてすみません
>>220 どうしてもわからないのは
インストール時にサンプルとしてついているHelloWorldExample.java をコンパイルしても
web.xml等設定を全く変えていないのに
HTTPステータス 404 - /test/servlet/HelloWorldExample
type ステータスレポート
メッセージ /test/servlet/HelloWorldExample
説明 The requested resource (/test/servlet/HelloWorldExample) is not available.
もちろん/test/WEB-INF/classes/HelloWorldExample.class は存在しています。
これが、
オリジナルのファイルであるとちゃんと実行できているのに、HelloWorldExample.javaをコンパイルして
HelloWorldExample.class と置き換えると上のエラーが出るのです。
<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> .... </servlet> クラス名がHelloWorldExampleなのに、なんで設定はHelloWorldなんだ?
ツールで勝手にやってくれるようなところで悩むより、プログラムの部分で悩んだほうがいいと思うが。
226 :
214 :2005/07/16(土) 17:35:59 ID:???
もちろんweb.xml中には
<servlet>
<servlet-name>HelloWorldExample</servlet-name>
<servlet-class>HelloWorldExample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldExample</servlet-name>
<url-pattern>/servlet/HelloWorldExample</url-pattern>
</servlet-mapping>
この記述もあります。
>>216 >>223 オリジナルのweb.xml,HelloWorldExample.classのままだとちゃんと実行できているのに、
オリジナルのweb.xmlのままでHelloWorldExample.javaをコンパイルしてHelloWorldExample.class
を作ると、
HTTPステータス 404 -
のエラーなのです。
現在、web.xmlはオリジナルのままです。
そのままだとちゃんと実行できているのに、
HelloWorldExample.javaをコンパイルしてHelloWorldExample.classを作り、オリジナルの上に上書きすると、実行できなくなるのです。
要するに、自前コンパイルのファイルは全く実行できていないのです。
下記、ソースコードです。
これを、 javac -classpath /usr/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar HelloWorldExample.java
とやってコンパイルします。
コンパイル時にエラーは全く出ません。
227 :
214 :2005/07/16(土) 17:36:53 ID:???
import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ResourceBundle rb = ResourceBundle.getBundle("LocalStrings",request.getLocale()); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); String title = rb.getString("helloworld.title"); out.println("<title>" + title + "</title>"); out.println("</head>"); out.println("<body bgcolor=\"white\">"); out.println("<a href=\"../helloworld.html\">"); out.println("<img src=\"../images/code.gif\" height=24 " + "width=24 align=right border=0 alt=\"view code\"></a>"); out.println("<a href=\"../index.html\">"); out.println("<img src=\"../images/return.gif\" height=24 " + "width=24 align=right border=0 alt=\"return\"></a>"); out.println("<h1>" + title + "</h1>"); out.println("</body>"); out.println("</html>"); } }
>>226 jakarta-tomcat-5.5.9/logs/catalina.out にエラーメッセージが出ているだろう?
jakarta-tomcat-5.5.9/webapps/servlets-examples/WEB-INF/classes から
LocalStrings.properties を /WEB-INF/classes にコピーしてみろ。
229 :
214 :2005/07/17(日) 11:43:16 ID:???
LocalStrings*はすべてコピー済みです。 念のためもう一度コピーしましたが何も変わりません。 jakarta-tomcat-5.5.9/bin/startup.sh jakarta-tomcat-5.5.9/bin/shutdown.sh Using CATALINA_BASE: /usr/java/jakarta-tomcat-5.5.9 Using CATALINA_HOME: /usr/java/jakarta-tomcat-5.5.9 Using CATALINA_TMPDIR: /usr/java/jakarta-tomcat-5.5.9/temp Using JRE_HOME: /usr/java/j2sdk1.4.2_04 catalina.outに追加された部分は、 This release of Apache Tomcat was packaged to run on J2SE 5.0 or later. It can be run on earlier JVMs by downloading and installing a compatibility package from the Apache Tomcat binary download page.
>>229 書いてあるとおりだ!ボケ!!!
Tomcat5.5の動作環境を調べてみろ。
ちゃんと必要条件を満たしているのか???
まあ、パッチを当てればその環境でも動くのだが。
231 :
214 :2005/07/17(日) 13:45:57 ID:???
コンパイルしない 最初からサンプルとしてついているclassファイルはこの環境のままでちゃんと実行できているのですが なぜなんでしょうか?
そんなことで3日悩むなら、NetBeans使ってサーブレットの勉強を3日間進めたほうが有意義だと思うが。 それで動かしなれたら、設定とかで3日悩んだりもしないだろうし。
>>232 「Servletの作成」だけにスコープを絞るのならそうだろうね。
Servletの動かし方を知りたいのなら、その方法はダメ。
「よくわからないけど、動いてしまっている」ままの状態で進んじゃってもね・・・
>>231 想定外のことが実行できちゃってるだけ。
235 :
214 :2005/07/17(日) 14:15:06 ID:???
設定の問題なのでしょうか? サーブレットは現在、ブラウザから問題なく実行できています。(サンプルとして最初からついているclassファイルは) web.xmlの設定で、別のURLを対応付けさせるということも出来ています。 ただ一点、 自分でコンパイルしたclassファイルだけが実行できないのです。 (サンプルファイルとして最初からついているソールファイルに対しても) これはコンパイル(に関する設定)の問題だと思うのですが違うのでしょうか? javac -classpath /usr/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar HelloWorldExample.java このようにしてコンパイルします。 コンパイルエラーは出ません。 javacの変わりに、 /jdk1.5.0_04/bin/javac と指定してみても同じです。(コンパイルエラーは出ず、classファイルが生成されます)
>>235 コンパイルはjdk1.5で行って、実行はjdk1.4.2で行われてるからじゃないのか?
>>233 なにも動かないよりまし。
動かせば理解しやすくなる。というか、動かないことには何も理解できない。
そもそも、NetBeansなんていうマイナーな開発環境はおすすめしかねる。 この業界、デファクトスタンダードに乗っておくのが吉。
最初の勉強だけNetBeans使ってもいいと思うが。 Webアプリの入門とSwingの入門にはいいと思うよ。 実際の開発に使えないほどヘボくはないし。
240 :
& ◆8tF2xoknq. :2005/07/20(水) 13:54:27 ID:vT0JkkZS
ねぇ、はっきり言ってさ、JAVAってWEBアプリでもさ、 VBにかなわないと思わない? もう、JAVAって、お先真っ暗なんじゃないかなぁ。 EJB最高なんてみんな言ってたよね、みんな騙されて、時間無駄に したよねぇ。 まだ、SWINGなんて言っている連中いるし。あんなもん、業務用に 使えないって、まじで。
241 :
↑ :2005/07/20(水) 14:02:41 ID:???
言語宗教厨
>>240 VBは事実上、鯖がWindows限定だからいろいろな意味でダメ。
243 :
& ◆tNtHsziLno :2005/07/20(水) 14:21:56 ID:vT0JkkZS
>>242 でもね、WINDOWS2003サーバーって、はっきり言って他のどれよりも
よくできている。
保守は簡単で、性能も良いし、かねかけて作ってあるなぁというのが
実感だよ。結局安くつくしね。マジで。
TURBOLINUXのサーバーなんて、もう使う気にもなれん。
レッドハッとも同じ。
>>243 保守が簡単かどうかは運用の問題。Windowsは簡単なので素人がヘタにいじってしまい、
かえって穴を作ったりすることも多いし、UNIX/Linuxの方が歴史が長い分、実績やノウハウは多い。
保守やコストはどちらも一長一短だね。
Winの方が安くつくかは疑問。保守にかかるコストは人件費が大半。
ちゃんとスキルを持った技術者のコストはそう変わらない。
UNIXに強い管理者にWindowsを管理させたら余分にコストはかかるだろうし
その逆もしかり。
ただし、WindowsはMicrosoftにベンダロックされる、という時点でNG。
性能は・・・64CPUのクラスタリング構成なんてできたっけ?
Google程度のトラフィックのあるサイトの構築実績はある?
>Google程度のトラフィックのあるサイトの構築実績はある?
つれた つれた
Windowsサーバ・・・重い Unix系サーバ・・・軽い 今のPCスペックじゃそんなことは微々たることなのか・・・ おじさんプログラマーの独り言(´・ω・`)
設定次第だし、アプリ次第だし、ハード次第。
>設定次第だし、アプリ次第だし、ハード次第。 それは前提条件に決まってるだろ
250 :
nobodyさん :2005/07/22(金) 00:30:27 ID:/rKubrMS
JSP2.0の式言語で dev っていうプロパティをアクセスするには どうすればいいっすか? ${ data.dev } とかかくとTomcat5.0でエラーになるっす。 つーか予約語とプロパティ名がかぶったとき 予約語をどうやってエスケープすればいいの?
>>249 PCスペックのせいでビビたることだと思ってるのがイタイと思ってね。
>>251 >PCスペックのせいでビビたることだと思ってる
まずは日本語の勉強をしてくるように
読む力がない人にもわかる日本語って難しいからねぇ。
>>252 !
すばやい回答ありがとう
今日はもう寝るけど
明日さっそく試してみるよ。
試してから寝ろ。あほ。
258 :
257 :2005/07/22(金) 10:34:55 ID:???
>
>>252 うそつきめ!
は前言撤回
ちゃんと動いたよありがとう!
>258 小魚食え
BBSを作っているんですが、フォームから送信された文字列の文字コードを チェックするには、どのような方法がありますか? getBytesメソッドで取得してみたのですが、"a"と入力すると1バイトで返ってくるのに、 "あ"と入力すると8バイト帰ってきてしまい、混乱しています。 助言お願いします。
馬鹿が無理して背伸びする必要はないと思いますよ。 入門書買ってきて読みましょう。
分かりました。ありがとうございます。
>>262 おいおい。そりゃああんまりだろ。
>>263 文字コードはおまいさんがファームのページを表示させる時に
<meta http-equiv="Content-Type" content="text/html; charset=SJIS">
としているならばファームに入力された文字もSJISになる。
つまり調べずしても文字コードはわかるってこった。
どーせ次は文字コードの違いについて質問してくるさ。
266 :
nobodyさん :2005/07/24(日) 18:54:44 ID:ZtNWNig0
pdfファイル表示させるサーブレットがさ、こんなエラー吐くんだけど、 同じ症状に悩んでいる人います? ソースコードの何行目がおかしいのかな、と思ってログみてもね、(Unknown Source)って なってるの。 ClientAbortException: java.io.IOException: An existing connection was forcibly closed by the remote host コンテナーの設定直さなきゃいけないのかなぁ。それとも、セッションの有効期限 無限大にしているからいけないのかなぁ。
> ソースコードの何行目がおかしいのかな、と思ってログみてもね、(Unknown Source)って > なってるの。 debugオプションをonにして再コンパイル汁。
268 :
nobodyさん :2005/07/24(日) 22:17:25 ID:ZtNWNig0
>>267 謝謝。
試してみます。いまビルドファイルみたらOFFでしたから、これは
期待できそうです。
どうもありがとうございます。解決できたらご報告します。
269 :
266 :2005/07/25(月) 14:47:24 ID:JzwVgnfr
>>267 本当にどうもありがとう。何行目がおかしいのか手がかりが掴めました。
長い間、どこがおかしいのかわからなかったから、これだけでも、
本当に嬉しい。重ねて感謝します。謝謝。
でも、デバッグモードってOFFにすると何にも分からないんですね。
みなさんどういうときにOFFにするんですか?
リリース後だって、エラーは出ますし、リリース後のエラーこそ
なんとしてでもトレースしなければならないんだし。
デバッグモードって何のためにあるのか分かりません。
これからはずっとONのまま(リリース後でさえ)にします。
スタックトレースに頼らんでも障害個所が特定できる作りにしやがれ
WEBアプリは誰でも簡単に作れちゃうからな。 ただし、出来上がった物の質は人によって大きく異なる
272 :
nobodyさん :2005/07/31(日) 01:59:22 ID:TYElhtKN
フォーム受取時、request.getParameter(name)でパラメータ値が得られなかった時に flgを1にしたいのですが、パラメータ値が無いにもかかわらず1になってくれません。 (初期化時の0のまま・・・) request.getParameter(name)でnameに対応する値が無いときはnullが返るはずですよねぇ。 どこが誤っているのかわかりません。助けてくださいまし。 環境はJ2SE5.0(1.5.0_04-b05)です。 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ request.setCharacterEncoding("Windows-31J"); response.setContentType("text/html;charset=Windows-31J"); PrintWriter write = response.getWriter(); Enumeration enum = request.getParameterNames(); write.println("<html><head><title>パラメータの取得</title></head>"); write.println("<body><table border=1>"); HashMap<String,String> hm = new HashMap<String,String>(); int flg = 0; while (enum.hasMoreElements()){ String name = (String)(enum.nextElement()); String value=request.getParameter(name); if (value == null){flg = 1;} //←ココ hm.put(name,value); write.println("<tr><th>" + name + "</th>"); write.println("<td>"); write.println(hm.get(name) + " "); write.println("</td></tr>");} write.println(flg); //←パラメータ値が取れていなくても、0のまま。 write.println("</table></body></html>");}
その名前のパラメータが本当に存在しないのか? パラメータ値の文字列長が0なだけで、パラメータそのものは飛んできているというオチじゃないだろうな。まさか。
274 :
272 :2005/07/31(日) 02:22:21 ID:???
スマン、null判定のトコ、equalsを使わにゃならんことを忘れてた。。。 逝ってきます。
もしかして、パラメータは空文字で返ってきてないか? String value=request.getParameter(name);の後を if (value.equals("")) に変えてみ。 関係ないけどPrintWriterの変数名は「out」にしておくのが常識。
276 :
275 :2005/07/31(日) 02:27:42 ID:???
ってもう解決したんかい
nullは==で判定してOKなのだが。
278 :
272 :2005/07/31(日) 02:48:14 ID:TYElhtKN
>>273 ,275
ご回答、ありがとうございます。
参照型ってことをすっかり忘れて半日無駄にしてしまいました。
PrintWriterの変数名は適当につけてました。
気をつけておきます。
つーか、テンプレートとかつかわんの?
request.getParameter(name); って引数Stringじゃないやつもあるんだ
mimeMultipartはどうやってはいってくると思ってるんだ
ていうか返り血だろソレ 釣られて俺が馬鹿みたいじゃないか
物騒なメソッドだな。>返り血
>>275 > PrintWriterの変数名は「out」にしておくのが常識。
そうか?
どこのローカル常識やら。
〜〜Writerはwriter 〜〜OutputStreamはoutにしてる わかりやすけりゃなんでもいい
>>284 JSPではWriterオブジェクトはoutという暗黙オブジェクトだからな。
「PrintWriterの変数名は「out」にしておくのが常識。 」というより、
「Servlet/JSPにおけるPrintWriterの変数名は「out」にしておくのが常識。 」とは言えると思う。
response.getWriterの戻り値を格納する変数はoutだな。 それ以外のPrintWriterはpwとか、適当。 そしてout以外にする。
>287 普通はそういうシステム上意味のある名前を外すがな。
同じ役割のものは同じ名前
kokohamugoituriboridesune...
>>289 outを使わないってことは、Serveletのコードの中で
"request","session","response"等も使わないのか?
使わないとかえってわかりにくそうだが・・・
間違えた。Servletだ。
295 :
nobodyさん :2005/08/03(水) 12:55:27 ID:YdrttGbW
Tomcatに配備したアプリについて、 アプリ内の特定のフォルダ内をすべてclasspathに認識させるには、 どう設定すれば良いでしょうか? /usr/local/tomcat/webapps/myapp/ にアプリを置き、 /usr/local/tomcat/webapps/myapp/conf に、設定ファイルを置いてます。 ここで、設定ファイルだけ読み込めないのです。 アプリ自体にはアクセスできています。
なぜそんなことしたいのか理由がわからん。
297 :
295 :2005/08/03(水) 13:12:30 ID:???
何故かというと、confディレクトリがclasspathに認識されてないからなのですが、 何か根本的な勘違いしてますか?
なぜconfディレクトリをclasspathに認識したいのか理由が思いつかん。
299 :
nobodyさん :2005/08/03(水) 13:29:46 ID:YdrttGbW
では、ある設定ファイル群を、まとめてclasspathに認識させておきたい場合、 どのような方法があるのでしょうか?
おとなしくclassesの下の置く。
Webが前提ならわざわざクラスパスに置く必要もないしね。
302 :
299 :2005/08/03(水) 15:50:50 ID:???
おとなしくclassesの下に置きました。 ありがとうございます。
サーブレットで携帯の絵文字使うときって、どういうロジック組んでる?
キニシナイ。
FilterのdoFilterの引数のServletRequestはHttpServletRequestにキャストして使用できるでしょうか。 Filterの中でSessionからログイン情報を取得し、 ログインしていないならログインページにforwardさせたいです。↓ if ( ((HttpServletRequest)req).getSession().getAttribute("user") == null) { req.getRequestDispatcher("/login.jsp").forward(req, res); }
できる。 逆にできない場合って今あるのかな? GenericServletのためにServletRequestなのかな
JavaScriptで増やしたテキストボックスの値を、Javaのサーバサイドに渡す方法はありますでしょうか? nameが固定じゃないとだめですか?
>>307 > JavaScriptで増やしたテキストボックスの値を、Javaのサーバサイドに渡す方法はありますでしょうか?
ある。
> nameが固定じゃないとだめですか?
自由にどうぞ。
JSPでセションIDをクッキーじゃなくformのhidden 項目で持ちまわって管理したいんですが。 具体的な方法がわかりません。 FORMのPOSTより取得したセションIDでセション 情報を呼び出すのかなと勝手に思い込んでいる のですが、該当するメソッドが見つけられないし。 詳細が出ている本やサイトがあったら教えてください。
310 :
nobodyさん :2005/08/31(水) 01:16:57 ID:A271il+B
よっこらせ!
マルチスレドを意識する場合は、Serializableを実装しないといけないのでしょうか? 直列化の意味がよくわからないです。 これはオブジェクトをファイルに書き出すために必要なもので、 スレッドの同期化と関連があるのでしょうか?
ファイルに書き出すというより、バイトデータ化するのに必要。 マルチスレッドとは直接の関連はない。
>>311 ちなみに直接マルチスレッドと関係ないが
このスレにひきつけて言うと
サーブレットエンジンによっては
セッションを一時的にファイルに退避したり
ロードバランスで動いてる別のエンジンに転送したりする
機能が実装されていることがある。
そのばあいセッション変数に設定するオブジェクトは全部Serializable可能
でないとその機能が使えない。
あとマルチスレッド等の用語で排他制御のことを
直列化ということがある
これは排他しなければ同時に実行できる処理を1度に1つづつしか
実行を許さないから、並列処理->直列化という言葉が宛てられた
Serializableも日本語訳で「直列化」というが
これはオブジェクトをファイルや通信のために
バイト列に変換することだから
同じ直列化でもまったく意味が違う。
>>313 ありがとうございます。
似た意味があって混乱してましたがすっきりしました。
sessionで直列化は「なるほど」って感じです。
JIS コード 第二水準チェックってどうやってますか?
俺だったらJISでgetByteしてコードの範囲チェックするかな? 効率悪そうだけど 画面の入力チェック程度には十分なきがする。
ちょこっとJSPを変更してその確認をするとき、weblogicにデプロイしてる時間がかかりすぎて・・・。 earファイルを作成してそれをデプロイするのではなく、 どこか直接JSPを上書いて、それがちゃんと反映されて確認が取れる。みたいな事出来ませんか?
>>317 weblogicはしらんが
ふつうJSPってエディットしたら自動的にJava変換&コンパイルしてくれないか?
weblogicにもそういう設定あるだろ
質問お願いします。 MyDefaultServletを定義して <url-pattern>/<url-pattern> としている場合、全てのリクエストがMyDefaultServletに渡りますよね。 それで、自分の必要な処理だけして、それ以外はTomcatのDefaultServletに 処理を任せたいのですが、これは可能ですか。 イメージ的にはWin32SDKのDefaultWndProcみたいな感じです。 わかりにくい文章ですみません。
FilterかValve使うべきなんじゃない? Servletでやりたいんだったら、、、RequestDispatcherかな。。。 RequestDispatcherってservletにはつなげないんだっけ?
>>321 レスありがとうございます。おかげさまでできました。
getNamedDispatcher("default");
に転送すればいいみたいです。自分のServlet名もdefaultとしていたので競合していたみたいです。
おさわがせしました。
JSPについて質問させてください. web.xmlファイルに、jsp-property-groupでエンコードやヘッダの設定をして、 url-petternを / として、サーブレットからフォワードした JSPを処理しようとすると404になってしまいます。 (このサーブレットはあらゆるURLに対して処理を振り分けてます) jsp-property-groupを使うにはurl-patternを *.jsp として サーブレット無しでJSPを直に呼ぶしかないのでしょうか?
>>323 いみがわからん。
とりあえずjsp-property-groupはサーブレット経由で使える。
>>324 説明が足りず申し訳ありません。
jsp-property-groupタグ内にurl-petternを指定する部分があるのですが
ここを*.jspにするとフォワードしたjspに対してjsp-property-groupタグ内の
設定が有効にならず、サーブレットのURLパターンを指定すると
404NOTFOUNDとなってしまう、という現象に悩まされていたのですが
Eclipseを再起動して試した所、無事*.jspで設定が反映されました。
Eclipse側の不具合だったようです。
お騒がせしました。
326 :
nobodyさん :2005/09/26(月) 13:43:50 ID:ntOUMxKj
Tomcat5.5でのWEB開発について、分かりやすい テキスト書はありませんでしょうか?
328 :
326 :2005/09/26(月) 16:09:06 ID:ntOUMxKj
>>327 すみません。
古いバージョンでのTomcatでの開発経験はあるんですよ。。
Tomcat5.5にバージョンアップして増えた機能やJDBC接続の変更について
詳しい本は無いかなと思って質問させて頂きました。
>>328 情報小出しかよ・・・orz
「古いバージョン」がどのバージョンだが知らないけど、
差分で理解できるのなら公式ドキュメントでいいじゃん。
330 :
326 :2005/09/26(月) 17:38:24 ID:ntOUMxKj
>>329 情報小出しですみません。
公式ドキュメントはまだ日本語略されてないんで読めないんですよ。
英語が分からなくてすみません。。
友達もいないので他に聞く人がいないんです。
生まれてきてすみません。。。
JSPの式言語とJSTLまわりかな。 あとはcontext.xmlの書き方が変わってることか。 大きいとこだと。
web.xmlのurlパターンで、 *.html,*.jspと書いたらエラーになりました。 ワイルドカードを複数指定することはできないのでしょうか。
>>332 Servlet Specification セクション11.2には
? A string beginning with a ‘/’ character and ending with a ‘/*’ postfix is used for path mapping.
? A string beginning with a ‘*.’ prefix is used as an extension mapping.
? A string containing only the ’/’ character indicates the "default" servlet of the application. In this case the servlet path is the request URI minus the contextpath and the path info is null.
? All other strings are used for exact matches only.
とある
servlet 2.3なので、filterで、dispatcherタグが使用できません。 doFilterの中で、リクエストがforward、include、requestなのか 判断できるでしょうか。
>>334 不自由ですね。
しょうがないので、doFilterの中で正規表現を使用して判断してます。
337 :
nobodyさん :2005/10/03(月) 19:15:49 ID:bbf4TJMn
基本的にはそのまま移行できると思うんだけど。
339 :
nobodyさん :2005/10/04(火) 12:17:08 ID:P6Wy62g1
JBossとVelocityを使ってWebアプリケーションを作成しようと思うのですが、 最適な開発環境ってどうなるでしょうか? Eclipse + Lomboz で問題ないですか? JBossのページを見るとJBoss Eclipse IDEというのもありますが、 何を使えば良いのか分かりません。
好きなの使え
341 :
2重クリック :2005/10/05(水) 17:09:17 ID:QaUei0J7
お世話になります。2重クリックの現象について質問させてください。 毎朝サーバーの管理をしているのですが、どう考えても 2重クリック(短時間に同じボタンまたはリンクを2度クリック)して いないはずなのに、GETリクエストが2度記録されていて エラーが吐き出されていることがあります。 Windows98のIE6.0だけの現象かな、と思っていたのですが、 最新のWindowsとIEの組合わせでも起きています。 頻繁には起きないのですが、気がついた ユーザー(クライアント)はIEから Firefoxへ乗り換えて、この問題を解決していました。 ちゃんと、 response.setDateHeader("Last-Modified", 1L); response.setDateHeader("Expires", 0L); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); でキャッシュは残らないようにしているのですが・・・・ どなたか同じ現象に悩ませれている方、原因に心当りがございましたら おしらせください。よろしくおねがいします。
getが連続でくるとエラーになるようなページなの? あとどこでログとってんの?valve? filter? servlet?
343 :
2重クリック :2005/10/06(木) 15:16:10 ID:KDmoObkK
>>342 どうもありがとうございます。
エラーが起きるのは、セッションが開始されたら1度しか訪れることが
できないようにプログラムしてあるからです。
それで、2重クリックが起きてしまうと、2度目のアクセスで500番の
HTTPエラーが出ます。
ログはSUNのアプリケーションサーバーのデフォルトserver.logとaccessフォルダ
の中にたまったファイルです。
リクエストがきたらログが記録されるようになっています。
344 :
超初歩的な質問でごめんなさい :2005/10/07(金) 19:16:43 ID:nTvAUwnG
ここのサーバーで、JSPって使えるんですか? WWWサーバについて サーバのハードウェア、ソフトウェアは以下のものを利用しています。 Intel PentiumIII 750MHz Memory:128MB OS:FreeBSD 4.4-Release WWW server:apache 1.3.22
>>344 ゼミの教官か鯖の管理をしている職員または鯖のお守をしているゼミ生に聞け
weblogicでearをデプロイすると、earの中のweb.xmlやクラス・設定ファイルなどは、どこかに展開されるのでしょうか。 jspの修正毎にデプロイするのはつらいので、展開されたところにコピーしたいです。
>>346 それなら展開してからデプロイすればいいよ
>>347 jbossなら出来るって聞いたけど、weblogic8.1はできなかった。
起動はしたけど、jsp更新しても無反応・・・
tomcatみたいに、eclipceプロジェクトを見るようにさせればいいじゃん
それじゃ駄目だ
以下のようなpageディレクティブを記述したJSPに、日本語に対応していないブラウザから アクセスされた場合、charset="ISO-8859-1" のように動的に設定するような事は可能でしょうか? <%@ page contentType="text/html; charset=Windows-31J" %>
@pageディレクティブ使わずにサーブレットと同じように書けばいいんじゃない?
353 :
fromG :2005/10/10(月) 16:37:36 ID:daavjQBv
初めまして。 JavaServletでちょっと特殊な会員制投稿サイトを作りたいと検討中なのですが、サーバ周りの知識が不足しています。 まずは家庭内LANを組んでコツコツ開発していきたいと考えているのですが、まだ漠然としたイメージしかありません。 どんな環境を構築すればよいでしょうか。類似例やキーワードだけでも結構ですのでご指導ください。 漠然とした質問で恐縮なのですが、よろしくお願いします。
別にLANは必要ない。 アプリケーションの作成だけならすべて一台のマシンで事足りる。 最低限必要なのは↓ ・OS(Windows/Linuxなど) ・Java SE SDK (Sun の Java2 SDK など) ・Servletコンテナ(Apache Tomcat など) ・Webブラウザ
355 :
fromG :2005/10/10(月) 17:47:49 ID:daavjQBv
LANは必要ないんですね、ありがとうございます! そう言えば誰かも昔、そんなことを言ってたような・・。 他にもお気付きの点がございましたらお願いします。
356 :
fromG :2005/10/10(月) 18:03:17 ID:???
ageて失礼しました!
コンパイルエラー!!!!!
分かったよ…分かったから…
>>356 JDK5.0+NetBeans4.1をダウンロードして、NetBeans起動してWebプロジェクト作成して適当にやってれば、とりあえず動かすところまではすぐできる。
その場合、ダウンロードする必要があるのはそのひとつのファイルだけ。
360 :
nobodyさん :2005/10/11(火) 16:58:56 ID:F6jZH3tC
velocity-tools-1.1/examples
のsimple.warファイルを
jboss-3.2.6RC1/server/default/deploy
に入れて、
http://localhost:8080/simple/ にアクセスすると、
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/index.vm'
というエラーメッセージが出ます。
何か設定などが必要なのでしょうか?
(warファイルを展開すると、index.vmは存在しています)
javaはJAVA_HOME=/usr/local/j2sdk1.4.2_09です。
Linux上で動作させています。
361 :
347 :2005/10/12(水) 00:24:55 ID:???
>>348 展開形式でも普通にデプロイできるし
よほど設定しなければデフォルトでJSPや
サーブレットの更新が検出されるけど、
何かエラー出てるの?
現在Tomcat/4.1.18を使用して、勉強している最中なのですが、 ブラウザからプロジェクト(Test)内に存在しないクラスファイル(test)を指定した場合、 毎回以下のような長いエラー文が表示されるのですが、 例えばURLを間違えた人が居たら毎回このようなエラーをログファイルに吐いてしまうものなんでしょうか? これを出さない方法はありますでしょうか? 2005-10-12 01:05:11 StandardWrapper[/Test:org.apache.catalina.INVOKER.test]: サーブレット org.apache.catalina.INVOKER.test を利用不可能にマークします 2005-10-12 01:05:11 invoker: パス /Test/servlet/test にサーブレットインスタンスを割り当てることができません javax.servlet.ServletException: ラッパがサーブレットクラス test またはそれが依存するクラスを見つけることができません at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:890) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:666) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:416) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) -----------------略------------------------------------------------------
>>362 とりあえず、invokerは使うな。
話しはそれからだ。
>>362 関係ないが、勉強なら最新版の5.5.12でやれ。
4.xはJSP1.2だけど5.xはJSP2.0だ。
newInstance()とかで呼ばれるのではなくて、 普通にnewしてインスタンスを生成しているクラスで、 javaVMが最初にクラスをロードした後に classファイルをコンパイルして更新しなおすと、 次にnewするときは、更新したクラスが生成されるのでしょうか。
というか試せばすぐ分かることだろうが。
>>367 クラスローダー?javaVMじゃないの?
370 :
nobodyさん :2005/10/13(木) 23:49:35 ID:A0tUEpfe
質問があります。 現在パスワード入力後のログイン管理にクッキーを実装しようとしています。 index.jspでパスを入力させ、index.jspに引数でパスを与えて正しければログイン状態にします。 ログイン状態の表示として、パスワードボックスの代わりに「ログオフする」と記述しています。 その文字列をクリックすると、またパスワードボックスが表示される仕組みです。 しかし、現状ではログイン後に一度更新しなければならず、 ログオフ後も一度更新しなおさないと正しく表示されません。 アドバイスしてくださる方いらっしゃればぜひお願いします。
>>370 これだけの書き込みでわかるわけがない。
ソース晒せ。
372 :
370 :2005/10/14(金) 00:02:00 ID:A0tUEpfe
<% //渡されたデータの取得 request.setCharacterEncoding("Shift_JIS"); String password=request.getParameter("password"); String kijiNo=request.getParameter("kijiNo"); if(kijiNo==null) kijiNo="0"; %> <% boolean login = false; try{ String sql="select password from 管理者;"; ResultSet rs = st.executeQuery(sql); String str; String logoff = "logoff";
373 :
370 :2005/10/14(金) 00:03:42 ID:Ouyhurru
rs.next(); str = rs.getString(1); if(str.equals(password)){//パスが正しければ String value = URLEncoder.encode(password);// クッキーに格納する文字列を作成 Cookie cookie = new Cookie("mblog",value);// 名前が"mblog"、値がpasswordであるクッキーを作成 cookie.setMaxAge(7 * 24 * 60 * 60); //有効期間を7日に設定 response.addCookie(cookie);// クッキーを発行 login=true; }else if(logoff.equals(password)){//ログオフした場合 // クッキーを削除 Cookie cookie = new Cookie("mblog",""); cookie.setMaxAge(0); response.addCookie(cookie); login=false; } }catch(Exception ex) { out.println("ERROR:DB Output"); out.println(ex); } %>
374 :
370 :2005/10/14(金) 00:04:40 ID:Ouyhurru
<%//クッキーの取得 Cookie cookies[] = request.getCookies();// クッキーの配列を取得 Cookie mblogCookie = null;// 目的のクッキーを格納する変数 // それぞれのクッキーに対して名前を確認 if(cookies != null) { for(int i = 0; i < cookies.length; i++) { // 名前が "mblog" であるかチェック if(cookies[i].getName().equals("mblog")) { mblogCookie = cookies[i];// 該当するクッキーを取得 } } } %> <!--初期設定ここまで--> <body bgcolor="#FFFFFF" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0">
375 :
370 :2005/10/14(金) 00:07:14 ID:Ouyhurru
<div align="center"><img src="spacer.gif" alt="" width="1" height="15" align="top"><br> <table width="722" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3" class="color2"><img src="spacer.gif" width="1" height="1"></td> </tr> <tr> <td class="color4" align="center" width="140"><div style="margin:4px" class="lin2"><a href="delete.jsp">削除 </a></div></td> <td class="color4" align="center" width="140"><div style="margin:4px" class="lin2"> <% // 該当するクッキーがみつからなかった場合 if(mblogCookie == null) { login=false; } else { // クッキーがみつかった場合login login=true; //login } if(login==true){ out.println("<a href=\"index.jsp?password=logoff\">ログオフする</a>"); }else{ out.println("<form action=\"index.jsp\" name=\"password\"><input size=\"8\" type=\"password\" name=\"password\"><input type=\"submit\" value=ログイン></form>"); } %> </div></td> 長いので、テーブル構造を少し省略しました。 汚いソースですいません、大体ここらあたりの問題だと思います。
> 汚いソースですいません 多少の自覚はあるようだw ビューとロジックをまったく切り離していない、最悪なソースだな。 つっこみどころも満載だし。 あとで時間があったらゆっくり見ておく。
解読に時間がかかるソースは回答が得られないわな。 もうちょっと整理したら? 整理したら解決策が自分でわかることも多いし。
requestで取得できるのは前ページから渡されるパラメータだけじゃないの。
私は千葉&市川都市に住んでいる。 JSP (Java Server Pages) を知ってる人と会いたい です。
>>379 11/8からのJavaOne行きゃたくさんいるよ。
>>380 それは何ですか? Conferance? Or Meeting?
私は深刻です。私はまだ日本で少しだけ住んでいます。
だから何も知らない。だからJSP をすきひととあいたいです。
すみませ、私の日本語はまだまだじょずない。
>>381 機械翻訳調にすれば、少しは釣れるかもしれないけど。
1点。
>>381 だいじょうぶ。JavaOneで話する人はガイジンが多い。
log4jのLogクラスで行番号が出せるけど、行番号なんてどうやって出しているのだろうか Cのプリプロセッサだけの芸当かと思ってた
>>384 >>Cのプリプロセッサだけの芸当
java の stack trace にも普通に行番号が出ているわけだが・・・。
>>384 コンパイル時のオブションでバイトコードに行番号情報を埋め込める
>>386 じゃあlog4jではその仕組みを使っていて
log4jでなくても行番号は使用できるのですね。
出し方は何か特別なことがあるのでしょうか。
つーか、javaのロギングIF気に入らないんだけど 何でLoggerのstaticインスタンスをクラス毎にもたにゃいけないの。 だせ
サーブレットでホスト名を取得する方法はあるでしょうか
>>391 InetAddress.getLocalHost().getHostName()
>>392 ありがとうございます。
weblogicでアプリケーションのドメイン名を取得する方法はありますか。
めんどくせー エクセプション処理まじめんどくせー 新しいエクセプション追加したら呼び出し元全部修正じゃん めんどくせー もうこれからどんなメソッドでもthrows Exceptionだな
まあドトネトはそれで上手くいってる(?)わけだし
>>394 新しい例外はRuntimeExceptionで。
>>396 それって割と聞きますが結構みんなやってるんですかね。
基本的な考えではNGなんですよね。
398 :
nobodyさん :2005/10/20(木) 21:31:44 ID:3nFaUhN4
JSPでDBへの接続ポートを複数開くのはセオリーから外れていますか? 6つの接続をもつファイルがあるんですけど
>>397 throws Exceptionやるよりマシ。
というか、最近はRuntimeExceptionの方が主流になってきてる。
例外のせいでメソッドが特定のライブラリに依存するのは本末転倒だから。
例えばHibernateなんかでは例外がRuntimeExceptionになってきてる。
>>398 ムダな処理を行うことは、セオリーからはずれる。
ムダではないなら、セオリーからはずれない。
401 :
398 :2005/10/20(木) 22:37:46 ID:3nFaUhN4
>>400 そりゃそうですね、失礼
しかし、ロジカルな部分を全てヘッダに持って来たいためだけに
複数の接続を作って、複数同時に開いてるのだが・・・
処理が重くなるのは当然だろうが、弊害はないだろうか。
402 :
398 :2005/10/20(木) 23:04:16 ID:3nFaUhN4
あ、違う質問なんですけど。 jspでDB(postgresql)にString型で「〜」を入れて、 取り出して表示したら「?」や空白文字になるんだけど・・・ なんでだろ?誰か教えて〜
>>398 JSPでDBアクセスしている時点でセオリーからはずれまくり。
コンテナ管理のDataSourceを使わない、という点でもセオリーからはずれまくり。
文字化けは、
・JSPのソースの保存文字エンコーディング
・出力時のコンテントタイプと文字エンコーディングの指定
・DBのテーブルの文字エンコーディング
・DBMSの製品とバージョン
・JDBCドライバの製品とバージョン
・JVMのバージョン
これぐらいの情報があって初めて正確な回答が得られる。
何も書いてないと言うことは、何も気にしないで実装している?
そんなんじゃ文字化けするのも頷ける話しだ・・・
>>398 スレッド作ってクエリ投げてんの?
そういうプログラミングって注意しないとトラブルになることが多いよ。
ちょっと遅くなるくらいならごくごく普通にコーディングしておくのが吉。
パフォーマンスの問題はキャッシュ使うとか普通の方法で解決するよろし。
405 :
404 :2005/10/21(金) 09:39:31 ID:???
>>399 じゃぁ主流なんで問題ないってことで。
本当にexceptionごときの追加でソース修正したくないです。
tokenでアクセス制御してるけど そのマッピングでinput指定してるとき tokenの処理が走る前に validateがかかりinputのfowardされる。 この仕組みは明らかに設計ミス!
>>407 半分以上の人には何の話かわからない、わけのわからない書き込みやめれ。
"token"も"validate"も"input"も"forward"も、どうにでも取れる一般用語でもあるし。
その場合同じトークンが再利用されるだけじゃないの?
まったくだ。
>>408 Strutsだろ、とは思うけど、それならそれでスレ違いかな
>JavaOne のばしょうはどこですか? 検索すらできない奴は来てもムダだ。
415 :
nobodyさん :2005/10/24(月) 10:50:52 ID:6FV9pavP
EJB使わないのにJBOSS使う意味ってなにかありますか? DIコンテナを使ったWebアプリケーションを作る予定なのですが。
たら、Springでいいんじゃないの?
417 :
415 :2005/10/24(月) 19:43:09 ID:???
>>416 springとtomcatですか?
spring + jboss という組み合わせはナンセンスですか?
入力チェックでJIS第1(0x8890〜0x97FF、0x9840〜0x9872)チェックだどうすればよいでしょうか。 string.matches("[0x8890〜0x97FF")してもだめでした。 正規表現は文字コード指定できないのでしょうか。
サーブレットの中で、サーバーの404 not found のエラーを出させることはできるでしょうか。 あるユーザーには、ページなしを見せたいのですが。
>>419 HTTP のステータスコード404を返せばいいじゃない。
>>420 responceのsendError()でできました。
ありがとうございます。
ちなみに、requestが他のサーブレットからforwardされてきたかの情報は取得できるでしょうか。
直接URLのリクエストでアクセスが来たのか
他のサーブレットからforwardされたか判定したいです。
>>422 WEB-INF以下はforwardしかないので大丈夫ですが、
WEB-INFと同階層のjspは、urlでは判断できないです。
勘違いしてますか?
>>421 サーブレットのメソッドをあさってみたが、おそらくそんな情報は持っていないだろう・・
strutsで、アクション別のsaveTokenは生成できないのでしょうか。
>>426 ですよね。
もしくは、sessionにページ識別IDでも入れておいて、savetokenと一緒に評価するとか
>>407 validateオーバーライドして、super.validate()する前に、
tokenチェックをすればようにでは。
ただactionないではないので、tokenは取得できない?
クラスパスってロジックの中で追加することってできないですか
strutsでactionFormの中でforwardしたいのですが、 responceがないとforwardできなく、ActionFormにはresponceが見当たりません。 何か方法はあるでしょうか。
>>431 ActionFormというコンポーネントの役割を考えたら、なぜそんなことをしたいのかが理解できない。
で、"responce"ってなんだ?
reset()メソッドやvalidate()メソッドで無理矢理RequestDispatcherのforward()を呼ぶ記述が
できないこともない。しかしそれをやると、Strutsというフレームワークの構造上と
Servlet APIの仕様上の理由で、実行時例外が出るのはほぼ間違いない。
>>432 まじっすか。407にも書いてありましたが、
どうしてもvalidateの前に、画面遷移が正しいかのチェックをしたくなりまして。
つまり、遷移がおかしいときに、inputへforwardさせたくありません。
ちょっと考えてまたのですが、行き詰まってしまい、
サーブレットのfilterでチェックをかけて、redirectしようかと考えています。
適切じゃない設計は適切じゃない実装になる、どんどん複雑になる、といういい例だな。
webアプリでクラス更新して再ロードされるのは、newしてるラスだけでした。 Actionは初回しかnewされないので、1度ロードされるとクラスを更新しても読込まれないようです。
>>436 reloadble="true"で再ロードならその通り。
TomcatManagerの再ロードやAntのreloadタスクで再ロードするなら、すべてのクラスがロードし直される。
>>437 antのreloadタスクってすべてのEJBコンテナで有効なのでしょうか。
>>438 少しでも調べたのならそんな質問はできないはずなのだがね。
コンテナがAntタスクを提供しているかいないかによる。
「すべての」なんて現実にあり得るわけがない。
現実で答えれば? reloadタスクがtomcatのタスクだってこと。
getParameterで取得した値が空の場合、 str.equals("")で比較するとtrueになるのですが、 str.equalsIgnoreCase("")とするとfalseになってしまうのは何故でしょうか。
442 :
441 :2005/11/06(日) 16:17:01 ID:???
なりませんでした。 どうぞののしってください。
すみません。tomcatなんですが シングルスレッドモデルで動作させるためには どこを設定すればいいでしょうか?
事故解決しました。
おすすめの書籍って何? ASPとPHPは開発経験あり。ApacheとTomcatの環境作りは得意分野。 この程度のスキルなんだけど。
セッション追加リスナー内でセッション追加したら無限ループですよね・・
JSP使うとき、皆さんスクリプトレスにどれだけ気い使ってます?
どんだけJSPの中でJavaコード書かないかってこと? 気い使うも何も、書くことなんてありえんでしょ。
453 :
nobodyさん :2005/11/29(火) 16:06:28 ID:Jc3QczRr
Tomcatのサーブレットの中で、Rhinoを使おうとしています。 URLClassLoader loader = new URLClassLoader(URL[0]); Class c = loader.findClass("org.mozilla.javascript.Context"); というコードで、ClassNotFoundException が発生します。 しかしデバッガで追っていると、前の部分にある Context cx = Context.enter(); というコードは実行できるているので、Context クラスが見つからないというのが腑に落ちないです。 環境は、J2SDK1.4 / Tomcat 4.1 / Rhino 1.5 を使用しています。 ちなみにstatic void mainメソッドを追加して、単なるコンソールアプリとしてJREで動かすと例外は発生しません。 ひょっとしてURLClassLoaderの使い方を間違っているのでしょうか?
> Context cx = Context.enter(); そのContextクラスは、javax.naming.Context というオチじゃないだろうね?
>>454 レスありがとうございます。
javax系はimportしてません。
import部分は↓な感じです。
----
import org.mozilla.javascript.*;
import org.mozilla.javascript.debug.Debugger;
import org.mozilla.javascript.debug.DebugFrame;
import org.mozilla.javascript.debug.DebuggableScript;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.LinkedList;
>>455 じゃあ、コンパイル時のクラスパスには含まれていて
実行時には無いってことじゃないの?
そもそも
>>453 見ても何が言いたいのかよくわからん。
URL[0]の文字列は何?
ClassNotFoundExceptionが何処で発生しているのか?
つーか、外部jarファイルはWEB-INF/libに配置するはずなのに、わざわざURLClassLoader使っている意図は?
「前の部分にある Context cx = Context.enter(); 」って何?
webコンテナ再起動時にセッション情報が破棄されますが、 リスナーでサーバ再起動時に、セッション情報をすべてシリアライズしてファイルに保存し 起動時にリスナーでセッションに保存したものを登録すれば セッション情報は復活するでしょうか。
>webコンテナ再起動時にセッション情報が破棄されますが、 この前提が正しくない。 やってみてから質問しろや
やってる。weblogicの再デプロイですべてなくなる。 破棄されないことはないというwebコンテナの使用でもあるの?
破棄されないというか、トムキャットだと自動でシリアライズ/デシリアライズしてくれるが 喪前は何を使ってる?
なぬ。tomcatは自動でやってくれるのか。 下手な製品使うより、開発が盛んなフリーをつかうのががいいねぃ・・
ちなみにtomcatの再デプロイ中にアクセスするとサーバーに接続できませんになります? コネクションをプールして、再デプロイ後に処理を再開してくれるとか・・
再デプロイはまた別だろ・・・
WebLogicだとクラスタ組んでセッションをレプリケートさせるのが一般的。 セッション情報永続化機構もあるっぽいけど。
イントラネット内で、servletやjspを使って動的にサーバで作成されたwebページを、クライアント側からブラウザの「名前を付けて保存」機能などを無効にして、 クライアントのPCに保存させないようにする方法はあるのでしょうか?
>>466 IEなら可能かもね。
JavaScriptのスレで聞くほうがいいと思われ。
>>467 ということは、JavaScriptを有効にしていないブラウザでは防ぎようがない、てことなんでしょうか
とりあえずはJavaScriptが無効になっているブラウザには表示させないようにして、スクリプトそのものはJavaScriptスレで聞いてみます
ありがとうございます
>>468 ブラウザで表示されている→HTMLをダウンロードしているということだから。
表示できるhtmlなら100%ソースを見ることができる。
>>469-470 そうなんですよね・・・
ソースを暗号化してくれるソフトなんてのもあるようですが、動的に作成されたページまでは暗号化してくれないようで。
動的に暗号化してくれるようなソフトがあればいいんですが。
ただいまJavaScriptとservlet+FLUSHを使ってどうにかできないか模索中です
無駄な模索。 ソースを保存させたくないと考えさせるような駄目な仕様だとなぜ気づかん。
>>472 表示させたくないのはソースというか、表示されたページの数字なんです
社内のイントラネット内で帳票をweb化して見られるようにと考えているんですが、
印刷も保存もさせないように、社外にデータを持っていくのが困難なように作る必要がありまして、
ブラウザで保存をやられると簡単にデータとして大量に安易に社外に持ち出すことが簡単になるのでそこを防げたらと思いまして。
>>473 そもそもそういう意図があるものを、暗号化や署名の仕組みがないHTMLでやるのが間違い。
しっかりしたソリューションを使うのを勧める。
Javaであれば、Java Web Start使って通常のアプリにするとか。
仮にソースの表示を禁じられるとしても、 PCで画面表示している限り、イメージキャプチャなどの手段で いくらでもデータを持ち出す方法などありそうだが。 たとえばWindowsならPrintScreenキーで現在のデスクトップ表示を丸ごと画像化できる。
プライバシーマーク関連か。 だとしたら、今考えているシステムができたところで却下だぞ。
>>474 Java Web Startですか・・・
amazonでも教本は無いんですね・・・
>>475 完全ではないと思いますが、ページを表示している限りjavascriptでキャッシュを0.1秒ごとに消去するスクリプトを使いました
>>477 そんなん、普通にJavaのアプリ作ってJNLPファイル作るだけだ。
「java JNLP」でぐぐれば資料はみつかる
>>477 完全ではないどころか、まったく意味がないと思われ。
>>476 いやそんな大それたものでも無いんですが・・・
情報は各店舗の売り上げ状況とか倉庫の在庫状況とかです。
今の状態ではプリントアウトして担当者に渡しっきりなので、そこから情報が漏れるかもしれないから何とか出来ないか、とのことでして。
まあエクセルとかにその情報をタイピングして入力されたら終わりなんですけどね・・・
というかそこまで重要な情報かと・・・
>>478 アプレットは作ろうと思ったことも無かったのでページみてもよくわかりませんでしたが、挑戦はしてみます
>>479 意味ないですかorz
ソフトを使われたら防げないということなんでしょうか
アプレットとは違うって。
>>481 お恥ずかしいです
JNLPってxmlをJavaで解釈して表示させるんですね
xmlもやったことありませんが勉強だと思ってチャレンジしてみます
どこからそんな解釈が・・・
>>483 どうも馬鹿を晒しているだけのようなのでそろそろ消えますが、最後に一つ質問をお願いします
JNLPのアプリから、servletを連携させてデータベース内の情報を読み取りまた元のJNLPのアプリに表示させる、ということは可能なのでしょうか
またそれは速度、セキュリティ面の問題など、社内web照会システムとして運用に耐えうる現実的なシステムとなり得るのでしょうか。お願いします。
>ソフトを使われたら防げないということなんでしょうか お前アホだろ?
>>484 JNLPはファイル形式。
データをHTTPでDLして表示させるアプリケーションを組めばいい。
そのアプリのjarとクラス名書いたJNLPファイル用意すれば、Java Web Startで起動できる。
社内システムなら、速度的には問題ないだろ。
セキュリティも、
>>484 が浅い考えでHTMLに工夫するよりはマシ。
データのやり取りはサーブレット使う場合はXMLでということになるんだろうが、それならWebサービスを使う方が楽かもしれない。
>>485 正直なんで駄目なのかわかってません
>>486 ありがとうございます
それでやってみます
ただ社内には未だPen2_400Mhzとか使ってる部署もあるのでそこでどう動くか不安ではありますが
今までWebLogicばかり使ってたんだが、WebSphereのデプロイがめどい。 ANTなりなんなりで自動化できんものか。 漏れがやり方知らんだけかもしれんが。
489 :
nobodyさん :2005/12/14(水) 00:34:25 ID:MpsaGRgL
他のJSPにパラメータとしてURLを渡したいのですがうまくいきません。 ------------------------------------------------------------------ TEST1.jsp String url = "http○○?name=" + name + "&birthday=" + birthday; sendRedirect("TEST2.jsp?url=" + url); ------------------------------------------------------------------ ------------------------------------------------------------------ TEST2.jsp String returnURL = request.getParameter("url"); sendRedirect(returnURL); ------------------------------------------------------------------ ここで期待するreturnURLの値は "http○○?name=太郎&birthday=12月14日" なのですが "http○○?name=太郎" となってしまいます。 &の部分を&などにしてみましたがだめでした。 一体どうすればええのでしょう?
で、そこに書いてないけど、どうやって特殊文字のエスケープしてるの?
もちろんそんな事はしないし、URLエンコードもしないよ? なにか問題でも?
493 :
s :2005/12/16(金) 11:14:36 ID:fac/AGgi
jspからExeを起動する方法はありますか?
494 :
& ◆zBxSVSF1yI :2005/12/16(金) 11:16:20 ID:fac/AGgi
JSPからリンク文字列をクリックしたときに自作クラスを呼べるようにしたいのですが、 何か方法はないのでしょうか? ---------JAVAソース--------- package test.ExeOpen; import java.io.IOException; public class ExeOpenClass{ public static String OpenPro(){ try{ Runtime myRuntime = Runtime.getRuntime(); myRuntime.exec ("c:/test.exe"); }catch( IOException e){ e.printStackTrace(); } } }
>>493 あります。
というか、JSPだろうがサーブレットだろうが、書き方は変わりません。
>>494 そのクラスを呼び出すサーブレットなりJSPなりにリンクを貼ってください。
496 :
& ◆OSEgLzbrzg :2005/12/16(金) 13:52:57 ID:fac/AGgi
>>494 リンクの方法がわかりせん。。。
無知ですいません・・・
498 :
494 :2005/12/16(金) 15:55:43 ID:fac/AGgi
>>497 <a href = " ??? " >リンク</a>
???への指定文字がわかりません
例えば
package test.ExeOpen;
なら、
<a href = "test.ExeOpen" >リンク</a> ですか?
<a href = "test.ExeOpen.ExeOpenClass" >リンク</a> ですか?
>>498 「そのクラスを呼び出すサーブレットなりJSPなりに」リンクを貼ってください
500 :
498 :2005/12/17(土) 08:26:16 ID:US7vhErb
クラスを呼ぶ→ウィンドウを閉じる の処理をするためだけのJSPを作って リンクすればよいですか? その場合、ターゲット指定を行っても 一瞬ウィンドウが開くので見た目的にダメということでした。。。 他にはないようですか?・・・
マッピングしてそのURLにリンクさせればいいんじゃないの?
502 :
498 :2005/12/17(土) 14:16:28 ID:US7vhErb
マッピング?
>>500 あとはJavaScriptとかHTMLの話。
2つのリストボックスを連携させて、片方のリストボックスを選択すると もう一方のリストボックスの内容が動的に変わる、というものを作りたいのですが、 jspとjavascriptの連携がよく理解できず困ってます。 例えば listbox1に 巨人、阪神、中日 というものが入ってて巨人を選択すると listbox2の内容が 高橋、清原、松井、長島、王 という感じに変化して、選択できるようになるというものです。 このとき、listbox2に入るデータは、listbox1が選択されるたびにDBから引っ張ってきます。 javascriptでonchengeを使って飛ばした関数内でJSPを呼び出してDBにアクセスするというのは可能でしょうか、、
可能です。
なぜjspで処理したいのか。 普通にやるなら、onchangeでsubmitしてやってservletでDbアクセス。 同じ画面に遷移させてやって、変数をrequestからget 変数をリストボックス2にセット。 でいいんちゃうか、と。 ちなみにjavascriptの関数からjspの処理呼び出しはムリだろ
javaAPIの質問なのですが、Readerをclose()しないと、 ファイルリソースは永久に残ってしまうのでしょうか。
GCされれば解放されます。
>>508 ありがとうございます。
これは、finalizeメソッドに実装されているということなのでしょうか?
staticメソッドをオブジェクトから呼ぶと、予期しないエラーが発生するかもと 参考書に書いてあるのですが、実際にどのような不都合があるのでしょうか。 現在velocityテンプレートを使用していて、commonsのStringUtilsなどのメソッドを使用したいと考えています。 そうなると、Utilsクラスをnewしないといけないので・・・ 実際はnewしてオブジェクトから呼んでいますが、 すぐに止めたほうがいいのでしょうか。
>>510 Integer.parseIntなんか、オブジェクトから呼び出せなかったら困るが。
なんて参考書?
>>511 下記のコードを書くと、eclipceで警告も出てしまいます。
Integer i = new Integer(1);
i.parseInt("2");
>>513 Integer.parseInt("2");
>>515 いろいろありがとうございます。
まとめると、ststicメソドは特にインスタンスから呼んでも正しく動作する
で大丈夫でしょうか。
ここはひどいマジでインターネットですな・・・突っ込む気にもならん。
>>516 おけ。
staticメソッドは「クラス名.メソッド名」で呼び出せ。
スレッド番号を取得することは可能でしょうか。
519です。 説明不足でした。 WEBコンテナがプール・または実行しているリクエストスレッドの識別番号のことです。 そんなのあるかどうか分からないのですが。 リクエスト毎にランダム情報(何かの識別情報として使いたいです)を取得したいのですが、 作りすぎたくはないので、 リクエストが発生するたびに、実行されているスレッドの識別情報を使用したいと思っています。
スレッドが使いまわされる可能性があることもちゃんと考えてるんだよね? おとなしくapplicationスコープに値を持たせて連番振ればいいと思うんだが。
>>521 逆にスレッドが使いまわされるのが狙いです。
1リクエスト中のみに必要なのもで、
一つ言い忘れていたのですが、そのIDでファイルを作成する予定です。
例外などでファイルの削除消し忘れがあるといやなので、
スレッド識別名をそのまま使用できれば
単純にファイルの削除はしなくても、MAXスレッド数以上は作成されないので便利かなと思いました。
そういうファイルが必要な理由がまずわからんが・・・
リスナーのイベントにあるセッション自体の破棄で、 サーブレットでセッションの破棄はできるのでしょうか。 セッションオブジェクトには破棄メソッドのようなものはなかったです。
リスナーとかイベントの意味わかってる?
>>524 >セッションオブジェクトには破棄メソッドのようなものはなかったです。
よく探せ。
>>526 invalidated・・ありました。
ありがとうございます。
removeだと思っていました。
StringWriterのStream版ってあるのでしょうか?
使い道があるとは思えんが
ByteArrayInputStream()を見つけました。 同じ意味合いそうです。
WriterとInputStreamが同じ意味合いって・・・
>>520 自己解決です。
Thread.currentThread().getName()
IPアドレスで指定したサーバにアクセスして通信する、みたいなことはjspでできますか? ブラウザ上で動く通信プログラムを書きたいんです。 jspで普通のソケット通信ができればいいんですが。
>>533 ブラウザ上で動かすのに、なぜサーバサイドで動くJSPを使おうと思うんだ?
>>533 JSPはJavaでできることならなんでもできるが、ブラウザ上で動くプログラムをJavaで作るならアプレットだ。
サーバサイドなら、httpさえ使えればどんな通信でもできるなって思いまして。
クライアントサイドこそ、どんな通信もできる気がするが。
538 :
533 :2006/01/16(月) 14:08:06 ID:???
>>535 Javaアプレットでは、自分が呼び出されたサーバ以外との通信はできなかったと記憶しています。
>>537 「外部へは80番への接続のみ許可する」とかいう環境がありますし、
自分のPCでない場合ダウンロードやインストールをせずに使用できるというのは強みだと思います。
JSPはブラウザ上で動作しないってわかってる?
540 :
533 :2006/01/16(月) 15:57:07 ID:???
>>539 そりゃ無論。
説明不足でしたね。
私はjspの知識はほとんどありません。
javaの知識だけでjsp+tomcat+postgresのシステムいじってた時に、
どんなことまでできるのかなって思ったんですよ。
例えば、「ブラウザからサーバのjspで他のサーバにtelnetで接続するんだけど、
処理はサーバですべて行ってブラウザでは結果だけ表示」みたいなのをイメージしてました。
けどjspだと、サーバの動きに合わせて表示内容を随時更新するというのはできないんですかね?
543 :
nobodyさん :2006/01/20(金) 02:22:10 ID:Km1ruKpb
【実現したいこと】 Web上のリンクをクリックすると、 ExceLファイルが開いて(IE内でなくてもよい) 修正して、Web上に(Excelのツールバーの上書き保存ボタン等で)保存するには どうすればいいのでしょうか? 環境はApache+TomcatでWebdavは設定しました。 (VBScriptではWeb上のExcelファイルを、 Fileオブジェクトを生成し、Excelファイルを開き 上書き保存ボタンでWebに上書きできることを確認しました。) しかし、現状JSPで作成したHPがあり、ファイルへのリンク機能のみだったのですが、 今回、ファイルの更新もできるようにしたいと思いました。 ご教授のほどよろしくお願いいたします。
544 :
543 :2006/01/20(金) 02:23:40 ID:???
>>543 の環境は、OS:XPでoffice2000です。
545 :
nobodyさん :2006/01/20(金) 13:23:28 ID:yXtCuLJZ
PHPとJavaScriptの組み合わせしかないと思い込んでるのかもしれないけど、以下の問題についてご教授願います。 「Submit前」のFormの値をPHPで取り出す方法を思案中。 pseudoでもちろん動かないけど、やりたいことはこんな感じ +++++++++++ ... <form name="aaa"><input type"text" name="bbb" value="" onChange="register_value()"></form> ... <script> function register_value() { <? $ccc ?> = document.aaa.bbb.value; } </script> +++++++++++ 他にメインのFORMがあっていろいろやってるので、ここではどうしてもSubmit前に処理する必要がある(と考えてください..)。 結局的にやりたいことは、FORM上の値を、SUBMITする前に(つまり $_POST['bbb'] ではなく)その場で(この場合はonChangeの度に)PHPの値$cccに渡したい。 JavaScriptの「document.aaa.bbb.value」ではなく、PHP独自で現document上のFormの値を取り出すことは可能なのでしょうか?
546 :
545 :2006/01/20(金) 13:24:34 ID:yXtCuLJZ
誤爆...。 失敬
jspでタグリブをコメント(<!-- タグリブ -->)にしても実行されてしまいます。 タグリブを動作させないためには、削除するしかないのでしょうか。
ルーク、<%-- コレを使え --%>
>>547 なぜ<!-- -->でカスタムタグが動作しなくなると思うのか不思議で仕方ない。
ブラウザが見た目に表示しないというだけじゃないか。
sendRedirectした場合は、このメソッドからリターンされるのでしょうか
Javaの文法わかってますか?
いえ、メソッド内でスレッドを終了しているのかなと思いまして。 exit()てきなことですかね。
その下にSystem.outにでも出力してみればすぐ分かることだろうが。 アホ
>>552 もしそうだったらレスポンス返らないだろ。
>>555 なぜ?
exit()したらServletコンテナが終了するよ。
>>556 多くのサーブレットコンテナの実装はsendRedirect()の内部で
レスポンスを返すようにしていると思う。
そうするとsendRedirectの中でexitしててもレスポンス返せる。
550の勘違いの上で議論してもあんまり意味ないね、
細かい指摘でスマン
>>557 どうみてもTomcatのソースはsendRedirect()の内部でレスポンスを返すようなコードになってません。
本当にありがとうございました。
>>557 細かい指摘であることは謝る必要ないが、間違った指摘であることは謝ったほうがいいと思われ。
557の勘違いの上で議論してもあんまり意味ないね。
560 :
557 :2006/01/28(土) 19:54:24 ID:???
気に障ったみたいでごめんなさい。 Tomcatを意図してたわけではないんだけど、 Tomcatのソースを確認してみたら558さんの言うとおり sendRedirect()を抜けてからレスポンスを返し(=ストリームをフラッシュ)てますね。
561 :
nobodyさん :2006/01/29(日) 17:18:37 ID:gKzYFANK
jspをやろうと思ってソースコードを読んでみたのですが どこにも public static void main() が無いです。 不良品でしょうか?
どういう釣りだ、それは
HellowWorld.javaを継承しています。
HashMap、Propertyクラスで、keyをiteratoerで取得できますが、 putした順番または、設定ファイルに書いた順番で取り出すことは可能でしょうか
>564 LinkedHashMap 使え
>>565 ありがとうございます。
apiをみてみたのですが、PropertiesクラスにはLinkedはなかったのですが、
Propertiesにはないのでしょうか。
BufferedReaderで読込んで、LinkedHashMapに登録しかないでしょうか。
その時、unicodeのデコードの仕方がわかりません。
>>566 Properties って結局 String だけを出し入れすると決めて作られている HashMap だ。
イテレータの取り出す順番が入れた順番通りになる
……というのが保証された Properties は無いから
public class LinkedProperties extends Properties とでもして
put/putProperty と get/getProperty あたりをオーバーライドして自作しれ。
Class(各クラス)の振るパスを取得することは可能でしょうか。 getResourceAsStreamで読込んでいるテキストに、 更新したデータを書き込めなんていわれたので、 こいつのOutputStreamのパスがほしいでやす
>>568 ClassLoader#findResource
しかし、サーブレットなんだからgetRealPath使ったほうがいいな。
solarisやHPで、javaアプリが動いている最中に、ロード済みのファイルを上書き更新すると、 更新したクラスの処理に遷移した瞬間に、メモリエラー?のような、わけのわからないエラーになります。 同じ現象に悩まされた人はいるでしょうか?
>>567 ありがとうございます。
Properties のソース見たら、データ読込んで自身のputを読んでいたので
内部にLinkedHashMap持たせ、そこにプットします。
HashTableを継承じゃなくて、委譲だったら、持っているHashTableを変更するだけでよかったのですが・・
>>573 public java.lang.String getParameter(java.lang.String name)
要求パラメータの値を String として返します。
パラメータが存在しない場合は、null を返します。
要求パラメータは、要求とともに送信される追加情報です。
HTTP サーブレットの場合、クエリー文字列内または
POST された形式のデータ内にパラメータが格納されています。
パラメータに 1 つの値のみが含まれていることが確実な場合にのみ、
このメソッドを使用してください。パラメータに複数の値が含まれている
可能性がある場合は、getParameterValues(java.lang.String) を使用します。
……という事で仕様。
>>574 ありがとうございます。
GETが先に呼ばれるので、サーブレットの仕様としては
パラメータ配列の1番目はGETのパラメータということですね。
どーしてもリクエストをシリアライズしたかったので、↓なクラスを作りました。邪道ですか? public class CompactRequest implements Serializable { private String characterEncoding; private Map attributeMap = new HashMap(); public CompactRequest(HttpServletRequest request) { Enumeration enumeration = null; String key = null; this.characterEncoding = request.getCharacterEncoding(); enumeration = request.getAttributeNames(); while (enumeration.hasMoreElements()) { key = (String)enumeration.nextElement(); this.attributeMap.put(key, request.getAttribute(key)); } } public String getCharacterEncoding() { return this.characterEncoding; } public Object getAttribute(String name) { return this.attributeMap.get(name); } }
そんなコート書いた同僚が居たら そいつの席の周りを画鋲だらけにしたくなるほど邪道。 まずクラス名がおかしくないか。 あとパラメータ等を全部そのまま渡したら層を分ける意味がないし。
>>577 そーですか。
ちなみに私は、入力フォームビーンを
BLのデータマッピングビーンとしても使用してます。
超邪道でしょうか。
どんなフレームワーク使ってるかもわからんのに、入力フォームビーンとかいわれても知ったことではない。 バカの誇示ってとこか。
580 :
nobodyさん :2006/02/12(日) 17:57:56 ID:yYs6F7tU
はじめましてこんにちは。
Tomcatの質問になってしまうかもしれないのですが、
URLに.jspというような拡張子を表示したくないのですが、
エイリアスを設定することってできるんでしょうか?
たとえば、
http://hoge.com/aaa.jsp というようなアドレスにアクセスするときに、
http://hoge.com/aaa でアクセスできるようにしたいのです。
OSはWindowsなので、UNIXのシンボリックリンクのようなことはできないんです。
それから、ファイル名を全部index.jspにして、それぞれディレクトリを作るということも
ディレクトリが多くなってしまのでしたくありません。
Tomcatの設定で何かありませんでしょうか。
web.xmlでurlパターンをマッピングすれば?
582 :
nobodyさん :2006/02/12(日) 18:17:29 ID:yYs6F7tU
584 :
nobodyさん :2006/02/13(月) 14:12:00 ID:+1PT7SHK
すいません、教えてください。 今開発中のWebアプリをIFRAME内で動かしたいと言う案件が来まして その調査中なんですが、 どうもIFRAME内でリンクすると、sessionが初期化されてしまうようなんです。 これってばどうしようもないことなんでしょうか? 通常ブラウザで動いているときはそんなこと無いんですが・・・。
585 :
nobodyさん :2006/02/13(月) 17:12:24 ID:eySr8YL8
JDBCで、SQL文でinsert文を発行する場合Resultsetオブジェクトは必要になるのでしょうか? もし必要ないなら、そのままstatementオブジェクトをクローズしてOracleを 切断してしまっても構いませんか?
586 :
584 :2006/02/13(月) 17:32:35 ID:???
すいません、事故解決したっぽいです。
>>585 すれ違いだが、そもそもJDBCでinsert文を発行する方法わかってる?
588 :
nobodyさん :2006/02/14(火) 12:54:17 ID:z6Mrtg3V
サーブレットの方からインサートでOracleの表に2バイト文字のデータを 送信すると、Oracleの表の方で格納した文字データがどうしても文字化けしてしまいます。 何が原因なのでしょうか?また、解決方法はありますでしょうか?
原因特定を 『Oracle とサーブレットを使っている』 だけでやれというのか。文字コード設定がわかるエスパーきぼんぬ
まあ文字コードを統一すればいいと思うよ
まあ何事もそうだが、まずは問題の切り分けをしようぜ。 insertの直前にsystem.outに問題の文字列を出力してみることからはじめよう
>>591 System.outなんかすすめるんじゃねえよ。
デバッガ使えよ。
>>588 どの時点で化けているのか?から切り分けよう
リクエストパラメータを受け取った時点で化けているのか?
Javaアプリ内では化けていないが、DBに入れると化けるのか?
593 :
nobodyさん :2006/02/16(木) 17:44:53 ID:M8Q43SeU
こんにちは、tomcatの問題なんですが、jspを実行しよとしたら、以下のエラーが出てしまうんで、なんか解決方法ありませんか? 自分の理解では、「コンパイラが存在しない」らしいけど type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: No Java compiler available org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 原因 java.lang.IllegalStateException: No Java compiler available org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:224) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:559) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>593 「コンパイラが存在しない」
そのものズバリです。JSPの実行にはコンパイラが必要です。
JDKじゃなくてJREがインストールされているとか、
JDKがインストールされていても、環境変数JAVA_HOMEがJDKをちゃんと指してないとか。
もしEclipseだったら「インストール済みのJRE」を見て
C:\Program Files\〜・・・じゃなくてちゃんとJDKインストールディレクトリが
指定されているかどうかをチェック。
595 :
nobody& ◆vGPd8m6uvw :2006/02/16(木) 17:55:50 ID:M8Q43SeU
一応自分の環境変数は以下になっていますが、いろんなサイドにも同じもの書いてありますが、、、 export JAVA_HOME=/opt/java export CATALINA_HOME=/opt/tomcat5 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/tools.jar: export CLASSPATH=.:$CATALINA_HOME/common/lib/servlet-api.jar: export CLASSPATH=.:$CATALINA_HOME/common/lib/jsp-api.jar: export CLASSPATH=.:$CATALINA_HOME/common/lib/mysql-connector-java-3.1.11-bin.jar:
596 :
nobody& ◆QWv3R1XL8M :2006/02/16(木) 17:58:23 ID:M8Q43SeU
javaもjdkインストールさているし、、、 java version "1.5.0_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05) Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
/opt/java にはJREじゃなくてJDKがインストールされているか?
598 :
nobody& ◆QWv3R1XL8M :2006/02/16(木) 18:08:22 ID:M8Q43SeU
JDKです。普通のjavaもちゃんとコンパイルできるから
Tomcatの起動時にはその環境変数は有効?
600 :
nobody :2006/02/16(木) 18:54:44 ID:M8Q43SeU
ルートに環境変数をいれたので、有効と思いますけど、なんか確認方法がありませんか? すみません、問題が複雑化してる。。。
関連する重要な環境変数は CATALINA_HOME/bin/shutdown.sh 又は startup.sh の実行時に出力されるから それで確認するといい。 それから、この問題には関係無いけど CLASSPATH の設定のやり方がおかしいぞ。 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar: export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib/servlet-api.jar: export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib/jsp-api.jar: export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib/mysql-connector-java-3.1.11-bin.jar: こうしないと最後の設定しか有効にならんぞ
すみません。JBoss4に非常に興味があるんですが、 日本語の解説でテルページとか書籍とかありますか? 書籍とかだと出版予定はいつ頃になるでしょうか。 #なきゃ自分でサイト起こせ?
よろしくお願いします RedHatLinux9を使ってApacheとTomcatの連携をしたいのですが コネクターのコンパイルがうまくいきません ぐぐっていろいろなやり方を試したのですがどうしても連携することができません 使用しているソフトは httpd-2.0.46 Tomcat4 コネクターは jakarta-tomcat-connectors-jk2-src-current javaはj2sdk-1_4_2_10-linux-i586 を使用しています。
「うまくいきません」 「連携することができません」 でわかったらネ申だな・・・
そもそも、現在非推奨になっているJK2をなぜ使うのかが激しく疑問
608 :
nobodyさん :2006/02/19(日) 21:52:30 ID:/BUf/kK5
すいません、うちの会社(IT系ベンチャー)は、 パソにソフトをインストールするのに 許可が必要なのですが、 (管理者権限がないので自由にインストールできない) JAVAのインストールを希望したところ、 個人の勉強になってしまうという理由で入れさせてくれません。 どうすればいいでしょうか?
それは、「おまいはもっと他に勉強することがあるだろ?」ってことではあるまいか?
JSPとPHPとどっちがWEBプログラミング開発しやすいでしょうか? 開発するWEBプログラミングはネットショップです。 よろしくお願いします。
>611 「開発しやすい」じゃ抽象しすぎて答えようがない。 どのアイドルで一番チンコ勃つ?って聞くのと同じ。 というか、そんな質問する人が手を出していいものじゃない>ネットショップ
616 :
nobodyさん :2006/02/21(火) 14:05:29 ID:x/bdHv1B
端末の情報をJSPを使ってブラウザに表示する方法があるという 話を聞いたのですが本当でしょうか? httpサーバが無ければブラウザに表示することはできないと 思うのですが、JSPを直接Javaで実行すれば良いという話なのですが、 とても信じられないのですが、真偽のほどをよろしくお願いいたします。
何が言いたいの
でんぱー
619 :
602 :2006/02/22(水) 20:00:04 ID:???
3はそれなりに解説出てますけど。 4はまだのようですねぇ。 ううむ。 とりあえずJBoss4.0.3SP1落としてきていじってみてます。 おもしろいね。
>>619 「開発者ノートシリーズJBoss」は4対応らしい
かなり前にちょっとだけJSPとか勉強していたのですが、 sqlと繋ぐためのデータソース(っていうんでしたっけ)を ブラウザから設定できるマネージャみたいなツールが Tomcatについていたような記憶がおぼろげながらあるんですが、 何処からどうやってアクセスするんでしたっけ? たしか、JSPなどからデータベースへアクセスするためには そのデータベース名とパスワードとかを Tomcatの設定ファイルに手書きで追加する方法もあったと思いますが、 その辺の事をブラウザで追加できるようなツールだったと思うのですが… Tomcatは5.5が入ってます。教えてください。お願いします。
普通にjdbcでパラメタ設定してつなぐところまではできたのか?
サーブレットでresponse.sendRedirectした後にreturn文を書くべきでしょうか?
>>621 配布元で提供しているドキュメントぐらい読んでから質問しろよな。
625 :
621 :2006/02/23(木) 10:07:24 ID:???
>>624 いえ見たのですが、その、テキストでの設定方法しか見当たらないもので
質問させて頂いてる次第です。ほかの解説サイトなどの覗いてみたのですが
どこもテキストでの設定方法を掲載している所しか見当たらなくて・・・
tomcat admin managerでググれば出てくる。 その程度のことなら手で設定したほうが早い。
627 :
621 :2006/02/23(木) 10:23:56 ID:???
>>626 ありました!まさに探していた物です。
ありがとうございました。
requestオブジェクトからservletContextを取得できないでしょうか。
ServletContext application = request.getSession().getServletContext();
jspから直前のservletのパスを取得することはできるのでしょうか?
>>631 weblogicのrequestオブジェクトみたら、dispatchしたかとかサーブレットのパスとかあったので値が取れそうだが
インターフェーズにメソッドがない・・・。
結局むりかぁ・・・
634 :
nobodyさん :2006/02/26(日) 08:43:51 ID:NPCAqJtB
JSPと関係ないんですが、Tomcatのスレがないのでここで質問させてください。 Tomcat5.0.28を使っていますが、CGIの出力が文字化けしてしまいます。 中身はこれだけです。 #!/usr/bin/perl print "Content-Type: text/html\n\n"; print "<html><body>"; print "CGIテスト"; print "</body></html>" ここで、"CGI"は出力されて、"テスト"の部分は??????になります。 解決方法が分かる方いましたら、教えてください。
なんかすごいのが来たな
>>634 >#!/usr/bin/perl
あの、このスレのタイトルは読めますか?
>>634 優しい俺が教えてやろう、Apacheの設定部分を変えればいいと思うよ^^
634はTomcatでCGIを実行しているということなんじゃないか。 ファイルの文字コードとLocaleが違うという可能性があるが、これだけではわかりませんね。
639 :
nobodyさん :2006/02/27(月) 22:14:42 ID:YDzLn1vQ
>>639 つっこみどころ満載だ
・J2SEにはそんな型はない
・J2EEにもそんな型はない
・そもそも、HttpRequestなんて型は聞いたことがない
642 :
640 :2006/02/27(月) 22:35:26 ID:???
>>641 >ググレば出てくるだろ。
うわ、ホントだ!
C#とかRubyにはHttpRequestってあるんだ!!!
もはやネタなのか本気なのか判断に苦しむ質問ばかりだ
644 :
639 :2006/02/27(月) 22:43:26 ID:YDzLn1vQ
発見しました。 サンキュウ。
639がなにを発見したのか、非常に気になる・・・
646 :
639 :2006/02/27(月) 22:59:12 ID:YDzLn1vQ
質問はおろかどうして解決したのかすら分からんが、解決してめでたい
648 :
nobodyさん :2006/02/28(火) 17:21:44 ID:qp0JmiBB
ここで質問すべきかどうか悩みましたが、Web系ということで。。。 JSP+Servletで作られているあるページがあります。 ここにJNLPへのリンクを追加してSwingのクライアントアプリをダウンロードさせます。 まぁJColorChooserなんですけど、Chooserで選択されたRGB値を元のJNLP のリンクの張られたページで取得することは可能ですかね? 選択されたRGB値をまたリクエストに乗っけて業務ロジックまで持って行きたいので・・・ (JavaScriptで持てたりとか、hiddenで持てたりとかそれはなんでも良いんで)
普通にJWSアプリから送信すればいいじゃん。 色が拾いたいだけならJWSじゃなくてJavaScriptで作ればいいし、Javaでやりたいならアプレットでいいんじゃないの?
650 :
nobodyさん :2006/03/03(金) 13:44:31 ID:EyNjjtcX
ファイルのダウンローダを作りたいのですが、 サーバ内でのファイル名は12345.datのような管理用のファイル名になっています。 これをユーザーがダウンロードする時はprogram.zipのように変更したいのですが、 何かよい方法はないでしょうか。
>>650 そのファイル名をヘッダにセットすればいいんじゃないの?
652 :
650 :2006/03/03(金) 13:54:12 ID:EyNjjtcX
詳しく教えてください! ヘッダって、contentType=〜とかって部分ですか?
>>652 そう。そのヘッダに、
Content-Dispositionを追加する。
Content-Disposition: attachment;
filename=hogehoge.jpg; modification-date="Fri, 3 Mar 2006 14:05:04 +0900"
とかね
>652 つーか、ファイル名をセットしてないのか?
655 :
650 :2006/03/03(金) 14:18:41 ID:EyNjjtcX
はい。していません。 主任が知らないことを勝手にやると怒られるので
>>655 それでよくまともにダウンロードできるな。
・・・イヤな予感がするのだが、
もしかしてファイルをストリームに書き込むのではなく、
ダウンロードしたいファイルに直リンしてるとか???
別にそれでもいい場合はそれでいいじゃん
前回アクセスパスのリファラーは、どんなタイミングでも、IEなら必ず取れるのでしょうか?
>>658 結論を先に言うと、必ず取れるわけではない。
ノートンなどがリファラ送信を妨害したりするので
パソコン初心者でもリファラを切ってる可能性は大いにある。
世界シェア 10% に登る Firefox を使う人なら尚更だし、
他にもオプション設定でリファラを切れる IE コンポーネントのタブブラウザは多い。
仮にリファラ送信があるとしても 内容を完全に信用してはいけない。
リファラ偽造なんてスパムの常套手段だしな。
ForwardActionでリダイレクトってできないですか?
661 :
nobodyさん :2006/03/06(月) 16:00:46 ID:ZdLLPcti
WebベースのシステムをJavaで開発することになったのですが、 分からないことがあるので教えてください。 【やりたいこと】 商品マスタを検索するシステムなのですが、パフォーマンス的な問題から 商品マスタの内容を初回呼び出し時に1回だけ全件読み込んで、メモリ上の 商品マスタから検索するようにし、2回目以降の呼び出しからはデータベースに アクセスせずにメモリ上の商品マスタから検索するようにしたい。 環境:RedHut Linux Java Struts Apache2.0 + Tomcat5 PostgreSQL ググっても全然見あたらないので、どなたかヒントでも教えてくださいまし。
ほんとにパフォーマンスの問題があるのか疑問。 主キーを設定してないだけとか、コネクションプーリングしてないだけとかじゃねぇの?
663 :
661 :2006/03/06(月) 19:12:02 ID:ZdLLPcti
本当にパフォーマンスの問題かどうかは検証してないのですが、 客がこの方式を必須としているので、どうしても外せません。 どなたか出来る方法をご存じないでしょうか。
データキャッシュは、、製品では見たことあるが。 まあはっきりいってやめたほうがいいと思うが。 読んだデータをハッシュで保持して使いまわすんじゃだめかね。
要件言ってないからよーわからんが・・・ ふつーにサーブレットコンテキストに入れれば終わりじゃねぇ? あるかないか見に行ってなければ検索、同期処理も入れれば完了。 当然、鯖再起動するまでDBとデータ取れないがそれでよければ。
商品マスタの内容を初回呼び出し時に1回だけ全件読み込んで、メモリ上の 商品マスタから検索するようにし、2回目以降の呼び出しからはデータベースに アクセスせずにメモリ上の商品マスタから検索するようにすればいいじゃん。 特別な「やり方」なんてものはない。 そういうふうに実装すればいいだけじゃないのか? シングルトンオブジェクトかstatic変数にデータを持たせるようにして、 そのデータが空っぽなら、DBを検索して取得。 空っぽじゃなかったらそのまま返す。 これじゃダメなの?
>666 や ら な い か ?
Hibernateの二次キャッシュ使う プロジェクトでHibernate使えればの話だけど
2003ServerでTomcatにPHP4を連携させると、NTサービスが落ちる・・・ 素直にIISかApacheを上に使うべきなのかな・・・
jspにフォワードすると、サーブレットアクセス時のリクエストパラメータはリセットされるのでしょうか?
されません。 リダイレクトしたら消えます。
>>670 request.getParameter("xxx")をしたら、jspでパラメータが取れませんでした。
ちなみに、フォワードのパスに、?value1=aaa のパラメータをつけて、
jspでrequest.getParameter("value1")したら、aaaが取れました。
そーゆーものでしょうか?
データ重複を意味するエクセプションクラスはあるでしょうか?
675 :
nobodyさん :2006/03/12(日) 11:16:52 ID:OgFgeAfm
class DataTyohukuException implements Exception
implementsするのっ?!!
677 :
nobodyさん :2006/03/12(日) 14:43:47 ID:QZ63Zl7Z
jstl.jar と standard.jar を WEB-INF に配置して
以下 JSP を起動すると
<%@page contentType="text/html; charset=Windows-31J"%>
<%@taglib prefix="c" uri="
http://java.com/jsp/jstl/core "%>
<html>
<body>
<c:out value="こんにちわ"/>
</body>
</html>
org.apache.jasper.JasperException: 絶対URI:
http://java.com/jsp/jstl/core はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません
というようなエラーが出ます。
原因わかりますでしょうか?
ちなみにローカル PC で試してます。
java.sun.comだろ。
680 :
677 :2006/03/12(日) 15:38:44 ID:QZ63Zl7Z
681 :
677 :2006/03/12(日) 16:38:02 ID:QZ63Zl7Z
以下 JSP を起動すると
<%@ page contentType="text/html; charset=EUC-JP "%>
<%@ taglib prefix="c" uri="
http://java.sun.com/jsp/jstl/core " %>
<%@ page language="java" pageEncoding="EUC-JP" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
request.setAttribute("list", list);
%>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<c:forEach var="item" items="${list}">
${item}
</c:forEach>
</body>
</html>
${item}
と表示されてしまいます。
原因わかりますでしょうか?
>>681 Web App 2.4 で作ってないとか。web.xmlは2.4で書いている?
683 :
677 :2006/03/12(日) 17:37:12 ID:QZ63Zl7Z
>>682 2.3でした。
2.4の書き方に変更したらうまく行きました。
どうもです。
Tomcatの5.5.15使ってるんだけど タグファイルの dynamic-attribute ってまだサポートされてないのかな? タグファイルの中で <%@ tag dynamic-attributes="attrs" %><% String name = (String)attrs.get("name"); ・・・ %> こんなコード書くとattrsが見つからないって怒られてしまう。
685 :
684 :2006/03/12(日) 20:35:46 ID:???
ごめん。勘違いでした。 タグファイル内でJSTL使ってるにも関わらずタグライブラリ宣言してなかった。 でもなんでそれで変数宣言のエラーがでるのやら・・ ともかく無事動作しました。Tomcatでもサポートされてます。 お騒がせしました。
686 :
nobodyさん :2006/03/13(月) 09:42:04 ID:AXRgIRUk
JSP でのリクエストデータ取得にて <% String userName = request.getParameter("userName"); out.println(userName); %> だとうまく行くんですが ${requestScope.userName} とすると何も表示されなくなってしまいます。 なぜかわかりますでしょうか? ちなみに <% request.setAttribute("test", "test"); %> ${requestScope.test} は test と表示されます。
getParameterの戻り値の型は?
>>687 根本的に使い方を間違ってるから。
${requestScope.userName} でリクエストパラメータ値を取れたらオカシイ。
689 :
nobodyさん :2006/03/13(月) 22:05:44 ID:+jbYbRxP
>>688 そうなんだ?
じゃあリクエストパラメータをスマートに表示するのは
どうすればいいんだ?
${param.userName}
691 :
nobodyさん :2006/03/13(月) 22:25:41 ID:+jbYbRxP
おおお!!!
助けてください! 今EJBのリモート呼び出しを使用しています。 環境は、呼び出し元がWEBで、先がDB処理用になっていて、 ネットワークは物理的に分かれており、その間にfirewallがあるため、 EJBのプロトコルしか利用できません。 その中で、WEBでCSVファイルをアップして、それをDBに登録しろといわれ、 CSVのサイズが2M以上有り、EJBでやる以上、2Mをメモリにロードしなければなりません。 今の環境上、2Mもロードすると、サービスができなくなります。 FTP、SCPなどは開通させてくれません。 何かよい手はないでしょうか?
オブジェクトを分割しろよ
EJB関連の質問です。 ハードコーディングを避けるため、各種設定をファイルに記述して、 その内容で挙動を変えたいと思っています。 しかし、単にjarの中にファイルを含めて、コード中で new File(ファイル名) などとしてもアクセスできません。 どのようにすればファイルにアクセスできるでしょうか?
>>694 java.util.ResourceBundleでも使えば?
体よく、Javaでの納品を避けられてるのかもな(w 2MBのファイルのやり取りにDBは使いたくない。 毎日更新されるんだろ? CSV生成のエクセル入力だかを、最初からウェブに切り替えさせるか、更新処理だけクライアント側で専用アプリケーションでDB更新させて最小限の更新に止めるべき。 ファイルの記述がおかしい場合の検証とか面倒だし、バッファオーバフローもおきやすくなるけどな。
> その間にfirewallがあるため、 > EJBのプロトコルしか利用できません。 > その中で、WEBでCSVファイルをアップして、それをDBに登録しろといわれ、 > CSVのサイズが2M以上有り、EJBでやる以上、2Mをメモリにロードしなければなりません。 なんか、〜なので〜しないといけないというのが全然理由になってない気がする。
>>697 EJB知ってるの!?
もっとよく考えてみよう
>>697 ファイアウォールがあるとRMI/IIOPしか使えないのか?まったく理解に苦しむ理由だな。
同じ内容のwarをデプロイ名を変えて(ちがうWARアプリケーションとして)デプロイした場合、 つまり、同じ内容のクラスが、2つの区別されたWEBアプリケーションとして起動された場合、 同じ内容のクラスが共に存在しますが、それらは1つのものとしてWEBコンテナに管理されるのでしょうか? つまり、A、B名でアプリケーションがある場合、Aのクラスを変えた場合、 Bはその修正されたクラスのコードで扱われることになるでしょうか。 クラスは共にパッケージ名も同じで、おのおののWEB-INF/classesに入っています。
同じjarに詰め込んで起動してると共有してるけどな。 起動が別でjavavmが別なら別。
>>703 いえ。weblogicを使用しているのですが、1つのweblogicで2つのWEBアプリケーションを動かすということです。
java vmは1つで動いていました。jarファイルは物理的に分かれています。
>>704 同一JVM上でも、別アプリならクラスローダが違うからOKだよ
>>705 ありがとうございます。
助かりました。
jspのエラーページに、サーブレットを指定することは可能でしょうか?
708 :
nobodyさん :2006/03/18(土) 14:28:13 ID:H2i35bVY
ソースの文字エンコーディングは何にしてる? ISO-8859-1が一般的? UTF-8?
Windows-31J
新規で作るなら、 全部UTF-8にしたほうがいろいろ幸せだよ
全部をUTF8にすると… IEだとUnicode用のフォントが割り当てられるから、お客さんからクレーム orz またPostしたデータがUTF8で取れないケースがある
>>708 日本語使えない文字エンコーディングが一般的なわけないだろ
714 :
nobodyさん :2006/03/19(日) 15:12:54 ID:R+Ibm8gi
一つのサーブレットに対して一つのインスタンスを作って リクエスト分スレッドを立てて処理してる、であってる?
>>714 スレッドプールという仕組みがあるので
リクエスト分のスレッドというのは正しくない。
もっと多くスレッドが用意されているかもしれないし、
足りなければ増やされるし。Servletコンテナの設定次第。
716 :
nobodyさん :2006/03/19(日) 18:29:16 ID:R+Ibm8gi
一つのサーブレットに対して複数のインスタンスが作られることはない? ないとすると 同じインスタンス変数を全てのスレッドが参照できる?
ソースに日本語埋め込むと保守性悪いよ。 まさかコメントに日本語使えないと困りますか?
>>718 後に誰が見るかわからないし、客が見るかも知れないから
日本語でコメント書けた方がいいな。
トラブル起こすくらいなら避けるだろ。 本末転倒。
英語のコメントが読めない/書けないトラブルが発生します。
読めないのは他の人に頼めるが、書けないのは致命的だな。 brokenでもいいんだけど、書けない=>書かないは絶望的
723 :
nobodyさん :2006/03/21(火) 09:18:03 ID:wSge3oRZ
jspやhtmlからサーブレットにベクトル画像を渡して、 サーバ側でベクトル画像をビットマップ画像に変換するような事を 考えています。phpやperlではGDというグラフィックライブラリを使う みたいなのですが、javaではそういったライブラリは無いのでしょうか??
>>723 ベクトル画像というのがSVGならApache Batikというのがありますが。
725 :
nobodyさん :2006/03/21(火) 10:02:21 ID:wSge3oRZ
>>724 ベクトル画像はvmlで描いたものです。
vmlではだめでしょうか??
あんまり鯖側でやりたくない処理だな。 利用者が多くなるとスケールしなくなるよ。
>>708 UTF-8。
それがJava標準。
XMLもUTF-8が標準、
最近のLinuxもUTF-8が標準、
あのM$ですらドトネトでShift_JIS(Windows-31J)ではなく
Unicodeを推奨している。
そして最近のデータベースサーバもUTF-8が標準になった。
よってUTF-8で統一。
さもないとエンコーディングの手間が省けない。
>>718 日本語入りStringはすべてResourceBundleまたはJakarta Commons Configuration
または Spring Framework で外部ファイルに記述する。
コメントは
コンパイルオプションに-encodingを追加して
native2ascii.sh(.exe)またはApache Antの<native2ascii>タスクで
ASCIIコードに変換してからコンパイルなりJavadoc生成なりすれば
万事解決。
でもメールはISO-2022-JPだからね。 UTF-8で処理するとどうしても化ける。
730 :
nobodyさん :2006/03/23(木) 22:51:59 ID:mJKQp3xR
レベルの低いことをおたずねしてすみません。 今、jspのjavascript中に定義した変数を submitによりサーバ側に渡して、処理を行うことを考えている のですが、うまくサーブレットに渡りません。 教えていただけましたら大変助かります。 以下がそのプログラムです。 プログラム中のdocument.getElementById("l_x").value = buf_x; およびdocument.getElementById("l_y").value = buf_y;をサ ーブレット側のrequest.getParameter()等で読み込めないので しょうか?? <form name="fm" method="POST" action="../../Servlet"> <input type="submit" value="保存" OnClick="return save();"/><br> </form> <script> function save(){ var buf_x=""; var buf_y=""; buf_x += LogX[i] + "|" buf_y += LogY[i] + "|" document.getElementById("l_x").value = buf_x; document.getElementById("l_y").value = buf_y; document.fm.submit(); } </script>
これはまた色々とツッコミどころ満載ですね とりあえずスレ違いな
733 :
nobodyさん :2006/03/24(金) 15:57:15 ID:xohjbFYV
>>732 730です。ご返答ありがとうございます。上のプログラムは多少間違っていました。
MIMEタイプの指定ですが、具体的にどのようにすればよいのでしょうか??
先ほど、一度試しましたが、どうしてもサーバ側でrequest.getParaを行うと
nullが出てしまいます。
JSP初心者なもので、大変困っております。
プログラムの詳細を言っていただけると大変助かります。
どうか、おたすけ下さい。
MIMEで設定しても、メーラにその機能がなければ見れないし。残念。 utf-8対応メーラって少ないよ。RFCにないし。
日本語メールはJISで送る。それがRFCだし、ほとんどのメーラの仕様。
apacheとTomcatを連携させたのはいいのですが、その環境に .htaccessを有効にすることはできないのでしょうか?
>>737 できる。
もし、本題が.httaccessを有効にすることではなく
基本認証を有効にすることであるなら、Servletコンテナの認証機能を使えばよい。
>>737 つserver.xml, context.xml
HTMLメールはゴミ。 メール鯖で捨てられる所も多いよ。
MUAでも捨てられるな。うちがそう
743 :
nobodyさん :2006/04/09(日) 16:53:39 ID:w+aWNdK3
携帯でショッピングサイトを製作していて困ったことになっているので質問させてください。 ショッピングカートはセッションで保持しています。 携帯ではクッキーが使えない?のでjsessionidをURLに付加してリクエストを送信しています。 ここまでは問題ないのですが、 カート情報を保持した状態でHTMLの静的ページからカートに商品を入れるようなことをしたいのです。 どういうことかというと、 商品を検索、一覧から選択→カートにいれる→買い物を続ける の流れの中で "今週のおすすめ品"みたいなページ(客がつくるらしい)がHTMLでつくってあって それを選ぶと先ほどまでと同じようにカートに追加されるようにしたいのです。 HTMLからsessionidは渡せないのでどうしたものかと・・・。 よい解決法がありましたらご教授ねがえないでしょうか?
俺なら HTML を include して JSP で表示を行う。 これなら jsessionid は死なないで済む。 ブラウザの URL に拘る必要がある場合は交渉して不要にしてもらう
URLにjsessionidがついてる時点であれだから、URLの問題はokな気がする
746 :
743 :2006/04/10(月) 14:22:44 ID:a6jXcl8b
url-patternで*.htmlだったらインクルード用のjspを呼び出すようにしてみました。
<jsp:include page="<%=request.getServletPath()%>"/>
するとincludeしたときにもurl-patternにマッチするらしく
1 〜〜.htmlを呼び出す
2 インクルードjspへ遷移する
3 インクルードで*.htmlにマッチ、1に戻る
で無限ループになってしまいました。(100週くらいすると勝手にエラーで落ちる)
ほかの方法として
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13526&forum=12&4 のようにhtmlに対してフィルターをかけることができないか模索中です。
レベルの低い質問で申し訳ありませんが引き続きおねがいいたします。
Tomcat5.5について質問なのですが、 JSP+Beanで動かす場合のclassファイルの置き場所はどこでしょうか。 4系とは違うのですか?
>>747 Tomcat5.5についての質問ではないし、マルチだし。
消えろ
とぉーんまキャット
751 :
nobodyさん :2006/04/29(土) 18:32:04 ID:kQOF8iLN
サーブレットのプログラム内でファイルを出力すると 環境によってファイルの位置が微妙に変わってしまいます。 例えばeclipseからコンテナを起動してファイルを出力するとeclipseのホームディレクトリに出力されます。 これをどのような場合でも コンテキストルート/WEB-INF/file に出力したいのです。 そのためにコンテキストルートまでの絶対パスを取得したいのですが方法がわかりません。 わかる方教えてもらえませんでしょうか。
getRealPathかなんか。
TomcatとEclipseでOKならいいけど、 「どのような場合でも」となるとコンテナによっては アプリケーションのディレクトリには出力できないこともあるよ。 そういうときはデータ用としてどこか外部のディレクトリを使った方が ポータビリティが高い。
サーブレットからなら getServletContext().getRealPath(""); でいいんでない?
getServletContext().getRealPath("/"); じゃないの?
getRealPathってサーバ上のディレクトリか。 もう一つURLを表すパスを返すメソッドもあったよな
JSP2.0に対応していないとELは使えませんが、JSTLは使用できるのでしょうか
> JSP2.0に対応していないとELは使えませんが、 JSP1.2でも使えます。ただし、JSPボディ部に直接書けるのは2.0からです。 > JSTLは使用できるのでしょうか 使えます。
>>758 ありがとうございます。
現在weblogicを使用していますが、weblogicのjarファイルにjavax.servlet.jsp.elパッケージがありません。
この場合このバージョンのweblogicでは、elは使用できないのでしょうか。
>>759 JSP仕様に含まれるのは2.0から。
JSP1.2まではデフォルトで追加ライブラリ無しで使えるわけではない。
761 :
nobodyさん :2006/05/03(水) 01:48:24 ID:kMBht7v/
くだらない質問なんですけど、 Googleの検索エンジンの実装ってServlet使ってたりするんでしょうか
>>761 聞いたタイミングがGWってこともあるのかもしれんが、まだ誰もレスしないってことは
中の人に聞くしかないってことかと。
なぜなら、Servletはエンジンを実装する技術じゃないからです。
さすがに検索だけならPerlやCでやったほうがいいだろう。 株価や銀行預金、ネットワークストレージといった、 データをサーバに頻繁に間違いなく確実に保存するサービスを 行使するならServletのほうがうってつけだが。
「やったほうがいい」とまでは思えない。 すごく単純な検索ならやってもまあいいか、ぐらいには思うこともないこともない。
>>759 ありがとうございます。
設定の参考になるサイトとかはあるでしょうか。
>>760 すいません。いまいちやり方がわからないのですが、
commons-elのjarをクラスパスに通すだけで使用できるのでしょうか。
web.xmlにも設定が必要なのかなと思い調べてみましたが、
jsp2.0のものばっかりだったので・・・
768です。 758が言っていた、「JSPボディ部」とは、HTMLをべたで書いている場所ということですね。 勘違いしてました。 jsp1.2では、タグリブのアトリビュート内にしかかけないんですよね。
<a href="ウェブアプリ自身のパス/hoge.jsp"> と出力したいんだけど、ウェブアプリのパスってどうやって得るのが良いでしょう?
>>770 HttpServletRequest#getContextPath()。ServletAPIをもっと読もうよ
772 :
770 :2006/05/14(日) 21:44:46 ID:???
<%=request.getContextPath()%>/hoge.jsp とか、いちいち書かないといけないわけがないと思ってたんだが・・・ 標準のtaglibsでなんかないのかね。
Strutsならhtml:linkタグを使うし どちらかというと、Webフレームワークに頼る部分なのかも
質問です。 レスポンスのHTMLをゆっくり出したいのですが、できますか?
${request.contextPath}/hoge.jsp
>>774 JSPでは無理。JavaScriptでdocument.writeでhtml1行筒出力
数行ごとにウェイトいれるとか?
ゆっくり出したいなんて要件、初めて見た。 簡易アニメとかパラパラマンガなのかな?
そこでAjaxですよ。
EJBやサーバーサイドJava技術を学習するのにお勧めの書籍ってどんなものがありますか?
ない。仮に現時点での良書があっても、Java EE 5で上書きされちゃう。 ネットの情報探したほうがいいよ。SunのSDCとかIBMのdeveloperworkとか@ITとかさ。
>>777 JSPで無理なら、サーブレットでやればいいじゃない
マジレスすれば、フィルター作って出力中にウェイト入れてやればいい。
784 :
nobodyさん :2006/05/21(日) 01:39:53 ID:yJz5Uytv
初めまして。Java初心者です。 ここで質問すべき内容では無いのかももしれませんが・・。 HTTPヘッダ(リクエストヘッダ)に値をセットするには どうしたら良いのでしょうか? JavaのServlet側では、req.getHeader("hoge")で値が取り出せるのは 分かりました。 が、送信側でどうやったら良いのか解りません。 他のHTTPヘッダ(user-Agentとか)と同じ感じでデータを取り出したいのですが・・。 METAタグを使用したらHTTPヘッダに値がセットできるというような事を見つけて、 <META name="hoge" content="abcde"> <META http-equiv="hoge" content="abcde"> とか試して見ましたが、もしかして全然見当違いな事をしてるんでしょうか・・? 試してみたのは以下のような環境です。 1.test.htmlに上記METAタグを記述してPOST 2.POST先にはローカルのTOMCAT上で動いているServletを指定 3.servletでreq.getHeader("hoge");としてみたが、値取り出せず(NULL) どなたかご存知な方、ご教授いただけないでしょうか? 宜しく御願いします。
response.setHeader
ありがとうございます。 それはつまり、「次にリクエストを投げようとする画面」を出力する際の レスポンスに、予めsetHeader()で値をセットしておけという事でしょうか?
787 :
" :2006/05/21(日) 02:37:14 ID:???
>>786 状況的には、自分がブラウザでアクセスしてるんでしょ?
そのブラウザが値を送ってないなら、サーバ(Servlet)側で値が取れるわけないよね。
LiveHttpHeadersとかIEHttpHeadersとかで、やり取りを観察してみたらいいと思う。
あとhtmlのmetaタグは関係ない。
>>786 次のリクエスト時に値abcdeをリクエストヘッダhogeで送ってくれ、と
ブラウザに指示を出すにはどうしたら良いか?
ということかな。
で、それによって何をしたいんだ?
何をしたいのかによってはCookieが使えそうだが。
Javaのプログラムからリクエストを発行するなら URLConnection#setRequestProperty
皆さんありがとうござます。 やりたい事というのは、認証のみのポータル画面(新規作成)があり、 既存のアプリへシングルサインオンを行いたいんです。 このポータルと各アプリへの情報引渡しにHTTPヘッダを使おうと思っていました。 なので、処理の順番を書くと、 1.ポータルでログイン 2.サーバ側で認証を行い、メニューを表示 3.メニューのリンククリックで、各アプリの処理へ遷移し、 遷移先のサーブレットでユーザ情報を受け取り、 今までのログイン処理を行わずに各アプリのメニューを出す といった感じです。 で、まだポータルの方の処理が出来上がっておらず、とりあえず既存のアプリに 対してベタ書きのHTMLからリンクしてみて、HTTPヘッダに情報を渡せるかどうかを 試していたところです。
なぁ、Javaのエンジニアってさぁ 「方法」が目的になってるよね。 いちど目を覚ましたほうがいいよ。 自分たちでどんどん面倒なことを増やしているだけの馬鹿です。 会社(顧客)から金をもらって、パズルを解くのが趣味の連中ですよ、お前らは。
792 :
" :2006/05/21(日) 06:08:52 ID:???
Javaのエンジニアと誰を比較してそう言ってるの?
そういう傾向があるのは認めるがスレ違いなのでよそでやってくれ
>>791 なぜJavaエンジニアに限定されていると思うのか
>>794 方法が目的になっている(ことが多い)ってことじゃないのかと。
素直に目的を達成しようと思えば、 当然のように出来てるからってのもあるな。
799 :
nobodyさん :2006/05/22(月) 03:28:39 ID:Oh8EsbuK
>>791 同感。
Javaでプログラミングすると、本来ちからを入れるべきのアルゴリズムの方に頭を使う余裕がなくなるんだよね。
昔のVBの時代は、アルゴリズムに集中できてよかったよ。
Javaでは新しい開発手法がどんどん出てくるから 修得して効率が上がってくるころに陳腐化してしまう というのはあると思う。
JSF+EJB3でやっと落ち着いたけどね。
EJBは糞。絶対流行らん .netの方が10000倍マシ
>>803 まあ、2.1までのEJBは糞だと思うけど
EJB3のどのあたりが糞?
JSFで落ち着くかなぁ。 あれで皆満足するとは思えないよ。
JSFもEJB3も、もうちょっと現場で鍛えられる必要がありそう Servlet/JSPの初期バージョンの頃みたいに、標準仕様に加えて実装が提供する拡張機能を使うことになるのでは? ただし、EJB2まではそもそも現場の実情とかけ離れたものだったから ようやくJ2EE(JavaEE)が、使える統合環境になるきっかけにはなりそうな気がする
単にVBだと制限多くてあるもの使うしか無いからアルゴリズムに専念するしか無いのと、 Javaではまともなフレームワーク使ってないから、面倒な所まで実装する手間が多くてアルゴリズムまでたどり着けずに疲れちゃうってだけでは? まあVBが簡単にできるってのはそう言う製品だし当たり前。 VBだと制限多くて使いにくいと思わないほうが、スキルの低さを露呈している。 Cもまともなフレームワークが無いという点ではVBと同じだ。 JavaのEJBは結構いいとおもうけど。JSPはあんまりメリット無い。JSP使うくらいならPHPで十分だ。
> JSPはあんまりメリット無い。JSP使うくらいならPHPで十分だ。 はぁ?
さくっと作りたいならPHPでいいんじゃないか。 ただ堅いシステム作るなら、やっぱJavaだ。Javaのが軽いしね。
さくっと作りたいなら、PHPなんか使わずJavaだろ。 Studio Creatorあたりで。
動作環境までさくっとやりたいならPHP。
Tomcatインストールがそんなに難しいか? Javaでそこらへんのツール使えばほぼコーディングなしでできるようなシステムを、PHPなら面倒なコーディングしないといけない。 その時間にJDK+Tomcatのインストールは終わるだろ。
さすが末端プログラマは自分が動作させることしか考えてないな。 運用コストがどれだけ違うと思ってるんだ。 今までショボイHPしか持っていなかった顧客が運用するのに Javaの敷居がどれだけ高いと思ってるんだ。
まああれだ。
>>812 は手段が目的になっているいい例だ。
批判という手段が目的になってるからさ。
はじめにSJISで取得して、状況に応じてUTF-8にしたいのですができません。 setCharacterEncodingは一度しか指定できないものなのでしょうか?
javadoc位読んでくださーい 答えが書いてありますから
書いてないですが??
>>815 その発想が末端プログラマ。
技術の選定に運用コスト度外視などあり得ない。
>820 >動作環境までさくっとやりたいならPHP。 に対してのレスでなに語りだしてんだ。狂犬かおまえはw そもそも仕事で使う話だったか?運用コストの評価基準もケース次第だろう?
質問する場所を間違えました。すいませんでした。
どっちかつーと質問の方法がなって無いと思うがな まあイッてらっしゃい
>>822 仕事の話じゃないの?
素人の趣味の話なら好きなの使えばいいじゃん。
・・・
趣味でサーバサイドJavaも酔狂だと思うけどね。
自分のPC上で動かすだけならWebアプリという時点でばかげているし、
ネット上に公開するならそれこそ、運用コストがバカにならん。
Servletコンテナは事実上、自宅鯖しか選択肢が無い。
趣味でイントラでWebアプリとか言うなよw
視野の狭い人だなぁ
PHPが使われてるシステムってJavaより多いでしょ
829 :
nobodyさん :2006/05/25(木) 03:16:01 ID:QeGeWT1o
>>809 PHPより、Javaでプログラム書く方が動作が重くならないか?
変数1つ参照するのにset/getメソッドをワザワザ使ってアクセスしたり、
多段階の継承をしたら、どう考えたって処理が増えて重くなると思うが。
>>829 どう考えても処理が増えて重くなる多段階の継承しか考えられないという、己の限界の吐露ですか?
getter/setterくらいで遅くなると気にするのなら Cとかアセンブラ使った方がいいと思うが
継承やメソッド呼び出しのオーバーヘッドと スクリプト言語であるPHPの実行速度を比べる方がどうかしている。
お前らオブジェクトのメモリ上の使用バイト数を見ないでそんな事いってるんだろう。 PHPやCが文字列を生成するときのバイト数は ほぼそのまま文字のバイト数を使用する。 一方、オブジェクト指向であるJavaは、 メソッドや変数をてんこ盛り含んだStringオブジェクトを生成している。 つまらない仕事をするために呼び出すオブジェクトが 他の言語に比べてメモリ馬鹿食いだし、newのコストも大きいのは明らか。 結局そういう言語仕様に原因のあるコストを、 ユーザープログラムの方で考慮しなくてはならなくなる。 便利なんだか不便なんだか。
で?スクリプト言語であるPHPの実行の方が速いと言いたいの? ネット証券のオンライントレードシステムのような、 大量のトランザクションの同時処理・高レスポンスが要求されるシステムをPHPで作ってみてから言えや。
PHPの方が速いよ
>>833 PHPの言語やらライブラリの前ぶれのない仕様変更にふりまわされるコストの方が高い。
>>835 それにしちゃ、応答性能や多量のトランザクションの並列処理が要求されるシステムで使われないよね。
証券やチケットの販売サイト等は大抵、Javaか.NETだ。
PHPのバージョン間の互換性のなさはJava以上に苦労させられるよな・・・
>>833 ではJavaのStringオブジェクトの
メモリ上の使用バイト数はどれくらいなのでしょうか。
具体的に何バイトか教えて頂けないでしょうか。
もちろん「n文字の場合はmバイト」という形になるかと思います。
また後学のためにも、Javaのオブジェクトのメモリ使用量を
調べるor計測する方法もポインタだけで良いので教えて頂けると助かります。
ちなみに私は、オブジェクトの占有メモリにメソッドは関係ない
と認識していたのですが、こちらも参考になる資料などありましたら
教えて頂けないでしょうか。
なんだか教えてクンで申し訳ないのですが、よろしくお願いします。
840 :
nobodyさん :2006/05/26(金) 04:57:09 ID:9JidkkLu
Tomcat5とActivePerlの連携をWindows2000で試しています。 web.xmlの設定を行って、WEB-INF/cgi配下に設置したcgiを動かす事には成功したのですが、 同じディレクトリに配置した非cgi(txt,html,画像ファイル)にアクセスできません。 ログを見るとrunCGI (stderr)が非cgiに対して出ていて、そりゃCGIとして解釈しちゃダメだろ、とは 思うのですが、この問題を打開して同一ディレクトリからCGI・非CGIを込みでアクセスさせる設定とか ありますか? server.xmlでcontextを同じところに割り振ってみたのですが、そうすると当然こちら優先で 肝心のPerlが解釈されなくなる状態。うーん。
WEB-INF配下は普通見れないようにするんじゃないか?
WEB-INF下って見れるようにできたっけ・・・
見れないよ。 それ以前にCGIはApacheでやった方がいいよ。
WEB-INF配下はクライアントから直接アクセスできない
>>840 静的ドキュメントはWEB-INFの下に置く必要がない。
WEB-INFと同じ階層に置くか、Apacheと連携してるなら
ApacheのDocumentRootに置くべし。
てか、そもそもcgiをWEB-INFの下に置くのもおかしいな。 やっぱApacheとTomcat連携させてApache側でCGI処理させるべし。
>>841 -
>>846 レスありがとうございます。
確かにWEB-INF配下は通常サーブレット等の置き場所なので、アクセスできないのはTomcatから見れば
当然でした。web.xmlではCGI関連がこの設定でデフォルトコメントアウトされている・・・
その後いじってみて、 param-valueにWEB-INF/..とかなり想定外の書き方をすればルートから見て
CGIを動作させることは可能。ここでurl-patternの中に*.cgiで拡張子指定ができれば、振り分けが
できそうなのですが。現状認識に失敗しています。
もちろんワイルドカード一個で指定すればPerlスクリプトは動作するのですが、これはあらゆるファイルが
マップされて肝心のJSPが動作しなくなる。
実用外ということで、IISかApacheでの構築になりますね・・・ちょっとCGI連携には期待してたんですけど。
連投失礼します。 さっきのurl-patternの中に*.cgi設定ですが、書き方をミスってて正確に書き直したところ、 打開に成功しました。現在ルート上からCGIとJSPが同時にアクセスできる状態です。 サブディレクトリからもCGI呼び出しを行うことが出来ました。 あとは*.plや*.pmに同時にマッピングできるかどうか。 とりあえず実験終了ということで。回答してくださった方、ありがとうございました。
いや、呼べたとしてもApacheでやった方がいいよ。マジで。
やったほうがいいとかそういう議論の前に、持ち込む意味はあるのかと問いたい。
ま、実験なんだから好きにしろとしか。 もちろん俺はやらないが。
大量のトランザクションの同時処理・高レスポンスが要求されるシステムをPHPはおろかperlでがんばってる所も有るね。 ヒント:ミクシ
853 :
840 :2006/05/26(金) 22:46:14 ID:???
>>851 単にMTとかがTomcatだけで動いたら面白いじゃん、ってことですよw
なんらかの不具合が確認できたら、それはそれで今後のNGを説明する根拠になりますし。
後はバージョンアップのバグフィックス報告を楽しむネタだけでも。
>>852 Mixiと、証券やチケット販売サイトの大量のトランザクションの同時処理なんて
比較にならんと思うが?
>>852 ヒント:PHPよりはPerlの方が優れている
一番裁けるのは.net
むしろ分散もStarfire導入も可能なjavaのほうが捌ける。 トム猫に依存するとアパッチ3に成った時に困ることに成ると思うなあ。 まあPHPのほうがマイナーアップデートレベルでも困ることのほうが多くて、MTとか大変だけどな。
>852 一応動いている程度のサービスレベルのやつを例として上げるのはどうかとw
ミクシって日本最大のSNSじゃなかったっけ? SNSなんてちっぽけと言われればそれまでだが。実際ミクしやってる会社もベンチャで零細だしな。
mixiみたいに数100万人も会員がいるSNSは、一応動いてるだけでも技術力いるぞ。
> トム猫に依存するとアパッチ3に成った時に困ることに成ると思うなあ。 apache3 なんて出るの?
おまえら スレタイ見ろ
Java帝国の存亡の危機なんだよ。 ただいまperl廚が侵略中。
mixiはJavaではまともに動かないと主輪wれ
それもない。 mixiのボトルネックはデータベースだから。
866 :
nobodyさん :2006/05/28(日) 21:16:47 ID:oiWgbc2/
すみません。久々にJavaをやってみようと思ってJSPの本を1冊買ってきて、そのまま環境設定しました。
JDK1.5.0_04 Tomcat5.5.9 OS:Windows2000
本に書いてあるとおり設定したんですが、JDKをインストールしてパスを設定、TOMCATをインストールしてjsp-apiとservlet-apiにクラスパスを設定。
以上のあと、samples1というフォルダをwebapps内につくりそこにSample.jspをつくるとうまく表示されました。
その後、samples1フォルダ内にWEB-INFフォルダをつくり、さらにその中にclassesフォルダをつくりサーブレットを作りました。
コンパイルするとSample.classができました。しかし、web.xmlを作るとSample.jspも表示されませんし、Sampleサーブレットもだめです。
web.xmlを削除するとSample.jspは表示されますが、
http://localhost:8080/samples1/servlet/Sampleとしてもサーブレットは表示されません 。
どうしたらいいでしょう?次に、web.xmlを貼ります。
867 :
nobodyさん :2006/05/28(日) 21:17:59 ID:oiWgbc2/
ミクシのデータベースってマイエスクーエルだっけか。オラクル買えない貧乏企業だからなあ。 ラコテンはオラクル使ってるのに。
>>868 楽天でもかなりの部分がPHP/MySQLになってる。
現在の開発体制だとJava/Oracle(またはImfomix)とPHP/MySQLが半々ぐらい。
871 :
866 :2006/05/28(日) 23:27:30 ID:???
872 :
866 :2006/05/28(日) 23:28:05 ID:???
import javax.servlet.http.*; import javax.servlet.*; import java.io.IOException; import java.io.PrintWriter; public class Sample extends HttpServlet { public void doGet( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { res.setContentType( "text/html; charset=Shift_JIS" ); PrintWriter out = res.getWriter(); out.println( "<html>" ); out.println( "<head>" ); out.println( "<title>Sample</title>" ); out.println( "</head>" ); out.println( "<body>" ); out.println( "HelloWorld!" ); out.println( "</body>" ); out.println( "</html>" ); } } よろしくお願いします。
>>871 >>Servletはデフォルトパッケージで作るな
>の意味がちょっと良くわからないのですが・・
Servlet以前に、入門書で基本文法から勉強し直し。
>>868 開始時はこんなにユーザー増えるとは思わなかったんだろう。
それに最初は赤字企業だったしね。
あとオラクルは設定やらメンテやらにそれなりの人間が必要。
875 :
866 :2006/05/28(日) 23:54:27 ID:???
デフォルトパッケージの意味はわかったけど、本にはパッケージ内に作れなんてかいてないよ。 サーブレットってそんなにめんどくさかったっけ??昔やってたころには ほいほい開発できた印象があるんだが・・
876 :
866 :2006/05/28(日) 23:55:28 ID:???
ああ、肝心な結果を書くのを忘れてしまった。 結局パッケージに入れてもだめでした。
>>875 デフォルトパッケージで型を作成するなんてどう考えても非常識だからな。
「だめでした」ってどうダメなんだよ?
web.xmlはちゃんと修正したか?
878 :
866 :2006/05/29(月) 00:17:46 ID:???
>>877 web.xmlもちゃんと修正しましたよ。package hogehoge;で宣言したとすると
web.xmlは<servlet-class>hogehoge/Sample3</servlet-class>
としました。
エラーは相変わらずの「HTTPステータス 404 - /chapter03-3/Sample3 〜〜 The requested resource (/chapter03-3/Sample3) is not available.」
がでます。クラスファイルを変えましたが、アドレスバーには、ちゃんと
http://localhost:8080/chapter03-3/Sample3としています 。
>web.xmlは<servlet-class>hogehoge/Sample3</servlet-class> いったい何を根拠にそういう設定をしたのか? <servlet-class>hogehoge.Sample3</servlet-class> だろうが。 完全限定クラス名って知ってるか?
880 :
866 :2006/05/29(月) 00:28:07 ID:???
まちがえました。 <servlet-class>hogehoge.Sample3</servlet-class>です。 今日は、寝ますので、ありがとうございました。
web.xmlを修正してもアプリをリロード・再デプロイ・Tomcat再起動してなかったりしてw
882 :
866 :2006/05/29(月) 00:33:44 ID:???
883 :
866 :2006/05/29(月) 00:36:31 ID:???
おお、貴方すごいですね!!
>>881 まったくその通りですよ!最初からそういってくれればいいものを。
884 :
866 :2006/05/29(月) 00:37:06 ID:???
皆々様ありがとうございました。いっぱいのんでてきもちいいです。 ねまう。
885 :
866 :2006/05/29(月) 00:43:14 ID:???
なんだよ・・パッケージ入れなくてもできんじゃん。tomcatのリロードすりゃー。 でもJavaBeansは絶対に入れなくちゃいけないみたいだね。 しかし、本には、TOMCATのリロードなんてかいてないぞ。昔は、invokerにしてたから web.xmlなんてかかんくて、そのままアドレスバーにうってたんだった。 おやふみ。
たしかに一昔前のServlet/JSPの本は、invokerのサンプルだらけだったし デフォルトパッケージでクラス作ってる例も沢山あったな
888 :
nobodyさん :2006/06/06(火) 23:48:05 ID:I3C9/ZVj
どなたか経験ある方いらしたら教えてください。 localhsotでWebアプリをたて、ファイルアップロードを行う画面において エンコードタイプ Multipart-dataを指定した、ファイルを送信しようとした際に ファイルデータがlocalhost上のServletまでとどかないのです。IE5.5でWEbアプリは WASD(5.1)です。ちなみに、他の端末から、そのlocalhost上へのファイルアップロードは かならずポストリクエストをとばすのですが、自身(localhost上でブラウザからキックした 場合)に、ランダムにポストが飛んだり、飛ばなかったりするのです。全くもって理解不能な動きをします。 ファイヤーフォール等の線は試したのですが、だめでした。情報不足とは思いますが、どなたか 参考意見ありましたらお願いします。
ここまで自己流表現・情報不足・誤字脱字(と思われる)が多い人のやることだったら そりゃあ、うまくいかないでしょ、と思うよ・・・・
892 :
nobodyさん :2006/06/09(金) 17:09:04 ID:I2GOtwYs
いやーRedHatのJBoss買収完了しましたね これからはJBossでEJB3の時代ですな
どうかなあ? jspなところがいまいち。
(゚Д゚)ハァ?
jsp以外の実装無いし。java=jsp
乱立しすぎて困ってるのが現状ですが何か?
>>895 意味がわからん。
JSPがいやならVelocityでもFaceletでもMayaaでも使えばよかろう。
どれもxmlで違いは無いね。 非xmlのってないの? xml生成面倒だ。
VelocityがXMLか? 批判するならちっとは勉強しろや
.vmはHTMLだからむしろjspと大差ない。
こいつ、なにいってんの?
Velocityは汎用的なテンプレートエンジンだから、HTMLに限らずメールであろうが CSVであろうが、なんでも出力できる。 と、みんなは言いたいわけだね。
それに、「HTMLだから」というのが、なにを言いたいのかわからない。
そんなに今のViewが嫌なら、クライアント側は全てAjaxで作れ ついでにC/S構成にしてしまえ
ajaxは所詮ジャバスクリプトだ。
jspもxmlもhtmlもイヤだとして、何だったら満足いくんだろう。
txtとか
cvs
909 :
nobodyさん :2006/06/15(木) 16:16:02 ID:gjW+T8+0
HttpServletRequestからgetParameterで HIDDENの値が取れないのですが、 getParameterでnullになることって 送信側(JSP)の方にそのHIDDENがない場合以外 あるのでしょうか? JSP側 <INPUT type="hidden" name="key" > サーブレット側 String val=request.getParameter("key"); if (null == val){ // エラー処理 }
>>909 とりあえず、hiddenフィールドにvalueがないが…
サーブレット側ではhidden/text/passwordは区別ないかと。
911 :
marcf :2006/06/16(金) 21:35:25 ID:???
これからは JBoss + JBoss Seams + EJB3 + AJAX 最強。 日本ではクラスタリングとか EJB のトランザクション・セキュリティ機能とか 考えなされすぎ。 JBoss は EJB3 の Bill Burke 、Hibernate の Gavin King もいるし。 JBoss しかないよ。 だいたい Tomcat のコードの6割は JBoss 社員が書いてるわけだし。 EJB3 のスペックリードにも JBoss 絡んでるし。 Seams は Gavin King ってのもいいね。
EJB3って、Hibernateと同程度にしか使えないよね。
そんな複雑な構成のメンテなんて氏んでも嫌だな。 アパチとジャバのバージョン上がっただけで激しく困ったことに成らないか?
Apacheのバージョンあがっても特に問題はなかろう。 JBoss+JBoss Seams +EJB3なんて、JBossサーバー一個入れるだけだし、どこが複雑な構成? Tomcat+ApacheとJBoss+Apache、サーバー構成に特別な違いがあるとは思えないけど。
JSPで外部ファイル呼び出しの際、戻り値を返すにはどうすればいい?
JBoss SeamやEJBの構成のメンテってjarファイル置き換えるだけでいいじゃん。 複雑な構成ではないと思われ。 現在のJBossの最新4.0.4.GAにはSeamとEJB3は含まれていないので別途ダウンロードする必要ある。 だけど、JBossONを使えば、Microsoft Updateのような感じでのパッチ当てたり、バージョン管理できる。 なお、この機能は現在使用不可で7月から使用可能になる。 またJBossONは有償のGoldレベル以上のサブスクリプションで使用可能。 JBossONはRedHatユーザには今後RHNに統合される予定。 TomcatのJBossでの位置づけはJMXサービスとなっていて、現在のバージョンでは 5.5がdefault以上の設定に含まれている。Tomcatのバージョンの変更はサービス 置き換えで可能。 たしかに、Tomcat+ApacheとJBoss+Apacheの連携の方法は一緒。 mod_jkやmod_proxy+mod_proxy_ajpの設定でいい。 これらのモジュールの開発もTomcat同様JBoss主導で行われてる。
>>912 たしかに、EJB3のPersistenceAPIはHibernateと同様。つまり、PersistenceAPIはJ2SEでも使用可能。
でも、EJB3はBeanのトランザクション管理とかEJBの特徴の機能が使用できるので、その辺が違う。
>>915 どうしてJSPでそういう風なことするの?
フレームワーク使ってないの?
MVCモデルのFrameworkのViewでそんなことすること自体よくない。
>>917 JTAトランザクションも、今やEJBだけのものではないんだけどね。
事実上、リモート呼び出しができるかどうかの違いしか無いに等しい。
そしてリモート呼び出しはほとんど、というより全く使わないので、EJBは骨抜き。
>>919 JTAは確かにもともとEJB以外でも使用できるけど、EJB以外で使うなんてばかげてる。
EJBのようなJTAの緊密な連携は持っていないから。
Webアプリケーション内ではトランザクション処理を極めて限定的に利用する必要があり
極力、トランザクション処理はEJBで処理すべき。
複数スレッドにまたがるアプリケーショントランザクションもEJBだと簡単に扱える。
あと、トランザクションをEJB3のアノテーションで設定するとXML構成ファイルの
必要なくなり、コードの簡潔さがSpring等での実装時と比べ違う。
また、JCAも同様。
EJB3でもリモート呼び出しはオーバーヘッドが大きすぎて使えないので
たしかで使用しないことが推奨されている。ただ、JBossでは最適化
されていてそんなにないけどね。
>>921 DIコンテナがあればJava SE環境でも当たり前に使えるよ。設定は今のEJB2よりも断然簡単
EJB3はDIコンテナとTopLink・Hibernateを元に構築し直されたものだから、今より便利でないと立場が無いw
今は便利と思い込まされていて、EJB4でやっと本当に便利になる悪寒。
>>922 Java SEで使えないなんていってないよ。
実際Java SEでもEJBでトランザクション使った開発やってたから。
ただ、EJB2.1だったけど。
ただ、JTA使うんだったらEJB3でやるべきっていいたかった。
EJB3のJPAは設定がHibernateよりずっと簡単にできるのは確か。
Hibernate作者のGavinが自分自身でそういってたし。JBossWorld Vegasで。
また、Gavinは今Seamに力入れてるしね。Seamの全セッションに参加してたし。
JPAはEJBから切り離されてるから、EJBのJPAっていうのはちとおかしい
いまからEJB3を始めるとしていい情報源ある? 要英語かな?
>>914 JBoss Seam って JSF 使うみたいだけど、JSFも含んでるの?
まだまだejb3はドキュメント少なくて流行りそうにないね。 実績のあるhibernate程度が無難か。
>>926 とりあえず使うなら、NetBeans5.5+GlassFishのチュートリアルがおすすめ。
>>928 JavaEE5対応だからJSFは必須
暗黙オブジェクト application に格納できる情報には、件数やサイズ等の上限はありますか?
>>932 仕様上は無い。
物理的には、メモリ使用量等で制限は出てくるだろう。
PerlやPHPでは書けなかった美しいコードが書けるから EJB3でコードを書くことにしました。 自分で使ってみて、EJB3は美しいコードを書くことができる、 プログラマをハッピーにする言語だと感じたのです。
EJB3が美しいかどうかはともかく、 PerlやPHPに比べたら極上の美しさに見えるだろうね
>>934 幸運のペンダントか何かを売るような文ですね
937 :
nobodyさん :2006/06/21(水) 20:02:00 ID:9YsEgGxs
新人研修の最後に、JSP&サーブレット&DBを使った 簡単なWebアプリを作ってもらおうと思うんだけど、 どういったものを作ってもらえばいいかな? 新人の能力:とりあえずJSP・サーブレット・Bean+DBが扱える程度の能力 環境:JDK1.5.0+Tomcat+MySQL 期間:5日程度
938 :
nobodyさん :2006/06/21(水) 21:49:10 ID:8iVlXFcc
Tomcatでバッファオーバフローは発生するのでしょうか? Pure JavaならExceptionやOutOfMemoryErrorがでるだけだと思うのですが、いかがでしょう。
その程度で実践投入されてあちこちで個人情報流出が起きるのか。 新人研修でクラック対策も教えとけ。特にDoS攻撃。
940 :
nobodyさん :2006/06/22(木) 00:29:18 ID:/RVErRBQ
起きないと思い込むことこそがセキュリティホール。 もしかすると起きるかも知れないとあらかじめ対策を考えておくのが本当のセキュリティ対策。
943 :
938 :2006/06/22(木) 03:04:46 ID:/RVErRBQ
>>942 一理ありますね。
どのような対策がありえるでしょうか?
>>937 スケジュール帳かな?
日付を扱うし、変数の型も学びやすいから
無理だろう、ロジック自体複雑すぎる TODOリストあたりに押さえた方が
946 :
nobodyさん :2006/06/22(木) 19:05:40 ID:N4GComYy
今日、初めてJSFに触れた者です。よろしくお願いします。
質問させて下さい。
http://muimi.com/j/jsf/validate/ このサイトを用い学習を進めているのですが、
カスタムバリデータで躓いてしまいました。
例の通り、正規表現チェックを行うカスタムタグを作成しましたが、
submit するとヌルポが発生します。
RegExpValidator#validate の if(!text.matches(pattern)) にて発生します。
直接の原因はフィールド pattern が null であることです。
RegExpValidatorTag にて #setPatternを呼び出しているにも関わらず、
null であるため、デバッグしてみたところ、
画面表示時(#setPattern)のRegExpValidatorインスタンスと、#validate 実行時のそれは、
違うインスタンスのようでした。(this.hashCode()にて確認)
フィールド pattern を static にすれば、動くことは動きます。(当たり前ですね…)
根本原因が掴めません。どなたかご教授くださいませ。
<環境>
OS : WinXP SP1
JDK : 1.4
Server : tomcat 5.5.17 (Compatability Package 適応)
JSF : MyFaces_Core/Tomahawk 1.1.3
ブラウザ:IE6 SP1
jsp-Servlet-BeanによるMVCモデルがイマイチ理解できません。 たとえば、DBのテーブル情報を表示させようとした場合、 次のような流れでいいのでしょうか? (1)jspからサーブレットを呼び出す。 (2)サーブレット内で、jspから渡されたパラメータにより、 特定のテーブル情報を取得するか、全テーブル情報を取得するか判断。 (3)2での判断を元に、サーブレット内でDB情報を取得するクラスを呼び出す。 (4)サーブレット内で、DB情報をBeanに格納するメソッドを呼ぶ。 (5)サーブレットからjspにBeanを返す。 (6)jspでBeanのGetterメソッドを呼び出して情報を表示する。 具体的によくわかっていないのが、 ○DBへの接続は何が受け持つのか? ・サーブレット ・Bean ・専用クラス ○貰ったDB情報をどのようにBeanに格納するのか? ・サーブレットでDB情報を解析してBeanのSetterにいれていく。 ・貰ったDB情報(ResultSet)をBeanの処理メソッドに渡してBean内でSet。 ・Bean内の処理メソッドで、DB情報を受け取り、Set。 ・DBに接続するメソッドが、結果をBeanに格納してBeanをサーブレットに返す。 今までサーブレット無しでjsp+Bean+その他のクラスの形式での プロジェクトばかりだったために、サーブレットになにをさせるのかが よくわからんとです。
まず、WebでのMVCモデルという考えは、結局廃れてしまっているから捨てろ。 DB接続用クラスからの結果をBeanに格納してサーブレットからJSPまで受け渡すようにする。 BeanのGetterメソッドは、明示的に呼び出すのではなくJSP式言語を使う。
>(1)jspからサーブレットを呼び出す。 この時点で既に間違い
>>948 廃れてるって・・・
ViewやControllerはビジネスロジックとは分けるだろ?
それとも、カスタムタグやスクリプトレットでDBアクセスコード書くクチか?
MVC2って言いたいとか
>>951 MVC2って何?
「MVC」と「JSP Model2」を混同した誤用だと思ってたけど。
>>950 結局、提唱されたような3角形のMVCモデルでは、うまくシステムが組めていない。
ViewとModelが直接やりとりしないレイヤーパターンが主流。
サーブレットからJSPに渡すのは、Modelではなく、ロジックをもたないデータをラッピングしただけのオブジェクト。
>>953 ああ、そういうことが言いたかったのね。
廃れているっていうより、
J2EE(JavaEE)向けに変化してきてるっていうか。
Modelがさらにドメインモデルとビジネスロジックに分かれてるっていうか。
そういうことね。
>>952 JSP Model 2なんてないだろ。キミの誤解。
MVC Model 2
MVC Model 2 = JSP Model 2 と読めるんだが、どっか違うの?
「JSP Mlodel1」に対して「JSP Model2」が、いわゆる「MVC」と呼ばれているアーキテクチャ。 「MVC Model2」って言葉は本来無かった。「MVC Model2」という言葉を明確に定義しているものはない。 「MVC」と「JSP Model2」という元々は別の言葉だったものが ごちゃまぜになって誤用されたのが、いつのまにか定着してしまった言葉。
ちなみに、「JSP Mlodel1」ってのは、基本的にJSPのみの利用。 補助的にJavaBeansを利用する。 PHPとかASPのような、スクリプト言語っぽい使い方。
961 :
" :2006/06/24(土) 20:06:45 ID:???
何が正しくて何が間違ってると思ってるのが言わないと。
>>960 どこがおかしいの?
さっぱりわからん。
JSP宣言 <%! %> のスコープについて教えてください。 「<%! %>内部で定義された変数やメソッドのスコープは、 そのJSP(のインスタンス)に限定される」 というのが私の現在の理解ですが、 1このタグ内部で定義されたメソッドや変数は定義元JSPのクラスの メソッドや変数と考えてよいのでしょうか? たとえば hoge.jsp内で定義されたメソッドは hogeclassのメソッドですか? 2 web上の記述例では、時々メソッドをpublicにしているものがあります。 privateにしている例(こちらが多い)と比べて、どのような違いがありますか? (publicとした場合、定義元のpageをインクルードすれは他のJSPでも 使用できるのでしょうか?)
>>963 本当にredirectになってるの?
redirectかforwardか確認できるツール使ってないの?
966 :
963 :2006/06/24(土) 22:22:24 ID:???
>>966 Eclipse使ってるんなら、どっかにプラグインがあるんじゃない?
NetBeansには標準でHTTPモニターついてるからそれで見れる。
>>964 1 んだんだ。そうだったと思うべさ。
2 クラス名がわかんねえんでねえか?実行時コンパイルだかんな。
てか、そっただことをうだうだ気にするなら、実行してソース見るべさ。
969 :
964 :2006/06/28(水) 21:36:16 ID:???
>>968 >2 クラス名がわかんねえんでねえか?
hoge.jsp → hoge.class として呼び出せたらうれしいなあと思いつつ
とりあえずやってみます。ありがとうございました。
970 :
nobodyさん :2006/06/28(水) 21:53:16 ID:9hcWH2vs
DBから情報を取得する処理を作るときは 1.ServletからDBにアクセスするクラスを呼び出す 2.ServletにResultSetを返す 3.ServletからBeanを呼び出し、ResultSetのデータを格納 4.ServletからJspにBeanを返す で問題ナッシング?
972 :
970 :2006/06/28(水) 22:12:12 ID:???
ぬぅ。 ならば 1.ServletからDBにアクセスするクラスを呼び出す 2.DBにアクセスするクラスからBeanを呼び出しResultSetのデータを格納 3.DBにアクセスするクラスからServletにBeanを返す 4.ServletからJspにBeanを返す でどうだっ
>>972 おk。よくできまつた。
JDBC API関連の型を直接ServletやBeanで扱うのは良くない。
JDBC APIはDBにアクセスするクラス内で閉じておくべき。
974 :
972 :2006/06/28(水) 22:46:26 ID:???
>>971 ,973
ありがd
おかげで自信がもてました。
>>974 で、ResultSetからBean詰め込みとか退屈な作業は、DBUtils使うのがいい。
いまからなら、EJB3でかなり楽ができる。
976 :
nobodyさん :2006/06/29(木) 21:22:47 ID:o5ZttpeS
マニアックな制御しないならO/R真っ裸が楽よね。
HTMLのcharsetはShift-JIS、JSPはWindows-31Jを指定しているページで XMLHTTPを利用しテキストデータを取得したいのですが・・・ 取得するJSPのpage contentTypeがSJISだと「梶vなどの文字が化けたので 次はcharset=Windows-31Jにすると今度はresponseText取得時にエラーが表示されます。 皆さんはXMLHTTPを利用する時の文字化けをどうしていますか〜?
XMLHTTPはWindows-31Jという名前をサポートしてない csWindows31Jで動いた記憶がある
979 :
977 :2006/07/01(土) 22:45:38 ID:???
>>978 JSPのcharsetをcsWindows31Jに変更したら正常な文字で取得できました。
ありがとうございました〜
csWindows31Jで通るとは!
Windows-31JがダメだからcsWindows31Jもダメだと勝手に思い込んでました・・
Javaの文字コード指定ぐらい覚えようぜ(w ORマッパのXML書くのが面倒。 自動化して手抜きしたくなるのがPGじゃね?
> 980 なにがいいたいのかわからん。 ORマッパのXML書くのが面倒っていうやつはプログラマじゃない、プログラマなら自動化しろ、ということか? それに、もうORマッパでXML書く必要のあるものの方が少なくなっていくわけだが。
まだまだXMLは不滅ですよ。 JavaとXMLは密接で相互依存してるし。
ORマッピングに関してはほぼ滅亡するけどな。
web.xmlはしばらく残りそうだな
なんでServlet2.5でURIのマッピングのためのアノテーションが導入されなかったのかな?
JSFのコンフィグファイルも。
ページ遷移は難しいにしても、ManagedBeanはアノテーションでいけるよな。
hoge.jspを配置してブラウザ呼び出してみたが hoge.javaがサイズ0のまま一向にコンパイルされなかった。 tomcat再起動して仕切りなおしたら即座にコンパイルされ、普通に 動作した。 こういうことってあるものですか?
知るか
もうアフォかと。 実運用で毎回再コンパイルしてたら遅くて使い物に成らんよ。
いやどう考えてもお前がアホだろう 開発時にわざわざ手動でやる馬鹿はどこに居る。 >988 設定によるニダ
992 :
988 :2006/07/06(木) 20:34:58 ID:???
>>991 コメントありがとうございます。
あれから何回か同様の操作を行いましたが、現象が再現しません。
が、念のためサーバーの設定を確認したいと思います。
Makefileぐらい書けよ。糞チョン。
> 993 なんの話をしてるのだ?
JavaでMakefileかよw。糞チョンw
JSFの話なんだけど、JSPでif文使う方法ってある? ただ、スクリプトレットじゃなくてタグで・・・。 <h:column rendered="#{真偽}"> ってのをさっき見つけたけどスマートじゃないよなぁ。 教えてえろいひと。
素直にスクリプトレットに書けと言ってみるテスト
<c:if>じゃだめなのか?
>>998 JSF1.1までの場合、<c:if>の内側にJSFのタグは書けないという制約がある。
>>996 ><h:column rendered="#{真偽}"> ってのをさっき見つけたけどスマートじゃないよなぁ。
いや、それが一番スマートだと思うし、そのための機能だと思うけど・・・
1000 :
nobodyさん :2006/07/09(日) 02:51:14 ID:86lK/U5p
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。