1 :
厨房 :
2000/10/23(月) 00:42 日本語の参考書のまったく出てないサーブレット。 それに関するQ&A
2 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 00:51
3 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 01:04
掲示板程度でもサーブレットで組んだら何か良いことありますか?
4 :
>3 :2000/10/23(月) 01:30
掲示板程度なら生産性とかあんまり関係ないのでPHPの方が軽い分だけ適しているでしょう。
SevletよりJNIの方が参考書は少ない。 実用性はJNIの方が高いと思うんだけど。
6 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 05:43
JNIはただのインターフェースなので、ソース見てすぐに使えるけれど、 サーブレットは色々と細かいTipsがありそう。性能とか。
7 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 17:31
8 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 20:08
JavaServletっていまいちよくわかんないんですけど、 簡潔に説明して下さいませんか
9 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 23:22
8>サーバーサイドジャバだよん
10 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 23:26
XMLの本はスゴイ勢いで増えてのに・・・ なぜサーヴレット本はすくないの? 東鳩サーブレット ぽっぽっぽ
ServletはCGIのようなシステムの代替案でしかない。 XMLはテキストデータフォーマットの標準化共通化の 最右翼。これがディファクトスタンダードになれば どんだけのコストを削れるか。。。
12 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 23:33
EJBとサーブレットっていまいち違いがわからない EJB=便利な部品 サーブレット=プログラム って感じ? 両方勉強するひつようあり?
13 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 00:39
11> 今まで彼女がいなかった奴がはじめて女ができた ずっともてもての奴が今の彼女に飽きて違う女にしてみた みたいな~
14 :
厨房 :2000/10/24(火) 00:52
15 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 01:01
>7はコテコテの理系っぽい.
16 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 01:16
つーか厨房がサーブレットで何やるんだよ?
17 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 12:45
XMLを動的に生成する場合だとServletの人気が高いですよね。 なぜなんだろ?
自分が勉強しないことを棚に上げて資料が少ない とほざいてる?
19 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 13:01
Servletってのは CGIみたなもの。 特徴としては Perlの様に毎回起動されないので ・そのぶんのレスポンスが速い ・ServletEngine内である程度の永続性があるのでセッション管理が楽ちん ・Perlみたいな便利な正規表現は(標準では)無い ・Perlみたいなヒアドキュメントも無い(Printの嵐) ・Javaがネットワークに強いので負荷分散とかが楽チン Printの嵐がやだってんで Bean+JSPってことが多いと思います。 EJBってのは Beanの一種 J2EEに準拠したコンテナで管理されます。 一般にはDBと連携してることが多いです。
20 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 13:03
んで Servlet自体はインタフェースなんで使い方っていっても 本を書くまでも無いことなんだと思います. ServletEngineまわりのKnowHowのほうは必要あるかも。 引数がどうやってわたってきて どうすれば出力できるかって ところだけ理解しちゃえば あとは普通のプログラムです。 Java特有の機能をつかっていろいろするのは また別の本を 読むのがいいでしょう
21 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 20:51
>>18 同感。
少なくともJavaでコード書いたことあるやつなら
そのへんのHPでServletの簡単なプログラムの作り方
ぐらいは理解できる。そうすれば、次は排他制御とか
インターフェースの切り分け方とか具体的な疑問が
出てくる。じゃぁそういうこと書いた本はありませんか
という質問に最低なるもんなんだが...
もしかするとJavaすらやったことないのかも。だったら
まずServletよりも前の段階で学ぶことはいっぱいある。
22 :
>21 :2000/10/24(火) 22:28
排他制御とか インターフェースの切り分け方とか書いた本はありませんか
23 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 22:33
排他制御とインターフェースの切り分けってなんですか? DBとかの排他制御みたいな感じ?
24 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 22:51
htmlを生成するとき pw.println("<html>"); pw.println("<head>"); <以下略> ってやるのと a += "<html>"; a += "<head>"; <中略> pw.println( a ); ってやるのって違いはでる? 面倒なので後者でやる場合が多いけど (JSPを使えばいんだろけど)
25 :
名無しさん@お腹いっぱい。 :2000/10/24(火) 23:26
誰か、MSのCOM+と比較してほしい。
>24 1. +するたびに、それまでのaのStringオブジェクトが持ってる文字列に 足しこまれた文字列を連結した新しいStringクラスを、内部でnewしてる。 よって、メモリ食ってるかも。(このご時世に文字列のメモリ消費なんて カスのようなもんだろうけど) 2.printlnは行末に改行文字挿入して出力してる。
27 :
21 :2000/10/25(水) 01:04
>>22 ん、誤解されたかな。servlet勉強していくとそういう疑問が
でてもいいかなと言う意味で別に排他制御がservlet特有のトピックス
であるというつもりはないよ。ただ、インスタンスが一つ作られて
init()が実行されて、あとは複数のコネクションに対してメソッドが
呼ばれるということは理解しておく必要がある。ここまでは
servletの本なら絶対書いてあるし、あとは、別に普通の
プログラムでのスレッドセーフな話と同じだから一般のJavaの本
でいいよね。面倒ならjavax.servlet.SingleThreadModel
を使うって手もあるけど。
排他共有する情報をDBに任せるのなら、
DBを呼び出すオーバーヘッドがでかくなるから
コネクションプーリングとか。
で、うちにあるこの辺に触れた本だと、
「XMLとJavaによるWebアプリケーション開発」
とか
「Javaサーブレットパーフェクトガイド」
かな。
インターフェースの切り分けつーと、MVCモデルで
JSPとの連携とかそのへんの最近の話題は一般書籍
では見たことないから、雑誌中心になるね。旧来の
やり方だとCGIとかとさほどかわらんから、その応用。
もし聞かれたらこんな感じで答えるけど、満足?? >> 22
28 :
21 :2000/10/25(水) 01:47
そいや、クライアントから渡された文字列がgetParameter*()で文字化けとかも実際にやっていれば出そうな疑問だけどこういう実装依存なとこがある話は書籍だとつらいですか。かえってMLとかのアーカイブ検索したほうがいいかもね。
29 :
名無しさん@お腹いっぱい。 :2000/10/25(水) 04:04
>> 24 後者は以下のコードと同じ. a = new StringBuffer(a).append("<html>").toString(); a = new StringBuffer(a).append("<head>").toString(); なんのことかわからなかったらまず String の API Document を読め.
30 :
名無しさん@お腹いっぱい。 :2000/10/25(水) 11:38
multipart/form-data もサポートされてないね
31 :
22 :2000/10/25(水) 12:31
満足っす
32 :
名無しさん@お腹いっぱい。 :2000/10/25(水) 21:06
26>29> 満足っす まずはJAVAからっすね。 サーブレット書きながら、 いきつもどりつ勉強しとります。
33 :
名無しさん@お腹いっぱい。 :2000/10/29(日) 12:06
cookieのことなんですが、IE5.5とJSQDK-1.0.1を使ってます。 cookieをブラウザに送って、ブラウザからクッキーを受け取ることは できるのですが、そのcookieがどこにできたのかなぞです。 c:\windows\cookies にできるのかと思ってもないし???
34 :
名無しさん@お腹いっぱい。 :2000/11/01(水) 05:35
インターネットキャッシュの中にないか?
35 :
名無しさん@お腹いっぱい。 :2000/11/01(水) 19:43
ないんですよ~ すごいなぞ response.addCookie(cookie); でつくったクッキーを request.getCookies(); して、ブラウザに表示できるんだけど???
36 :
>33 :2000/11/01(水) 22:47
クッキーが実際にファイルに書き込まれるのは、 ブラウザを閉じたとき。
37 :
>28 :2000/11/01(水) 22:55
MVCの切り分け、悩みます。切り分けとはいえ、MVCそれぞれ の結合度が強く、例のアーキテクチャパターンの本に書いて あるデメリットをまともにくらいました。 各画面遷移毎(極端なはなし、フォームの送信ボタンごと)に サーブレットをつくっていると、いくつあってもきりがないし かといってまとめてしまうと、害虫に出すとき仕様を説明する のがめんどくさい。
38 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 23:29
36> ありがとうございます!
VisualAge3.5についてるWTEって サーブレットチェーンできんのかあああ!?
素直にWebsphereそのものを入れちゃいえばいいのに。 開発者ならタダだよね。
41 :
>40 :2000/11/04(土) 00:24
39には同感。 40の言うことは正論なんだけど。 WSS+VAJ+WAS+DB2をまともに動かすには512MBくらいメモリ必要でしょ。 うちはビンボーだし。マシン買うには上の上の上まで説得しないと 稟議通らないし。
42 :
39 :2000/11/04(土) 00:29
業務でもWebsphere使ってません。 っていうか今はJavaの仕事してません。 仕方ないので、JavaWebServer落として来ました。
43 :
40 :2000/11/04(土) 01:57
>>41 >うちはビンボーだし。
あらら、それは失礼。
44 :
???????????????B :2000/11/05(日) 19:41
VAJの無料バージョンにもサーブレットのテスト環境みたいのあるの? J2EE対応でタダのRAD ないか
45 :
5流SE :2000/11/05(日) 21:31
>例のアーキテクチャパターンの本 ってどの本でしょうか? サープレット/JSPを使ったシステムのいい見本 って有りませんか?どうも、自分の設計に自信が もてないんですが。
46 :
名無しさん@お腹いっぱい。 :2000/11/08(水) 19:15
charset=iso-2022-jp にしてもネットスケープで文字化けします 以下の過程で使用すべき文字コードってなんでしょうか? 1 コードを書く 2 HTMLを生成する 3 ネットスケープでHTMLを受け取る コードを書くときは文字コードをUNICODEとかで書かないと行けないのでしょうか? いろいろ試して頭が混乱してしまいました
47 :
名無しさん@お腹いっぱい。 :2000/11/09(木) 08:48
>以下の過程で使用すべき文字コードってなんでしょうか? >1 コードを書く servletに限らず、javacがコンパイルするコードのエンコーディングは 固定だから無関係。ちなみに変更するときには -encoding オプション >2 HTMLを生成する >3 ネットスケープでHTMLを受け取る この二つが問題。 >charset=iso-2022-jp >にしてもネットスケープで文字化けします というけど、2と3のどちらの段階でcharsetを指定しているの? 具体的には2だと<meta>タグ中での指定。3だとHTTPレスポンス ヘッダ中のcontent-type:で指定。 ここで重要なのはnetscapeは2よりも3を優先させるということ。 getWriter()で得たストリームに出力するときにcontent-type:を 指定していると思うからそこでcharsetの指定をしてみよう。
48 :
47 :2000/11/09(木) 08:59
付け加えるけど、2と3のどちらかでcontent-typeのcharsetを指定していない場合は、 デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。 ただhttp転送においてレスポンスヘッダ中のcontent-type:ヘッダは必須だから、ここ(3)での charsetの指定も必須となる。だから、2のMETAタグ中でcontent-typeの指定は,やらないほうが 無難ね。<META>タグ中での指定が必須となるのは、ユーザがブラウザの保存機能で htmlデータをローカルに保存することが想定される場合。この場合は、メタ情報がなくなる から、htmlデータ中にメタ情報を置く必要がある。
49 :
47 :2000/11/09(木) 09:02
文章わかりにくいなぁ。反省。 >デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。 (2と3のうちcharsetを指定していない側のcharsetは)デフォルトで~~、二つの間で矛盾が生じる。 ね。
50 :
名無しさん@お腹いっぱい。 :2000/11/09(木) 19:26
ありがとうございます! 1 ソースを書く文字コードは何を使ってもOK。 コンパイルするとUNICODEに変換される ということですよね?? 2ー3 コードはこんな感じでした。 と言うことは、METAタグも追加して、 そこでも文字コードを指定してあげるベきなのですね ちなにみサーブレットで出力させるべき文字コードは やっぱりUNICODEなのでしょうか?? ブラウザで日本語の自動判別があるから、SJISかEUCに すべき?? だいぶ頭のなかがすっきりして来たので、 もっと調べてみようと思います private void createForm(String guestname, HttpServletRequest requuest, HttpServletResponse response) throws IOException{ response.setContentType("text/html; charset=UTF-8"); PrintWriter pw = response.getWriter(); pw.println("<html><head>");
51 :
47 :2000/11/09(木) 22:50
>1 ソースを書く文字コードは何を使ってもOK。 基本的にはプラットホーム依存だけど、-encodingオプションで 明示的に指定してあげる限り、なに使ってもOK。それ以上は あなたの環境がわからないので答えられません。 >と言うことは、METAタグも追加して、 >そこでも文字コードを指定してあげるベきなのですね いや、できるだけMETAタグの使用は避けた方が 無難。やってもいいけどやるなら正確に。 コードは示された部分だけでは問題なさそうなので、 >pw.println("<html><head>"); の部分を pw.println("<html><head>あああ"); みたいな感じに日本語入れて、Netscapeではなくて、 telnetで直接80番ポート叩いて生の出力を確認するのが おすすめ。あ、あと一つ確認するけど、この後のコード で日本語を含むstringオブジェクトを変な感じにエンコーディング の変換してpwに突っ込んでいるとかそういうことないよね。 たまーにgetByte()とか使ってバイト列に戻すとか妙な ことやっている人いるんで。
52 :
名無しさん@お腹いっぱい。 :2000/11/09(木) 23:33
こーどの後ろはpw.printlnでHTMLを書いて終ってるので、 怪しいことはしてないと思います。 (getByte()とかはいれてないです)
53 :
名無しさん@お腹いっぱい。 :2000/11/09(木) 23:38
>基本的にはプラットホーム依存だけど、-encodingオプションで > 明示的に指定してあげる限り、なに使ってもOK エディターで書かれたコード ↓ コンパイル時にコードを使用しているコードを明示指定 ↓ unicodeに変換される ですよね ここ最近文字コードで悩みっぱなしで、 なかなか先に勧めないので、 横着してブラウザも、エディタもunicodeにしちゃってます とりあえずエディタで使用する文字コードの謎はとけました ありがとうございます
54 :
JRun3.0 :2000/11/10(金) 03:20
Apacheを1.3.6から1.3.14へバージョンアップしたのと同時に JRunも2.3から3.0へとバージョンアップしました。 ところが、これベンダーが代わったらしく 管理ツールが大幅に変更になってしまいました。 おかげで、サーブレットのクラスファイルを何処においていいのやら さっぱりわかりません。 ドキュメントを探しても2.3のばかりです。 3.0の有用なドキュメント等ご存知でしたら教えてください。
55 :
名無しさん@お腹いっぱい。 :2000/11/11(土) 21:26
>54 adminServerを立ち上げるとチュートリあるがでてくるから、 そのとおりにやってみては? 日本の資料は確かにふるいんで訳に立たなくて苦労した想い出がありました
56 :
6流SE :2000/11/12(日) 19:14
>45 >>例のアーキテクチャパターンの本 >ってどの本でしょうか? "Pattern oriented software architecture -- A system of patterns" 個人的に、GoFのDesign Pattern よりもわかりやすく面白いと 思ってます。
ていうか、JAVAってSUNに超大金払うか、パートナーにならないと サポートしてくれないんだろ?ってことは所詮お遊び言語としてしか 使えないような気がするんだが・・・・・ JSPでシステム構築しても、結局は信頼性がおけない。 そんなんだったらASPでコード書いた方がマシってスレ違いですか? すいません。
>57 今ごろ何言ってんの 使ったこと無いくせに
59 :
名無しさん@お腹いっぱい。 :2000/11/14(火) 20:40
あの~JRUN3.0のdefaultServerがどうも不安定です。 restartをかけて、ブラウザからアクセスすると、 「このサイトは大変混雑うんぬん」と言われてはじかれます。 ポートを8100から8010とかにかえてみたりしたのですが、 どうもつながったりつながらなかったりです。 インストールしてあるのはローカルのPCでアクセスするのも ローカルのPCです adminサーバは順調につながります 同じような現象が起きたかたいらっしゃいますか?
tomcat使ったら?
61 :
名無しさん@お腹いっぱい。 :2000/11/15(水) 18:50
EJBも使いたいのです
62 :
名無しさん@お腹いっぱい。 :2000/11/16(木) 01:43
ASPに戻ったら?
.aspならスレ違い
64 :
はとサーブレット :2000/11/17(金) 10:18
JRunってJ2EEのペットショップみたいなサンプルついてないのですか?
65 :
名無しさん@お腹いっぱい。 :2000/11/17(金) 18:27
なんかPDFの詳細なマニュアルにJ2EEの解説も詳しく書いてあった >JRUN EJBのセッション管理とかってSERVLETより楽そうなんだけど、 やっぱりどっちも勉強すべき? EJBをメインで足りない所をServletで補うスタイルで 勉強すべきかなぁ
66 :
はとサーブレット :2000/11/17(金) 18:36
>65 C:\Program Files\Allaire\JRun\docs\pdfのマニュアルですか? 英語やないですか。
67 :
NTTGM :2000/11/17(金) 19:24
68 :
名無しさん@お腹いっぱい。 :2000/11/17(金) 20:43
66> /opt/jrun/docsのなかのPDFです ServerSideJava勉強するなら英語は覚悟しましょうよ だって日本語の情報少ないじゃん~ とか言いつつ日本語でEJBの解説ページないかな~ って聞いてみたりして
69 :
名無しさん@お腹いっぱい。 :2000/11/17(金) 20:45
会社のIIS3.0にこっそりJRUNとかTOMCATをくっつけてみたいのですが、 あとで簡単に戻せますか? JRUNのマニュアルを詠んだられIISの設定を書き換えちゃうようなことが かいてあったんでちょっと恐いです
70 :
名無しさん@お腹いっぱい。 :2000/11/17(金) 20:58
>69 こっそりとではなく責任をとるつもりでやれ。
71 :
えっ! :2000/11/18(土) 01:11
>>47 もしかして、
String A = request.getParameter("a");
A = new String(A.getBytes("8859_1","JIS_AutoDitect");
とかやるのって最低っすか?
よくやっちゃうんですけど。
72 :
あぅ。 :2000/11/18(土) 01:15
>>71 しまった。間違った。
A = new String(A.getBytes("8859_1","JIS_AutoDitect");
>A = new String(A.getBytes("8859_1","JIS_AutoDitect"));
だ。右括弧1こ足んなかった。
73 :
名無しさん@お腹いっぱい。 :2000/11/18(土) 03:01
47のはソースで使うの文字コードで これはpostされる文字なんでいいんでないの? 自分で決められないし。
74 :
47 :2000/11/18(土) 16:08
75 :
71=72 :2000/11/19(日) 00:40
73&74さん レスありがとうございます。 47さんの「getBytes最悪」で、getBytesだけに意識がいってしまいました。 で、8859_1は、BEAのサイト(アドレス失念)のオラクルとの接続、とかいう所に あったのをそのま使ってました。 そろそろUTF-8って方も勉強しなくちゃ、なんですね。 もっと精進しなくては。
76 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 06:00
JavaアプレットからはネットワークJDBCドライバでDBアクセスするわけですが、 Javaサーブレットからは何でDBアクセスするんですか? サーバ側で実行するからJDBC-ODBCブリッジですか? あと、サーブレットがアプレットより優れている点て何ですか?
77 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 14:35
サーブレットもJDBCですよ 優れている点と言うよりも、種類が違うのだから、 状況で使い分けるものだと思います アプレットの場合クライアントPCのブラウザで アプレットが使えるどうか、対応しているバージョンは どうか、ダウンロードにかかる時間 などを気にしなくてはいけないですが、 サーブレットの場合はGETが使えるブラウザが入っていれば OKなので、クライアントのPCをいじれない場合は 便利です
78 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 14:50
79 :
名無しさん@お腹いっぱい。 :2000/11/20(月) 07:54
age
80 :
今皿 :2000/11/20(月) 11:48
76さんの質問は CGIがJavaScriptより優れている点は何ですか? という質問と同質ですね。
81 :
名無しさん@お腹いっぱい。 :2000/11/20(月) 19:52
79>サンキュー
82 :
名無しさん@お腹いっぱい。 :2000/11/23(木) 01:01
JSPなんですけれど、上手く理解できない部分がありました。 <%@ include file="hogehoge.jsp" %> と <jsp:include page="hogehoge.jsp"/> はどう使い分けたらよいのでしょうか? CQ出版社の「OPENDESIGN増刊 JAVA SERVER PAGE詳細」て本を 買ってみましたけれど、「動的/静的なリソース(ファイル)」 という言葉が漠然とあるだけで、よく理解できませんでした。
>>82 実行結果をインクルードするのと、実行前のソースをインクルード
することの違いじゃない?
あげるべきか、上げざるべきか。上のスレでservletの話題出てないから 定番スレってわけでもなさそうなので、とりあえずageず。
85 :
名無しさん@お腹いっぱい。 :2000/12/02(土) 00:40
JRUN3.0のWEB-INF/classes/フォルダに置いたアプレットの
正しい指定の仕方で悩んでいます
(codebaseのところはファイルの階層を書くべきなのか、
WEBサーバの仮想フォルダ構造にしたがって書くべきなのか
パッケージの名前で指定できるのか
)
Appletとhtmlファイルの配置は以下になります
/opt/JRun/servers/default/hoge/AppletTest.html
のappletに関する記述は↓です
<applet
code=jp.gr.java_conf.hoge.AppletTest.class
codebase=/hoge
width=400
height=100>
でAppletは↓に置いてあって
/opt/JRun/servers/default/hoge/WEB-INF/classes/jp/gr/java_conf/hoge/AppletTest.class
でAppletTestのpackageは
package jp.gr.java_conf.hoge;
です
アプレットを同じ階層にhtmlを作って動かすと動作できます
(文字を書くだけのアプレットです)
アプレットの起動はNetscapeから↓です
http://localhost:8100/hoge/AppletTest.html
86 :
名無しさん@お腹いっぱい。 :2000/12/02(土) 17:09
87 :
名無しさん@お腹いっぱい。 :2000/12/07(木) 11:35
Apache + TOMCAT3.2 final 使ってるんですが、マニュアル通りサーブレットの 置き場所としてmyappをbuild.batでビルドしたらエラーが出ました。 TOMCAT3.2のバグですかね? Apacheのクラスがないみたいなエラーでした。
88 :
名無しさん@お腹いっぱい。 :2000/12/07(木) 11:55
>87 build.xmlの13行目が/>でxml的に閉じられていないようです。 あと、CLASSPATHにtool.jarが要ると思います
>>86 >servletフォルダ以下にはappletを置いても呼び出せないのでしょうか??
馬鹿すぎて放置されているようだが…できません。
90 :
名無しさん@お腹いっぱい。 :2000/12/10(日) 01:34
ありがとうございます
91 :
バカ学生 :2000/12/13(水) 23:52
すいません、セッションについて教えてください。 A、B、Cと3つのサーブレットがあります。 Aでログイン(認証)を行い、成功すると、セッションを生成して、 Bにリダイレクトして、BのdoGetを行います。 このときは、URLにも、sessinID(ながい文字列)が付いていて、 特に問題はありません。 その後、Bのdogetで生成されたHTMLフォームに対して書き込み、 BのdoPostを行い、CのdoGetへ、リダイレクトします。 このとき、Cでsessionがgetできないのです。 Aで生成したセッションは、Bをまたいで、Cに持っていくことは できないのですか?または、私のプログラムミスですか? どうぞ、よろしくお願いします。
92 :
馬鹿社会人 :2000/12/14(木) 00:01
93 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 00:30
>>91 関係ないけど、
HttpSession て クッキーでやるんじゃないの? クエリー使うの?
実装依存という気もしますが。
逃避的回避策としては
RequestDispatcher.forward 使うのはダメですか。
94 :
バカ学生 :2000/12/14(木) 01:02
ありがとうございます。
>>92 卒論でいっぱいいっぱいです。
>>93 >HttpSession て クッキーでやるんじゃないの? クエリー使うの?
クッキーではなく、セッションを使いたいのですが、
勉強不足でよくわかりません。
RequestDispatcher.forwardというのは、初めて見ました。
APIで調べても、いまいちわからず・・・
サーブレットの日本語APIなんてあるのでしょうか。。。
95 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 03:19
>>94 HTTP 自体にセッションという概念はなくて、
(基本的に毎回接続しなおすと思って良い)
HttpSessionっていうのは、クッキーなりクエリーなりを使って
そういう下回りを意識せずに
セッション == 永続的な接続情報保持を
実現する仕組み(というかクラス)です。
Forward は、HTTP 的に飛ばすのではなくて、
現在のストリームに対して servlet を流し込むというか、
サーバの内部でリダイレクトを解決する仕組み、のようなもの、です。
なので、同じサーバ(WEBアプリケーション)上の servlet/JSP に対して
使うのが普通です。
#といいつつフォロー求む
96 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 23:33
原田洋子の「JavaServlet」って本。序盤から誤記・誤字だらけ 勘弁してくれ
97 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 23:48
>>96 個人名を出すな!
っていうかプログラム系の本って間違いだらけじゃない?(特に個人が執筆してるやつ)
自分も DirectX の本買って書いてある通り覚えたら思いっきり間違ってた。
たまたま自分のコンピュータでは動いてたが他のコンピュータで動かしたら
起動しなかったり途中でハングったり大変だったよ。
91の問題はクリアしました。 session変数を、メソッドの中でなく、外で グローバル宣言(?)したらできました。。 メソッド内だと、だめなんですか? ただ、サーブレット間を行き来するときに、 なぜかセッションが消えていたり、復活していたり、 なんか動きが怪しいです。
99 :
名無しさん@お腹いっぱい。 :2000/12/15(金) 00:22
<<98 それだと thread-safe じゃないのでヤメてください。 つーか getSession で毎回取得すればいいのに。
100 :
名無しさん@お腹いっぱい。 :2000/12/15(金) 00:33
>>97 だって7刷もしてるのに全然訂正が入らないってのはひどいじゃない。
初心者向けの本だってのにさ。
>>99 thread-safe というのがわからないのですが。。
>getSession で毎回取得すればいいのに。
これは、getSession(true);ということですか?
リダイレクト先で、また新しいセッションを作って、
またリダイレクト先で・・・というふうに、
複数セッションを作れるのですか?
それとも、最初にセッションをつくり、以後は、
getSession(false);で、最初のセッションを取得すると
いうことですか?
102 :
名無しさん@お腹いっぱい。 :2000/12/15(金) 03:19
>>101 getSession(false) です。(true)でもいいけど。
getSession(true) はなにも毎回新しいのを作るわけではなく、
無いなら作る、というだけです。
thread-safe の話は servlet の資料を読むと必ずでてくるので
探してください。
103 :
名無しさん@お腹いっぱい。 :2000/12/15(金) 17:37
sessionがらみで便乗質問させて下さい。 96の本を参考にしてるんですが、 sessionにputValue()でStringの値をセットした場合は 問題ないのですが、参照型のインスタンスだと、 実行時にClassCastExceptionでエラーになってしまいます。 User a = (User)session.getValue("user"); こんな感じなんですが… キャストの仕方がまずいのでしょうか。
104 :
むぎ茶 :2000/12/15(金) 19:46
Object o = session.getValue("user"); System.out.println(o); でもして 実際に何が帰ってきてるのか確かめろ
105 :
103 :2000/12/18(月) 10:53
レスありがとうございます。 println()で出力すると、 "User@"に続いてアドレスらしき値が表示されます。 Stringの場合は、Objectで出力しても文字列がそのまま出力されるので、 なにか値の取り出し方に違いがあるのでしょうか?
106 :
むぎ茶 :2000/12/18(月) 12:44
"User@"って表示される時にも ClassCastException でますか?? System.out.println(o.getClass()); のほうがいいかな。
107 :
103 :2000/12/18(月) 13:31
Objectクラスに代入してる分には ClassCastExceptionは出ないです。 getClass()でやってみた所、 "class User"と出力されました。
108 :
むぎ茶 :2000/12/18(月) 15:51
o.getClass eq User.class なのに User u = (User)o; で ClassCastException がでるの?? 本当にそうだとすると処理系のバグ?? 同名で別の User クラスがあるとか? わかんね
もう少し調べてみます。 勉強になりました。 ありがとうございました。
110 :
バカ学生 :2000/12/20(水) 17:29
>つーか getSession で毎回取得すればいいのに。 >getSession(false) です。 一応、そんな形でプログラムはしています。 (ログイン成功時に、セッション生成し、他のサーブレットは getSession(false) で、trueのときだけ、ログイン成功状態と見なす) でも、あるはずのセッションが消えてたり、なんかおかしいです。 thread-safe というのは、スレッド関係ですね。勉強してみます。 ありがとうございました。
111 :
バカ学生 :2000/12/20(水) 17:33
もう一つご相談なんですけど、HTMLから ボタンを押して、他の(サーブレットが出力した)画面に 行くようにしたいのですが、 単純に考えて、get とpostの2つしかないので、 2つしかボタンが作れず、分岐も2つだけですか? どなたか教えてください
あ、バカだ俺。 FORMのactionを変えれば、いくらでも作れますね。。 すんまそん。。
113 :
名無しさん@お腹いっぱい。 :2000/12/22(金) 17:19
JDBC経由でMySQLに接続したいのですが mm.mysql.jdbc-1.2のmysql_comp.jar mysql_uncomp.jarを どこにおいたらいいのですか? Tomcatのlibとかにおいているんですけど、No such driverいわれます。 現在の環境は apache1.3.14 tomcat3.1 jdk1.2.2です。
114 :
バカ学生 :2001/01/08(月) 13:02
ログインservletを作ったんですけど、 管理者がログインしたときだけ、管理者用の画面を 出力したいのですが、単に、管理者のID,passを、プログラム中で 文字列比較して、管理者なら、別のHTMLを出力するような プログラムでいいのですか?
115 :
デフォルトの名無しさん :2001/01/08(月) 17:07
>>113 環境変数CLASSPATHをちゃんと設定すればどこでもいいんじゃないの?
# いや、サーブレットはやった事ないんで嘘かもしれんが
116 :
デフォルトの名無しさん :2001/01/09(火) 17:32
関係無いんですが、Tomcat3.2.1で使うmod_jk.soってどこかでDLできないんですか? コンパイルして作るしかないんでしょうかね? ちなみに構築は Red Hat + Apache + Tomcat の予定です。
117 :
デフォルトの名無しさん :2001/01/14(日) 12:08
>116 つまり、apxsしたくないってことですか? (わかってると思うけど)一番確実な方法はApache&Tomcatのソースを 用意し、リコンパイルする方法です。....確かにでかいですからね。 ApacheのソースはredhatのソースCDにあるはず。tomcatについては.... 1.泣きながら落とす 2.jservを泣きながら使う 雑誌やredhatにtomcat3.2.1が収録されるのはもう少し先だと思います。 今月のUnixUSERにもないんでやんの....。
118 :
デフォルトの名無しさん :2001/01/14(日) 12:32
>117 自己レス ちょっと省略しすぎたので補足。tomcatのソースを泣きながら落とす 場合、落としてからapxsを試してください。通った場合はapacheのりコ ンパイルをする必要はないはずです。 通らなかった場合、redhatのapacheはDSO使えない。つまり、apache の再コンパイルとなるわけ。
119 :
デフォルトの名無しさん :2001/01/14(日) 14:05
120 :
緑茶 :2001/01/15(月) 15:49
ACCESS2000を使ってServletのプログラムを書いたのですが実行できません。 No suitable Driverなどというエラーが出てきます。 なぜでしょう? ちなみにACCESS97で作ったDBを使うと動くらしいのですが、 2000で動かしたいので誰か解決策教えてください。
121 :
デフォルトの名無しさん :2001/01/15(月) 19:53
ACCESSを使ってJavaなプログラムが書けるわけが無いだろ!っていうチャチャは置いといて、 ACCESS2000用のJDBCドライバを使えば良いのでは? ACCESSは使ったこと無いからどこにあるのか知らないけど。
122 :
初心者 :2001/01/17(水) 20:00
サーブレットからEXCELのファイルを読み込んで、 それをブラウザに表示することってできますか? OLEの扱いって、よく分かりません。 ダレカタスケテー
123 :
デフォルトの名無しさん :2001/01/20(土) 02:00
ACCESSだったら、jdkについてるjdbcドライバが使えると思います。 jdbc-odbcブリッジってやつです。
124 :
デフォルトの名無しさん :2001/01/20(土) 22:00
>>122 ServletからExecel?XMLを使え。DOMだ。
IEは5以上じゃないとダメだぞ。
って、オレもXMLは使ったことないけど。スマソ。
125 :
デフォルトの名無しさん :2001/01/20(土) 23:33
ServletからJSPに日本語の値を渡してるのですが、 文字化けします IE5.5 エディタはSJIS どこかにサンプル無いですか? public class Test extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException,ServletException { req.setAttribute("name", "ほげ"); ServletContext sc = getServletContext(); sc.getRequestDispatcher("/Test.jsp").forward(req, res); } } <HTML> <% String parm = (String)request.getAttribute("name"); %> <%= parm%> </HTML>
126 :
デフォルトの名無しさん :2001/01/21(日) 00:00
122> ODBCのDSNにExcelファイルを登録できるからそれを 使ってみては?
127 :
デフォルトの名無しさん :2001/02/20(火) 00:31
hoge
128 :
デフォルトの名無しさん :2001/04/11(水) 06:58
hage
130 :
デフォルトの名無しさん :2001/04/11(水) 09:35
みんなえらい苦労してますね。 僕は富○通のサンプルをベースにhtmlライブラリ クラスを作成してやっています。doServiceだから getもpostも関係なし。 今までやってる仕事で近年になく楽々。 一応イメージについて補足しておきますが、ブラウザ からアクセスすると対応するスレッドに接続できます。 出来ない場合には新規のスレッドを生成します。 そのスレッドにセッションを保存できるわけです。 当然DBなんかもコネクションは1つだけ。使い回す からそれなりに速くできます。 ということでどの言語でもそうだけど、問題となる のはデザインとプログラムの分離だけです。 #文字はShift JISで大体解決。~がひっかかるけど。
131 :
デフォルトの名無しさん :2001/04/13(金) 00:38
みなさんマシンはどれぐらいのスペックですか? CPUよりメモリの方が大事なのかな?
doService() みたいのを用意する例を結構見ますが、 なんで service() 使わないんだろね。
133 :
デフォルトの名無しさん :2001/04/13(金) 08:36
134 :
デフォルトの名無しさん :2001/04/16(月) 15:15
ローカルから送信されたデータをサーブレットを利用して サーバー内のtxtに書き込みたいのですが、どのようにすればいいですか? ちなみに使用サーバーはLinuxです。
136 :
135 :2001/04/16(月) 16:52
>>134 135は早とちりだったかもしれない
ファイルのアップロードでないなら普通に好きにファイルIOすれ。
137 :
134 :2001/04/16(月) 21:48
>135 解決しました。 ご助言、ありがとうございました。
138 :
デフォルトの名無しさん :2001/04/16(月) 21:56
サーブレットよりJSPをフォワードしたいのですが、
getRequestDispatcher("/jsp/filename.jsp")
のファイル名を相対パスではなく絶対パスで記述するためには、
getRequestDispatcher("
http://server/dir/jsp/filename.jsp ")
と記述すれば良いのでしょうか?
とある理由で全て絶対パスで記述するよう指示されました。
後でサーバー名の修正を簡単にするにはどういうポイントがあるでしょうか?
よろしくお願いします。
>>138 J2SE java.util.Propertiesつかえ。
Windowsのiniファイルの機能と同じモノを
メモリ空間にキャッシュできる。
140 :
デフォルトの名無しさん :2001/04/16(月) 23:51
>>138 初期化パラメータでサーバ名を指定できるようにしておいて、
init()の中で serverName = getInitParameter("serverName");
とかやっといたらどうっすか。
141 :
138 :2001/04/17(火) 21:25
レスありがとうございます。 >java.util.Propertiesつかえ。 っていうのはPropertiesファイルを作成するということですか? 今日一日かけて調べて、Propertiesファイルの作成はできたのですが、 それをどこへ配置したら良いのでしょうか? とりあえずWeb-infと同じ位置にして、 相対パスで取れないかなと思い、 prop.load("filename") としたら、駄目でした。 そこで、 prop.load("c:\\dir\\filename.properties") としたら、ちゃんと参照することができました。 でも、絶対パスを書いたら意味がないような。。。 やり方間違ってますか? よろしければ解決方法、せめて参考URLを教えてください。
>>141 ???
Properties.load()の引数はInputStreamじゃないか?
prop.load(new FileInputStream("filename"));
だと思うが。あと、相対パスでもオッケイなはずだよ。
143 :
コンパス :2001/04/18(水) 01:21
>>141 ClassLoaderクラスのgetResource()メソッドでURLクラスを取得できる。
当然クラスパス内にプロパティファイルがないと駄目だけど。
144 :
デフォルトの名無しさん :2001/04/18(水) 13:12
"getParameter()"で取得した文字ではなく、サーブレットから直接、文字を出力しようと 思うのですが、どうやっても文字化けします。 なにか、解決策はないでしょうか?
145 :
デフォルトの名無しさん :2001/04/18(水) 16:29
>144 書式(setContentType(...))を指定する時に charsetしないと、日本語使えないよ。 具体的には res.setContentType("text/html; charset=iso-2022-jp"); とか。
146 :
138 :2001/04/18(水) 22:58
いつもお世話になります。138=141です。 143さんの話しは難しそうだったので、 142さんの「できる」という言葉を信じて今日も挑戦しました。 いろいろな階層に配置してみたけどやっぱり駄目でした。 prop.load(new FileInputStream("filename")); にしてます(ソースは会社にしかないので書き忘れた)。 拡張子って必要ですか?一応、どちらでも試してます。 後、サーブレットはWeb.xmlにパッケージ名とクラス名を登録してあるけど、 それって関係ありますか?propertiesファイルも登録する?そんなわけないか。。。 この辺がよくわからないよー。社内で私よりわかる人いないし。 jspは"/jsp/jspname.jsp"でちゃんと表示できるのになぁ。 それともクラスを指定するやり方でするのかなぁ。 誰か救って!!納期がどんどん近付く~~(ToT) 以下の階層でどこに配置してどういう指定をしたらいいのですか? jsp L jspname.jsp Web-inf L classes L pac L servlet.class
147 :
コンパス :2001/04/19(木) 00:43
>>146 難しくないって。
下のかんじでOK。
なんでもリソースで取得するようにした方が、何かと便利だと思うんだけど。
で、当然クラスパス内にないとだめよん。
ClassLoader loader = ClassLoader.getSystemClassLoader();
InputStream input = loader.getResource("test.properties").openStream();
Properties prop = new Properties();
prop.load(input);
System.out.println(prop.getProperty("TEST"));
リフレクションによるメタプログラミングと、ClassLoaderの使い こなしは、Javaの真髄の一つだと思うね。 URL指定で動的にクラスローディングできるって凄い楽だとおもう。 例えば、サーバプロセスを動作したままの状態でアップデートでき たりする。
149 :
デフォルトの名無しさん :2001/04/19(木) 06:44
>>147 Weblogic使ってるけど、ファイル名を相対パスで指定する場合、
クラスパスじゃなくて、Weblogicのホームディレクトリからの相対パスになるよ。
(test.propertiesはc:\weblogicに置かなければならない)
146は置き場所が悪いんじゃないの?
150 :
デフォルトの名無しさん :2001/04/19(木) 06:52
>>146 試しに new FileOutputStream("hoge.txt")
でファイルを作ってみな。
そんでExplorerでファイル検索する。そこがホームディレクトリだ。
151 :
138 :2001/04/19(木) 07:29
ありがとうございます。 朝から涙が出そうですぅ。早速会社でやってみます。 実は、本格的にWEBの仕事するの私的にも会社的にも初めてなんです。 JAVAだって自分でコツコツ勉強して、私以上に知ってる人誰もいない。 まだまだペーペーなのに、私が開発のリーダーのような感じになってしまって。。。 でも、ここで覚えて会社でデカイ顔してやるんだ!!! と思ってがんばってます。
152 :
デフォルトの名無しさん :2001/04/20(金) 23:41
サーブレットでBeanに値をセットして JSPのカスタムタグでその値を表示する方法の サンプルor参考URLありませんか? 普通にJSPにJAVAのソースを埋め込む方法(スクリプトレット?) ならできるんですけど、 「カスタムタグでやれ」との命令が下り、 足踏み状態です。田舎なので本もありません。 どうぞよろしくお願いします。
File より Context なり CLASSPATH なりのリソース系を使うのが 比較的無難な気が。 (これのマッピングも実装系でバラバラだけど・・)
154 :
デフォルトの名無しさん :2001/04/21(土) 01:32
>>152 jsp:useBean をGoogleで検索するといっぱい出てくるよ
155 :
デフォルトの名無しさん :2001/04/21(土) 06:53
サーブレットって何がいいのでしょう? いろいろWEB見て回ったんだけどいまいちよくわからなかった。 perlプログラマにもわかるように超簡単な説明くださいませ。
156 :
仕様書完璧 :2001/04/21(土) 12:54
>>155 全てのPerlのCGIをひとまとめにして
アプリケーションと呼ぶ事はできますか?
サーブレットの集合をアプリケーションと呼ぶ、
っていうより使いこなすとそう見えてくる。
もうCGIには戻れません。
157 :
初心者 :2001/04/21(土) 20:49
みなさん、WebのApplication Serverって何を使っていますか? 最近Oracle9iASかWebsphereの導入を考えているんですけど、どうでしょ? ちなみにOSはWIN2000。 使っている方、性能の善し悪しなんかをおしえてください。 また、JSP、Servletを組むとして何で組んでいますか? JbuilderのEnterprise?Forte? 皆さんの使っているソフトを教えてください。 初心者なもんで質問ばかりですいません。
158 :
今度のプロジェクト :2001/04/21(土) 21:50
アパッチ+トムキャット+viクローン(たまにJBuilder) ちゃんと金取ってやってる仕事。
159 :
155 :2001/04/21(土) 22:21
>>156 ううむ。大変申し訳ないがその説明理解できないです。
Perl で組んだ CGI を組み合せてアプリケーションと呼ぶのはマズイのでしょうか?
CGI に戻れないというならそこらへんの深いお話しが聞きたいです。
>>155 で 超簡単な説明くださいませ とか書いといてすんません。
160 :
Webアプリは... :2001/04/21(土) 22:50
161 :
デフォルトの名無しさん :2001/04/21(土) 23:35
WebSphere3.5+DB2+VisualAgeJava でやってます。 最低メモリは1GB欲しい>WASサーバ
162 :
デフォルトの名無しさん :2001/04/22(日) 02:24
>>101 なにも考えずに、すべて getSession(true); でやってみそ。
ところで、J2EE API マニュアルの日本語版ってどっか無いかなぁ。
163 :
162 :2001/04/22(日) 02:27
すまん。タイムマシンに乗ってた。 # 101 っていつだ?
>>155 なんにしろJava であるってのがでかい。
まずは保守性。XML や JDBC のような標準化されたライブラリの多さ。
あとメモリ上にずっといるってのが大きい。毎回プロセスが起動するのは
負荷はさておいてもセッション管理が面倒。
あとは JSP が便利かな。PHP とか ASP とちがってロジックを分離できるので
気持ちが落ち着く。(開発の分担が楽)
規模によってはもちろん CGI が良いって場合も多々ある。
165 :
謎 :2001/04/22(日) 05:48
HORB
166 :
デフォルトの名無しさん :2001/04/23(月) 11:03
みなさんにお聞きしたいことがありますので、質問させてください。 私はPerlでCGIを作ることができるのですが、今後のステップアップのためにJSPを 勉強しようと思っています。そこで質問なのですが、JavaサーブレットはPerlやPHP と比べて生産性はどうなのでしょうか? みなさんがWeb系のシステムを構築するのに、Javaサーブレットを選択された理由を お聞かせ願えるとありがたいです。よろしくお願いします。
167 :
無党派さん :2001/04/23(月) 12:11
168 :
デフォルトの名無しさん :2001/04/23(月) 22:30
サーブレット+JSPで、DBを検索して画面に結果を表示させたいです。 Beanにはテーブルの項目名を持たせます。 データが複数件ある時はどのように処理したらよいですか? ArrayListを使おうと思ってますが、どのように使ったらいいかわかりません。 Bean MyBean = new Bean(); ArrayList MyList = new ArrayList(); While(rs.next){ MyBean.setDbValue1(rs.getString("列名1")) MyBean.setDbValue2(rs.getString("列名2")) MyList.add(MyBean) } : : request.setAttribute("mybean",(Bean)MyList.get(0)); 自分でなんとか考えた1件だけあった時のソースです。 複数件の時はどこをどう変えたら良いのでしょう???
なんでその ArrayList をそのまま詰めない・・・・謎だ。
170 :
デフォルトの名無しさん :2001/04/24(火) 07:37
そうするとJSP側で受け取るのはBeanでなくても良いの?
171 :
デフォルトの名無しさん :2001/04/24(火) 16:23
JDBCを使って他のマシンのDBにアクセスするにはどうしたらいいですか。 使用しているのはAccess97です。
ArrayListだってBeanだ
173 :
168 :2001/04/24(火) 21:59
jspでMyListをBeanにキャストしたらできました。 なるほど、こういう使い方もできるのですね。 ただし!別スレにも書きましたが、 for文で回して、get(i)で取り出すと、 最後にセットしたBeanの値が出てきてしまいます。 どこが問題なんだろう。
174 :
デフォルトの名無しさん :2001/04/24(火) 22:53
scriptletでサッサと済ますとか <% Bean[] beans = (Bean[])request.getAttribute("mybeans"); if ( beans != null ) { for ( int i = 0; i < beans.length; i++ ) { out.println(beans[i].toString()); } } } %>
175 :
デフォルトの名無しさん :2001/04/24(火) 22:56
>>最後にセットしたBeanの値が出てきてしまいます。 >>どこが問題なんだろう。 whileの中で new Bean(); してないからでしょ
176 :
168 :2001/04/24(火) 23:13
とりあえず明日会社でやってみます。 ありがとうございます。 >whileの中で new Bean(); してないからでしょ これって、レコードセット取得する時ってことですか?
177 :
一仕事おわった! :2001/04/25(水) 21:32
>>157 思ったよかJServ安定してる。Intel Solarisいれると
勝手にはいっちゃったりするおちゃめさんだし。
個人的評価では
JServ > tomcat > websphere > jrun >>>>> InterStage
かなぁ。
InterStageっちゅうか、あれについてるDBがだめ。
178 :
Java初心者 :2001/04/26(木) 11:05
どなたか教えてください。 J2EEの対応OSはWin NT4.0/2000、Solaris、Linuxとなってますが、 Win 95/98で動かしたいのです。 「起動用のバッチファイルなどをいくつか修正すれば正常に動作する」 なんて話を聞いたことがあるんですが、具体的にどのファイルを どう修正すればいいかご存知だったら教えてください。
179 :
デフォルトの名無しさん :2001/04/26(木) 11:16
>>178 動かないの?知らなかった。
起動用のバッチってサーバ起動のやつですか?
180 :
デフォルトの名無しさん :2001/04/26(木) 16:03
サーブレットを使用して Linuxサーバー上でフォルダの所有権を変更したいのです。 (フォルダ生成時にroot以外の所有権を持たせても可) 何かいい方法はないでしょうか?
181 :
デフォルトの名無しさん :2001/04/27(金) 00:08
フレームで分割されたHTMLをサーブレットで呼ぶにはどうしたら良いでしょうか? メニュー(html)メイン(jsp+Bean)で構成されています。 今はフレームの構成が設定されているhtmlをfowardしています。そうすると、 HTTPエラーがそれぞれのフレーム内に表示されてしまいます。
182 :
デフォルトの名無しさん :2001/04/27(金) 07:07
>>180 runtime.execでシェルスクリプトを実行すればいいよ。
csh chown..で直接実行してもいい。
でもnobodyであまり権限ないから気をつけてね。
>>181 言ってることが分からないけど、フレームを作成したいなら、
フレームメインと、それぞれのフレームに対応するサーブレット
作成すればいいよ。
特定のフレームを決め打ちして実行したいのなら、Formのtarget
指定すればいい。どっちかってぇとJavaScriptな話題なのかな?
ttp://www.irt.org/でほぼ解決すると思うよ 。
183 :
デフォルトの名無しさん :2001/04/27(金) 07:09
だれかoracleのutf-8をサーブレット環境で使ってる人 いますか? 文字の"-"が化けちゃいます。内部コードがutf-8 とJavaのunicodeではちゃうんでしょうかね。誰か 解決策ご存じでしたら教えて!
184 :
デフォルトの名無しさん :2001/04/27(金) 07:55
185 :
180 :2001/04/27(金) 11:49
ご助言、ありがとうございます。 Runtime runtime = Runtime.getRuntime(); runtime.exec("chown 所有者 フォルダ名"); でうまくいきました。
186 :
デフォルトの名無しさん :2001/04/27(金) 13:27
サーブレット初心者です。 今、書籍などで勉強中です。質問があります。 サーブレットってライフサイクルがありますよね。 (init()→service()→destroy()って言う流れで。) で、最初のリクエストでinit()、service()が実行されて service()メソッドがその後のリクエストを待つ。 destroy()が発行されるためにはコンテナ(エンジン)を再コンパイル するか、もしくはdestroy()を明示的にオーバーライドしたプログラム を再コンパイルしなければいけないって本にかいてあったんですけど、 これってほんとですか? 業務でつかうとなると、そんなコンテナの再起動は出来ないと思うし、 でも、そのままだとサーブレットの数が増えるにしたがって サーブレットインスタンスのためにリソース足りなくなったりしない のですか? それとも、 サーブレットのインスタンスのリソースの消費率なんて微々たるもの なんですか? もしくはコンテナのほうでサーブレットの上限を設定できるとか? うーん、だれかおしえてください。
187 :
182 :2001/04/27(金) 13:40
>>184 情報ありがとうございます。やはりOracleutf-8
とJava内部でのUnicode実装が違うみたいですね。
ということはthinDriverでなくすると意外に
よめちゃったりするんだろうか。解決方法に
悩みますね。
188 :
デフォルトの名無しさん :2001/04/27(金) 14:00
>>186 結構本当です。開発中はどのようにリセット
するかが問題になります。が、あまり問題に
ならない処理系もあります。経験的な話で,
申し訳ないですが、サーブレット起動の一番
頭のクラスファイルの日付で自動更新される
処理系が多いです。サーブレットスレッドの
上限はたいてい設定できると思います。
リソースは喰いまくりです。なるべく消費しない
ようにしましょう。
189 :
187 :2001/04/27(金) 14:15
>>188 早速のレスありがとうございます。
やっぱりリソースくいまくりですか?
気をつけます。
>サーブレット起動の一番頭のクラスファイルの日付で自動更新される
>処理系が多いです。
↑すいません。ここでいう処理系っていうのはサーブレットコンテナの
ことでしょうか。
それとも、そういう処理(リソースを解放するプログラム)を自分で
つくろうということですか?
190 :
186 :2001/04/27(金) 14:22
189です。 僕の名前が187になってすが186です。
191 :
188 :2001/04/27(金) 18:45
>>189 サーブレットコンテナっちゅうかサーブレットエンジンですね。
みたかぎり非常に楽なのがJServ,Tomcat。
JRUNは今ひとつ不明な動作がありますね。
そうそう、JSDKは毎回サーバ立ち上げ直さないと
だめですね。stopとstartのコンビのバッチ作ってます。
リソースはやはりDBアクセス大きいですね。
connectionは1セッションに1つにしましょう。
192 :
181 :2001/04/28(土) 09:00
フレームメインに下のように設定して <FRAMESET> <FRAME name="frame1" src"menu.html" > <FRAME name="frame2" src="サーブレット" > </FRAMESET> このフレームメインを呼ぶようにすればいいとうのはわかりましたが、 問題は、サーブレット内でDBを検索して、 該当データがあったらフレームあり、 該当データがない時はフレームなしで単独の画面にしたいのです。 どういう方法があるでしょうか? どなたかご存知の方お願いします。
193 :
デフォルトの名無しさん :2001/04/28(土) 09:34
>>192 だからtarget決めるだけだと思うけど??
サーブレットがやるのは、その根っこの
htmlを吐くときに
>>192 みたいなフレームに
するか、フレームなしhtmlにするかだけでしょ?
targetきちんと決めればフレーム中のフレームとか
任意のところ狙えるじゃん。
194 :
181 :2001/04/28(土) 11:54
忘れてた。サーブレットではJSPをFowardしてます。 今は、ただメインフレームを呼ぶと サーブレットが起動して、サーブレット内で指定したJSPが そのフレーム内に表示されます。 193さんのやり方だと、 まず、サーブレットによりメインフレームを吐き出し、 そうするとそのフレームで指定したサーブレットがまた起動、 というような1画面表示するのに2回サーブレットを起動させる イメージでよろしいですか?
195 :
181 :2001/04/28(土) 11:56
もう1つ質問。 <FRAME name="frame2" src="サーブレット" > これをPOSTで呼びたいんですけど、それは可能ですか?
196 :
デフォルトの名無しさん :2001/04/28(土) 22:45
>>195 JavaScriptと組み合わせれば可能だろうけど、なんでGETじゃダメなの?
197 :
デフォルトの名無しさん :2001/04/30(月) 23:39
すみません、JSPでの文字コードの件なんですけど。 JSPに関係する文字コードって、 ・JSPのコードを書いたときの文字コード ・JSPコード内の「ContentType」で指定してある文字コード ・そのJSPを実行する処理系の文字コード の3つが関係しあうと思うのですけど、揃えないといけないものは どれとどれで、揃えなくて良いのはどれですか? 例えば、Win環境でJSP書いて、空リス上で実行するときには、 ソースがSJIS、ContentTypeもSJIS、実行環境のデフォルト文字コードは EUCになると思うんですけど、そういう場合は、ソースもContentTypeも EUCで書かないといけないとか、そういうことはあるんでしょうか。 もSJIS、
198 :
デフォルトの名無しさん :2001/05/01(火) 08:10
>>194 サーブレットと考えない方がいいとおもうんだけどな。
作り方にもよるけど必要なhtmlの数だけservletが必要だと。
もちろん同じservletで出力切り替えるのはできるけど
簡単に考えるならね。
>>195 たぶんセキュリティなんだと思うけど、そういうのは
セッションオブジェクトにつむのよー
199 :
186 :2001/05/01(火) 09:38
>>188 ,191
188さんどうもありがとうございます。
現状WinNT+Apache + Tomcatでサーブレットを
うごかそうとおもっています。
(あくまで勉強用の環境ですが、、)
で、たびたびもうしわけないんですが、
>サーブレット起動の一番頭のクラスファイル
>の日付で自動更新される処理
ってもう少し詳しく具体的に教えてもらえませんか?
ウチの社員に質問されまくりで困ってます。
もしくは詳しいドキュメントとかあればおしえてほしいです。。
age
201 :
デフォルトの名無しさん :2001/05/02(水) 13:05
あれー、ここのスレ、見え方おかしくなってますね。 コメントきれてたりしてますね。おれだけかな。
>>191 JServって、Tomcatの昔のバージョンの名前じゃないんですか?
別のモノ?
すみません。どなたか助けて下さい。 ClassLoader loader = ClassLoader.getSystemClassLoader(); InputStream input = loader.getResourceAsStream("properties"); こんな感じにプロパティファイルを取得したいのですが、 どうしてもgetResourceAsStreamでストリームが取得できません。 サーブレットのクラスパスのルート(WEB-INF/classes/)にファイルを置いて ありますがなぜか読み込めません。どうしてなのでしょう・・・ #助けて下さい。
204 :
デフォルトの名無しさん :2001/05/04(金) 23:40
揚げ忘れました。
205 :
デフォルトの名無しさん :2001/05/05(土) 01:01
なんとか解決出来ました。 System.getProperty("java.class.path") でクラスパスを調べたところ、実はWEB-INFなんかの サーブレットを収めるところは実はクラスパス、通ってなかったんですね。 それで、パスの通っている場所にファイルを置きましたところ 読み込めました! #それではどうやってサーブレットは呼び出されるんでしょうか・・・(謎
206 :
デフォルトの名無しさん :2001/05/07(月) 10:12
207 :
デフォルトの名無しさん :2001/05/08(火) 17:25
VisualAge3.5を使っています。 ViusalAgeのWebSphereテスト環境を使いたいのですが、 テスト用のWebサーバにサーブレットをどうやっておくのが 常道なんでしょうか? 先にフォルダにjavaファイルをつくってインポートすると、 classファイルもそこに生成されますか? それともコンパイル→エクスポートを繰り返さなくてはならいとか?
208 :
デフォルトの名無しさん :2001/05/08(火) 17:56
知ってるか?某F社のODBC-JDBCはqueryするだけでも commitしないとだめなんだぞ。かなりクラクラ きて、文句つけたら「仕様」なんだと...
209 :
デフォルトの名無しさん :2001/05/09(水) 11:39
210 :
デフォルトの名無しさん :2001/05/09(水) 13:58
VAJ3.5Professionalを使っています。 VAJでサーブレットを作成して、 コンパイルしたときにWebサーバのservletの実行フォルダに 自動的に出力するようにできますか? VAJでWebアプリの作り方の常道みたいのがあれば 教えてください
211 :
デフォルトの名無しさん :2001/05/09(水) 14:24
個別の環境はわからないなー。 うちはJDKとJSDKしか使ってないからな。 結構サーバーでコンパイルする人いるけど 必要ないと思います。開発は95/98/meで十分。 あとファイル日付更新管理するソフト作って 活用してます。
212 :
205 :2001/05/09(水) 21:10
>206 ClassLoaderの取得をこのようにしたら大丈夫でした。 WEB-INF/classesの下のリソースも取得できるようになりました。 this.getClass().getClassLoader() それにしてもクラスパスってよくわからないなー
213 :
デフォルトの名無しさん :2001/05/09(水) 21:46
>>211 J2EE1.3やりたいので、Win98系じゃなくてせめてNT系にしましょうよ。
214 :
デフォルトの名無しさん :2001/05/11(金) 02:20
J2EEとJ2SEの違いって、JTA?(トランザクションの管理する人)とか EJBが使えるAPIがついてるってだけで、 TOMCATとかでJ2SEでやってたのを、J2EEにしてもJDBCのPOOLINGも EJBでトランザクション管理とかも部品もしくはアプリケーションサーバ などを買ってこないと出来ないのでしょうか? その他、J2EEにするといいことってなんかあるんですか? (というか、基本的な考え方が間違ってるのか?)
215 :
デフォルトの名無しさん :2001/05/11(金) 10:47
データベースから受け取ったデータをブラウザに表示するプログラムをつくっています データベースからレコードひとつずつ受けとりつつ、 それをHTMLにしてStringなどにいれるのがいいのか、 全部受け取ってからあとで加工するのはどちらがいいのでしょうか データベースにURL TITLE COMMENTの3つの列があって、 ブラウザには <TD><A HREF ="URL">TITLE</A>COMMENT</TD> と言う風に表示します
216 :
デフォルトの名無しさん :2001/05/11(金) 23:29
>>215 ServletからJSPを呼ぶってのはダメなのか?
その方がすっきりすると思うが。
217 :
デフォルトの名無しさん :2001/05/12(土) 00:37
>>215 質問の意味がいまいちわかんないけど、こうしたいの?
Statement stmt = conn.createStatement();
try {
final String sql = "SELECT URL, TITLE, COMMENT FROM ...";
ResultSet rs = stmt.executeQuery(sql);
try {
while (rs.next()) {
String url = rs.getString("URL");
String title = rs.getString("TITLE");
String comment = rs.getString("COMMENT");
...
out.println("<TD><A HREF=\"" + url + "\">"
+ title + "</A>" + comment + "</TD>");
...
}
} finally {
rs.close();
}
} finally {
stmt.close();
}
即興だからバグは許して。
218 :
217 :2001/05/12(土) 00:37
あ、ごめん。 インデントなくなっちゃった。
>>214 JMAとかJNDIとかJTAとかって、その気になれば自分でも実装できる
だろうけど(まあ、その気になればRMI相当だって自分でプロトコル
実装できるしね)、そういうのがAPIになってて、今更作って試験して
という作業しないで済む標準な手段があるのって、すっごい楽でいいと
おもうけど。
220 :
デフォルトの名無しさん :2001/05/12(土) 01:27
age
221 :
214 :2001/05/12(土) 01:41
>>219 うん、確かにそれはすごく分かる。だって、楽したいもん。
でも、結局はベンダー(AP鯖など)に依存してて貧乏プロジェクトや
個人では使えないってことでよいのかな?
まぁ、個人で使うってことってないと思うけど(藁
貧乏プロジェクトで使いたいとなったら自分たちで実装して試験して
って、やってるくらいならJ2SEで無理やりゴリゴリ作っちゃったほうが
早いのかなって思う。
222 :
デフォルトの名無しさん :2001/05/12(土) 12:42
>>210 とりあえずネットワークで共有しておいて
export で Directory 書き出しするとか。
たぶん、IBM的にはWebSphere Studioを組み合わせろ、
ってのが本流なのかな?(自分は使ってないけど
223 :
デフォルトの名無しさん :2001/05/16(水) 23:07
まだServletはマイナーかなage
224 :
デフォルトの名無しさん :2001/05/17(木) 02:44
225 :
デフォルトの名無しさん :2001/05/17(木) 10:51
今度スレあげるときはJSPとServletは一緒にすべきage
サーブレット楽でいいじゃん。 関係ないけど、HORB使えって平野さんいってた からこれから実装sage
EJBを学び始めたんですがバリバリ使ってる人います? うちのチームはサーブレットばかりか、Javaも初心者なので、 技術的なレベルの問題で使う機会はなさそう・・
228 :
バカプログラマ :2001/06/02(土) 20:39
うちらのチームもJSP&Servletを使い始めましたが、みな初心者です。 で、MVCモデルにのっとって (というかWebSphereStudioのジェネレータがはいたコードを書き換えて)、 プログラムを組んでいるのですが、 どうしてもJSPひとつにつきコントローラもひとつと言う形になってしまって プログラムファイルの数が甚大になってしまいます。 ひとつのコントローラで複数のJSPからの要求をうまく処理する方法ってないものでしょうか? 初心者ですみません。
229 :
デフォルトの名無しさん :2001/06/02(土) 20:44
ファイルの数が莫大なのってまずい? たとえばコントローラをひとつのファイルにしてしまうと みんながそのファイルをいじりたくなって、 効率がおちないかなぁ おれも初心者だから教えてほしい
230 :
デフォルトの名無しさん :2001/06/05(火) 11:54
生サーブレットってよくないか? ちょっと思い立ってサーブレットBBS作ったけど、 便利だぞ。staticなメッセージクラスがexpireするときだけ ファイルに書き込みだ! でもクラス名考えないとstaticだからね。 しかも書き込みはWriteObject1行でおしまいだ。 同じ仕組みでchatもできる。
231 :
デフォルトの名無しさん :2001/06/08(金) 00:26
サーブレットのサンプルソースが見られるところ知りませんか? ・掲示板 ・オークション ・ショッピングカート などを探してます。 自分で作ってみたんですが、できれば人のソースもみて改善すべきところや、 実装のセオリーをしりたいです
232 :
デフォルトの名無しさん :2001/06/08(金) 08:35
>231 掲示板は掲示板日記で見つかると思う。 オークション、ショッピングカートは奥が深いのよ。 ただでは見せられない。了見狭い俺なのさ。
233 :
名無しさん@お腹いっぱい。 :2001/06/08(金) 10:13
>>232 んなこといわず、インターフェースだけでもみせてくで
234 :
デフォルトの名無しさん :2001/06/08(金) 15:46
>>233 しょーがないなー。
tabi100.com
235 :
デフォルトの名無しさん :2001/06/15(金) 16:24
オークションで時間切れの出品物を削除するのは SQL一発でOK?
236 :
デフォルトの名無しさん :2001/06/16(土) 03:38
セッション管理なんですけど クライアントが同じ画面を二つとか 三つ立ち上げた時ってどうやって 管理すればいいんでしょ。
Javaサラブレット
>>236 画面ごとにユニークなIDでも振ってhiddenタグでも使ったら?
各々の画面で保持したいオブジェクトはHashtableに突っ込んで置いて
それをユニークなIDをキーとしてsessionオブジェクトに入れておく、とかね。
239 :
デフォルトの名無しさん :2001/06/17(日) 08:08
かき氷とservletはじめました PerlのText::Template.pmみたいなことできる ありものText文字列変換classないでしょか? (Perlのハッシュ変数が便利すぎてservlet挫折かも)
240 :
デフォルトの名無しさん :2001/06/20(水) 19:13
ふたつのWebサーバがいて、片方のサーバのServletへのPOSTリクエストを もうひとつのサーバのServletへPOSTとして転送する方法ってないかなぁ。 sendRedirectだとリクエストは無視されるし、RequestDispatcherだと 同じサーバじゃないと転送できない・・・
241 :
デフォルトの名無しさん :2001/06/20(水) 23:25
動画や画像ファイルにアクセス制御するのってどうやってますか? ふつうに誰でも見れるところに置くのはちょっと出来ないのです。 ログインしたユーザーのみ見られるとかってできないかなぁ・・・
242 :
デフォルトの名無しさん :2001/06/20(水) 23:27
>>241 ServletでMIME type(Content Type)をimage/jpegとかにしたらいいだけじゃない?HTTPわかってる?
243 :
デフォルトの名無しさん :2001/06/21(木) 00:08
Responseのどこにファイル名を設定したらいいのでしょうか?
素人丸出しですみません・・・
>>242
244 :
243 :2001/06/21(木) 00:12
sendRedirect()じゃ、みんなが見える位置にしかファイルを 置けないですよね?
245 :
243 :2001/06/21(木) 00:31
まず、HttpServletResponse#addHeaderで、
MIMEを設定して、それから
javax.servlet.ServletResponseWrapper#getOutputStreamで、
ServletOutputStreamを取得して、printメソッドで書き込めば
いいんですね?
>>242 あってますか?
246 :
デフォルトの名無しさん :2001/06/22(金) 15:55
基本的な質問かもしれないんですが、
リダイレクトを使うときは
out.printは使わないのがベターなんでしょうか?
closeもしくはflushすればエラーはでないのですが
closeとflushの違いがいまひとつわからないです
Error 500
要求の処理中にエラーが発生しました :
http://localhost:8080/servlet/Test メッセージ :null
ターゲット・サーブレット : null
StackTrace:
--------------------------------------------------------------------------------
Root Error-1: null
java.lang.IllegalStateException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.IllegalStateException() void
public void doPost(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
out.print("test");
out.close();
//out.flush();
ServletContext sc = getServletContext();
sc.getRequestDispatcher("Result.html").forward(
request,
response);
//out.print("test2");
} catch (Throwable theException) {
}
}
247 :
デフォルトの名無しさん :2001/06/22(金) 21:29
>>246 flushだと、出力は続いているから、ブラウザと入出力が続いている。
延々と持ち続ければ、画面をどんどん更新したりするプログラムが
かける。closeすると縁が切れて、ブラウザは描画に専念する。
248 :
デフォルトの名無しさん :2001/06/22(金) 21:41
つながってる状態でrquestDispatcher.foward すなってことですね
249 :
デフォルトの名無しさん :2001/06/23(土) 00:45
マルチポストになるのですがむこうではリプライがなかったのでサーブレット/JSPの プロがいると思われるここへ書かせていただきます。 コアサーブレット&JSPと言う本で勉強しているのですがエクセル表示で詰まってます。 本どうりpage contentTypeでエクセル表示を指定、テーブルに値を代入 <%@ page contentType="application/vnd.ms-excel" %> <TABLE BORDER=1> <TR><TH> </TH><TH> a</TH><TH> b</TH></TR> <TR><TH>aaaa</TH><TD>100</TD><TD>200</TD></TR> </TABLE> のように書いてもエクセル表示できません。response.setContentTypeやデータを タブ区切りにしても駄目でした。エクセル2000も入ってます。IEは5.5を使っています。 他になにか設定が必要なのでしょうか?
このようにしたらできるようになりました。ありがとうございました MimetypesFileTypeMap ftm = new MimetypesFileTypeMap(); String str = ftm.getContentType("c:/aaa.gif"); response.setContentType(str + "; charset=Shift_JIS"); ServletOutputStream out = response.getOutputStream(); BufferedOutputStream bos = new BufferedOutputStream(out); FileInputStream fis = new FileInputStream("c:/aaa.gif"); int filesize = fis.available(); response.setContentLength(filesize); byte[] bytearray; bytearray = new byte[filesize]; Integer integer; int i = 0; int data; while (i < filesize) { data = fis.read(); integer = new Integer(data); bytearray[i] = integer.byteValue(); i++; }
つづき bos.write(bytearray); bos.flush(); bos.close(); out.flush(); out.close(); return;
>>250 File file = new File("c:/aaa.gif");
fis = BufferedInputStream(new FileInputStream(file));
int filesize = file.length();
とか、
while (i < filesize) {
int size = fis.read(bytearray,i,filesize-i);
i += size;
}
とかやろうよ
>>252 ありがとうございます。
java.io.*は初めて使ったのでこんなになってしまいました。逝ってきます・・・
レスつかないので号泣していたところ昨日なぜかエクセル表示できました。 なんもやってないのに。こないだは何やっても駄目だったのに。自分7不思議 に入れときます。
255 :
デフォルトの名無しさん :2001/06/26(火) 11:07
タグライブラリについて教えて下さい。 JSPのタグを自作できるとの事ですがこれは結構重要な事なのでしょうか? XMLをXSLやpaserで操作するようなものですか?それならXMLで事足りるような 気がするのですが。どうもpaserを自作するような感じに思えてしまうんですが。 トンチンカンな事ぬかしてたら叩いてください。
256 :
デフォルトの名無しさん :2001/06/26(火) 16:15
TOMCATが生成してくれるjasper.logが、文字化けしちゃって 盛大に困りまくっているのですが、なんとかなりませんやろか?
257 :
デフォルトの名無しさん :2001/06/26(火) 23:27
>>255 カスタムタグは便利ですよ。
JSP Spec を読んで,勉強してみてはどうですか?
(ちなみに、かなりトンチンカンな事をおっしゃってますので
お気をつけてください。)
258 :
デフォルトの名無しさん :2001/06/26(火) 23:46
EJBはServlet、JSPほどメジャーになってないけど実際のシステム開発 にはどんどん導入されてるよ。EntityBean(CMP)とスレートレスSessionBean は開発経験した。EntityBeanは使いどころ間違うとパフォーマンスが激烈に落ちるから 注意しないといけないけどね。EJB2.0で導入されたメッセージ駆動型Beanを 各アプリケーションサーバは実装したらもっと使われるようになるだろうね。 (今のとこメッセージ駆動型Beanに対応してるのはWeblogicくらいか?)
259 :
デフォルトの名無しさん :2001/06/27(水) 00:01
PerlCGIが使えるレンタルサーバ、ウェブスペースは多いのに JavaServletJspが使えるとなると高価な専用サーバくらいし かないのは何故?TOMCATってただで導入できるはずなのに・・・
260 :
デフォルトの名無しさん :2001/06/27(水) 00:04
>>256 文字化けって…
もしかして、Unicode?
261 :
デフォルトの名無しさん :2001/06/27(水) 00:26
>>259 実際問題セキュリティ関係が難しいよ。全員がひとつの
プロセス内で動いているわけだから、UNIX のファイルパーミッ
ションを利用できないとか、ある人のサーブレットがリソース
(メモリ/CPU) 食いまくると他のサーブレットの速度が落ちる
とか。1 スレッドあたりの メモリ/CPU 使用率まで制限しようと
思ったら、プロバイダが Java VM 作るしかないね。後はユーザ
ごとに Tomcat 立ち上げるとかだけど、Tomcat が落ちたときの
リスタートは誰がやるか、とか。現状、プロバイダにとってセールス
トーク以上のメリットがないし。
カスタムタグは使うだけが吉。作り方を覚えてる間にどんどん出てくるから。 (当初の)JavaBeansと同じ思想だ。
ちと意味不明だな。スマソ
264 :
デフォルトの名無しさん :2001/06/27(水) 18:26
同時に存在するセッションの数を制限したいのですがぁー Tomcatでー どうしたらー よいー?
server.xmlのどっかに上限値がかいてあったと思う。
266 :
デフォルトの名無しさん :2001/06/27(水) 23:13
>>265 それは、セッションのタイムアウトではなくて?
間違ってたらゴメソ。
うう、ゴメソ。 それはweb.xmlでした・・・。 逝って来ます・・・。
レスありがとう。かなりトンチンカンなやつです。ホンのいくらか勉強してみました。 サ-バーサイドでのサブルーチンですな。(またもやおかしい?)
今思いついた。これってプログラマとデザイナを分けるってこと? <myjsp:unko><%--ここにはウンコを入れといてね(はあと)--%> とデザイナが書いておけばいいというわけだな。これが最大の利点 なのかな?
270 :
デフォルトの名無しさん :2001/07/03(火) 22:35
検索機能のユーザの入力補助で 参照サブウインドウを開くプログラムを作ってます (企業コードをサブウインドウの中から選ばせる) サブウインドウはDBから企業名と企業コードの一覧を とってくるのですが、サブウインドウが開いてから 中身が表示されるまで3秒くらいかかってしまいます。 (レコードは40件くらい) いくらがんばってもDBから引っ張ってくる限り 遅いのは覚悟すべきなんでしょうか?
>>270 そのウインドウに入るときに、threadで、セッションに
突っ込んでおいたら?セッションにはいってなかったら
もう一度検索するってことで。
272 :
デフォルトの名無しさん :2001/07/04(水) 18:28
>271 ありがとうございます connectionPoolingなどいろいろ考えていましたが、 ページに入ったときにセッションにいれるのは いい感じですね タイミングとか難しそうですがためしてみます
273 :
デフォルトの名無しさん :2001/07/04(水) 18:42
HTMLのselectのなかのoptionの値って どうやって受け取ればいいのでしょうか? <SELECT> <OPTION value="0" name="option1" >option1 </OPTION> </SELECT> はだめみたいで getParameter("option1"); はnullになってしまいました
274 :
デフォルトの名無しさん :2001/07/04(水) 19:47
>>273 nameはselectの属性じゃないの?
275 :
デフォルトの名無しさん :2001/07/06(金) 17:53
今度はじめてSolaris+Servletシステム設計開発やるんだけど なんか助言ある?
277 :
デフォルトの名無しさん :2001/07/06(金) 20:23
>>273 それはサーブレットの問題じゃなかろう
HTMLも勉強しろや。
<SELECT NAME="test">
<OPTION VALUE="0" >option1</OPTION>
<OPTION VALUE="1" >option2</OPTION>
</SELECT>
>>276 サーバサイドでは安易にシングルトンを使うな、かな。
他にも思い出したら書く。
279 :
デフォルトの名無しさん :2001/07/06(金) 21:25
>276 業務が忙しくなる前に、APサーバ周りのツール類を使いこなせるようにすること エディターでがんばっちゃう人もいるが生産性が断然ちがう
280 :
デフォルトの名無しさん :2001/07/07(土) 21:42
>>280 サーバサイドのプログラミングはマルチユーザ、マルチ
スレッドが基本。安易にシングルトン使う人ってマルチユーザ、
マルチスレッド意識してない人が多いのよね。で、後で
synchronized つけようとしても全ユーザの全スレッドがその
シングルトンの部分でシリアライズされちゃったり。
それから、Java のシングルトンはシステムに対してひとつでは
なく、クラスローダーに対してひとつだということを意識して
おかないと後々やばいよ。
実例挙げればきりないけど、今までサーバサイドのフレーム
ワークの中枢部分にシングルトン持ち込んだ莫迦SEのアプリ
開発はことごとく動かなかったという経験則から (俺ではない)。
ツール程度なら問題ないかもしれないが十分注意。
ちなみにそいつは COBOLER。プロシジャ型言語しか設計したこと ない人に Java の設計させてみると、大抵シングルトンとコマンド パターンを設計の中核に持ってくるよ。
>>281 -282
サブレの経験はないがOOP畑の勘(わら)として、
凄く適切な解説だと思う。
プロシジャを中心に考えちまったら、
(少なくともOOPシステムであるJavaってものは)
全然旨く動かなくなるんだよな。
だから、OOPの効能を機能(=プロシジャ)ベースで説明しよう
などとしている入門書は、全部ドキュだ。焚書しろ焚書。
とりあえずコードレビューする人は grep で static 宣言引っ掛けて、 その変数/メソッドがマルチスレッド対応してるかくらい確認せれ。 大抵何ヶ所か未対応部分が見っかるぞ。個人的には static を使用 する部分には設計責任者の承認ハンコくらい必要だとも思っている (極論だが; もちろん static final は除外して)。
static じゃないメンバ変数もヤバいと思うぞ?
>>281 激しく同意。XMLじゃないけどサーブレットにネームスペース
導入して欲しい..ってパッケージ宣言か(w
関係ないけどtomcatでstatic使ったchat作ったら、サーブレット
削除してもずーっとメモリーに残っていてかなりあせった。
287 :
278 :2001/07/08(日) 22:09
>>285 もちろん。とりあえず static はクリティカルにマルチスレッドの
影響を受けやすいというコトで。
>>286 多分オートリロードを期待して前のオブジェクトがメモリ上に残った
ままになったのかな?
>>281 でちょと説明不足だったけど static なイン
スタンスはクラスローダーに対して1個ってのはそう言う意味もあった。
288 :
280 :2001/07/08(日) 22:13
>>278 さんきゅ。
使う必要ないとこで、適当にSingletonにしたらはまると。
SingletonってLogin管理するクラスとか、ConnectionPoolみたいなのに
使うと思ってたから、安易なとか言われても想像のつかないとこではあるが。
マルチスレッドなんだから、同期非同期意識してるよな?という意識が
いるってことね。
289 :
278 :2001/07/09(月) 17:16
ログ出力とかキャッシュ機能みたいにシングルトンでまとめて管理しておきたい 部分はどうしても出てくるよ。シングルトンにすべきところとやっちゃいけない ところの見極めが、よく意識しないと見えにくいかな。なんせ非同期の問題は 単体テスト通っちゃうんだから。 オブジェクトの集約関係があるでしょ。あれを洗い出せば、オブジェクトのイン スタンスが全ユーザに対してひとつなのか、ユーザごとにひとつなのか、もしく は毎回使い捨てなのかが明確になるはず。マルチスレッド初心者にはスレッドごと にインスタンス使い捨て部分を任せたほうが良い。アプリケーションロジックを 実装した Bean を HTTP セッションに入れて、サーブレットからそれをつつく だけのような設計にしてみ。少なくともその Bean 作る人のスキルをシングル ユーザマルチスレッドまで落とせるから (だからオブジェクトの関係を意識 しないプロシジャ型設計はサーバサイドに向いていない)。 # 前に書いたエキスパート COBOLERs + 初心者 VB 使いたちのデスマーチは # 毎回上記の問題を繰り返している…。これもスパイラル開発の一種? (藁
290 :
デフォルトの名無しさん :2001/07/09(月) 18:21
私も同じコト考えてました。
>>278 -289 はかなり的確に表現してる
と思います。
>>289 のようにインスタンスのスコープによってスキル
レベル分けるのが良いですね。
・リクエストスコープ (シングルユーザー、シングルスレッド) = 初心者向け
・セッションスコープ (シングルユーザー、マルチスレッド) = 中級者向け
・アプリケーションスコープ (マルチユーザ、マルチスレッド) = 上級者向け
そうなるとサーブレット実装する人は上級者ということになってしまい
ますが。。。
激しくアゲとこう。
292 :
デフォルトの名無しさん :2001/07/11(水) 00:59
なんでtomcatはあんなんでしょうか? フリーのものの中でも最悪の部類に入りそうなものなのに、 なぜかサーブレットエンジンとなると"TOMCAT!!"ってなるのがどうもねぇ。 他に良さそうなものって沢山ありそうなもんだけど、ないのか?
293 :
デフォルトの名無しさん :2001/07/11(水) 01:12
JRunRunRun♪
294 :
デフォルトの名無しさん :2001/07/11(水) 01:23
292desu 一応仕事はしてくれるってのが一番始末に悪い。 動いたり動かなかったり。。。こっちはもう心身ボロボロだっての!
>>292 Resinいいんじゃない?
ちょっとしか使ってないけど日本語は普通に通ったよ。(shift_jis)
296 :
デフォルトの名無しさん :2001/07/11(水) 01:59
>>295 それは知ってる。Resinの使いやすさや速度は。
でも今回は仕方ない。金ないし時間ないし。
それにオンボロtomcatにしても使いこなしている人だっている
わけだし。。。
今度ソースいじって自分で直すか。。。めんどくさ
それにしてもResinはバージョンアップの頻度が高いですな
297 :
デフォルトの名無しさん :2001/07/11(水) 15:19
DBBeanがデータベースの検索結果をresultsetが持っています。 JSPで検索結果を表示したいときは、resultsetをDBBeanから受け取るべきなのか、 それともDBBeanでVectorにいったん格納して、DBのコネクトをクローズしてから、 Vectorを受け取るべきか悩んでます。 検索結果は15列で最大で200行です。
298 :
デフォルトの名無しさん :2001/07/11(水) 16:17
データベース開発はまだやったことないんですがそろそろ勉強しておきたいと思ってます JDBCに関するお勧めの本があったらぜひ教えてください ちなみにODBCも触ったことがないのでそこらへんについても書かれている本がいいです
299 :
デフォルトの名無しさん :2001/07/11(水) 17:16
>>297 後者。理由はコネクションのクローズのタイミングを JSP 側が
意識しなくて済むから。でも他人とのインターフェースに安易に
Vector 使うなよ。インターフェースの曖昧化は抽象化とは違うぞ。
レコード1個に対して Bean のインスタンスを1個作れ。
300 :
デフォルトの名無しさん :2001/07/11(水) 17:50
Vectorの中にDBからとってきたレコードを格納するくらすを 格納してます public class Emp { String name; String emp_id; ~ 後ろはaccessor ~ }
301 :
デフォルトの名無しさん :2001/07/11(水) 17:50
public class DBBean{ public Vector getVector() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@emp", "dbuser", "dbuser"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from T_EMP"); Vector vc = new Vector(); while (rs.next()) { vc.add( new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID"))); } return vc; } catch (SQLException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } finally { try { rs.close(); stmt.close(); conn.close(); } catch(SQLException ex){ ex.printStackTrace(); } } return null; } }
302 :
デフォルトの名無しさん :2001/07/11(水) 17:51
<TABLE> <TBODY> <% Vector vc = dbBean.getVector(); Iterator iterator = vc.iterator(); while (iterator.hasNext()) { EMP emp = (EMP)iterator.next(); %> <TR> <TD> <% out.print(emp.getName()); %> </A> </TD> <TD> <% out.print(emp.getEmp_ID()); %> </TD> </TR> <% } %> </TBODY> </TABLE>
303 :
デフォルトの名無しさん :2001/07/11(水) 17:52
301 誤) new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID"))); 正) new Emp(rs.getString("NAME"), rs.getString("EMP_ID")));
304 :
デフォルトの名無しさん :2001/07/11(水) 17:56
DBBeanに切断用のメソッドを作っておいて ResultSet渡しで JSP側で finally{ dbBean.close(); } ではだめでしょうか? 検索結果ごとにデータクラスを作らなくていいので、 コードは少なくなりそうですが・・
305 :
299 :2001/07/11(水) 18:09
>>304 JSP への forward に失敗したらどうする?やるなら
チェーン元 (サーブレット側) でやれ。APサーバでDB
接続の開放忘れはかなりクリティカルだぞ。
って、よく見たら JSP 内完結型か…。
一人で作る分には JSP 内で finally も Vector 返しも良いが、
せめて Iterator か Enumeration にしといたほうが後で幸せ
かもな。それから JSP 内でレコードを取り出す場合に SQLExcepiton
が発生したらどうするんだ?ページのレイアウトが中途半端に
崩れることになるぞ。
306 :
デフォルトの名無しさん :2001/07/11(水) 19:30
なかなか経験豊かな方のようですね。アドバイス参考になります。 エラーページのことは考えてなかったですが、例外をキャッチして、 エラーページにforwardにするのかなと思ってます。 これは仕様によってでしょうけど。 サーブレット側でVectorに検索結果を格納するのと、 JSP側で展開するのでロープが2度になるので、 ちょっとスピードが気になるのですが、このあたりは 安全な方法で作ってみて、とろかったらスピードを上げてこうと思います
307 :
299 :2001/07/11(水) 20:24
> サーブレット側でVectorに検索結果を格納するのと、 > JSP側で展開するのでロープが2度になるので、 > ちょっとスピードが気になるのですが、 まぁメンテナンシビリティ+拡張性と速度とのトレードオフという いつものパターンだな。多分その程度ならDBの検索速度で十分 相殺されると思われる (レコードが数千まで逝ったら設計変える 必要があるが)。リソースが十分ならサーバサイドの Java は かなり速いぞ。そしてクライアント1台落ちるのとサーバ1台落 ちるのじゃ規模が違うからな。とりあえずサーバサイドは安全に 動くもの作れや。パフォーマンスネックの検証するのはその後でも 十分だろう。 一人でわめいてみたが、人の好みにもよるので強制する気はない。 まぁ自分の好きなように楽しめや。
やっぱりJSPかなぁ。自作のHTMLライブラリで、 構築しているが、デザイン変更すんの面倒だからなぁ。 HTLMテンプレート利用すんのじゃだめ? DB接続もSQLで陽にコントロールできるし楽だと おもうんだがなぁ。
309 :
デフォルトの名無しさん :2001/07/11(水) 22:22
JSPとXML+XSLTって相性悪くない?そんなことない? 両方を一度に使うのってありえるのかな? 表示に関する処理をやらせるって考えるなら、 xalanなんかの処理をJSPの中でやることになるけど、 なんだかなぁ。。。
310 :
デフォルトの名無しさん :2001/07/11(水) 22:26
>>301 話それるけど、ちゃんとimplements Serializable
しようよ。
>>302 <% out.print(emp.getName()); %> じゃなくて、
<%= emp.getName() %> でしょ、ふつう。
>>309 条件入力のフォームはJSPで検索結果はXML+XSLT、って感じで使ったことはあるけど
両方同時にってのは無いなあ。
>>297 結果が200行程度ならServlet側でDBとの接続は完結しといた方がいいと思われ。
DWHのフロントエンド作るとかならいろいろ考えるところだが。
313 :
デフォルトの名無しさん :2001/07/11(水) 23:03
>310 ObjectOutputStreamにする気はないんですが implements Serializable すると何かいいことあるんでしょうか? サーブレットの本とかでよくimplementsしてるんですが、 いまだに理由がわかりません <%= emp.getName() %> 確かにそうですね。ありがとうございます!
>>313 >implements Serializable
>すると何かいいことあるんでしょうか?
永続化できる。
315 :
デフォルトの名無しさん :2001/07/12(木) 17:27
<SELECT name="hoge"> の値をservletで request.getParameter("hoge"); すると選択されている値でなくて、 選択されている値の順番が出てしまいます。 値を受け取るにはどうすればいいのでしょうか?
>>315 <OPTION> タグに VALUE 属性付けてないだろ。
HTML の入門書嫁。
318 :
デフォルトの名無しさん :2001/07/12(木) 17:35
>316 valueに番号が入っていました。 大変失礼しました
319 :
デフォルトの名無しさん :2001/07/12(木) 17:37
はずかしいなぁ、もう。ってネタか。。。 ところでJakarta関連のツール、みんな使いこなしてる? おれ、Antぐらいしか使ってないんだけど他のものはどうなんだろう
320 :
310 :2001/07/12(木) 20:57
>>313 Beanをsessionに格納するときに、Serializableにして
永続化できるようにしておかないと、クラスタを組んでる
場合や、DBにセッション情報を持たせるようにした場合に
正しく動作しなくなります。
世の中に出回ってる書籍や雑誌の例では、Serializable
にしてないものも多いので注意しましょう。
321 :
デフォルトの名無しさん :2001/07/12(木) 23:06
なるほど sessionに入れるものが絡んでくるんですね 昨日いろいろSerializableの理由を考えていて、 APサーバーと関係があるのはなんとなくわかったのですが。 これですっきりしました
322 :
名無しさん :2001/07/12(木) 23:38
>>322 言ってる事は正しいと思うが...
ひょっとしてセッションを恒久化できると読んだ?
そういえば知らない人が見たらそう読めるかも。
324 :
デフォルトの名無しさん :2001/07/12(木) 23:58
>>323 マシンが分散していない場合にもSerializableは意味があるのでしょうか?
325 :
デフォルトの名無しさん :2001/07/13(金) 00:55
再起動がかかった時、処理中のセッションをファイルなどに保存して おいて、起動完了後に復元するサーブレットエンジンがあるよ。 ってうろ覚えだけど JRun がやってたような気がする。
326 :
デフォルトの名無しさん :2001/07/13(金) 09:11
うわぁぁ 誰が正しいこといってるのかわからなくなってきた 325さんのいってることが真実っぽい気が Webサーバの機能もしらないといかんですね。 調べてきます
327 :
デフォルトの名無しさん :2001/07/13(金) 13:35
javax.servlet.Filterってかなり良さそうなんだけど、 tomcatが未だにservlet2.2までしか対応してない。。。 いつになったらtomcat4は正式リリースなんだ、ゴルァ!
328 :
320 :2001/07/13(金) 23:46
329 :
デフォルトの名無しさん :2001/07/13(金) 23:49
要するに、「サーバが、場合によってはストレージに そのクラスのテンポラリの永続化インスタンス作るか もしれないから、作れるようにSerializableしとけ」 ってことですね。
330 :
320 :2001/07/13(金) 23:50
331 :
320 :2001/07/13(金) 23:50
332 :
デフォルトの名無しさん :2001/07/14(土) 14:55
servlet JSP DBによる開発もなんとなくできてきたので、 EJBも勉強したいと思ってます。 個人でやるので開発環境自体にお金をかけずに勉強したいのですが、 やはりJBuilder+InplizeApplicationServer+Oracleが王道でしょうか? WebSphere+VisualAgeだとVisualAgeにクラス数の制限があって 機能追加ができませんでした
333 :
名無し :2001/07/14(土) 15:02
jbossじゃだめなの?
334 :
デフォルトの名無しさん :2001/07/14(土) 20:34
EJBを勉強するならWebLogicがいいんじゃないの。 最新EJB仕様への対応が一番早いし。 評価版は同時コネクション数以外は制限も無い。
335 :
デフォルトの名無しさん :2001/07/16(月) 10:58
ネームサーバってクライアントと別マシンでも当然OKなんでしょうが、 別マシンにあるネームサーバのデータソースってどうやって見に行くんですか? ctx.lookup("データソース"); だと同一マシンしか見に行け無そうな感じですが・・・
336 :
デフォルトの名無しさん :2001/07/16(月) 20:20
>>335 InitialContextのコンストラクタでPROVIDER_URL
を明示的に指定すればOK。
…という話ではなくて?
337 :
デフォルトの名無しさん :2001/07/16(月) 20:54
>336 とういう話でした。 今日チュートリアルを読んでみてわかりました。
338 :
デフォルトの名無しさん :2001/07/17(火) 03:56
サーブレットからブラウザを起動させる よい方法はないですか?
>>338 ええっと... (藁
サーブレットを呼び出すのはブラウザじゃないですか?
>>338 それともこういうこと?
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE");
...
return;
}
341 :
338 :2001/07/17(火) 13:56
>>340 そんな感じです。
それを、Runtimeを使わずに
やりたいんですよ。
>>341 ネタだったんだが... やりたいことがまったく分からん。
まず、何をどうしたらどうなって欲しいか説明せれ。
クライアント側のブラウザでサーブレットを起動したときに、
サーバ側のブラウザを起動したいのか?
343 :
デフォルトの名無しさん :2001/07/20(金) 11:14
勉強中なんでDQNな質問かもしれないですが sendRedirect(url)したURLがない場合どういう感じで sendErrorにもってけばいいのでしょうか try~catchでは駄目でした
344 :
デフォルトの名無しさん :2001/07/20(金) 11:28
sendRedirectしたら、先のURLが存在するかどうかなんて わからないのでは。単にブラウザにREDIRECTレスポンスを 返すだけだから。 sendRedirectの前にRequestDispatcherを取得してみるとか。 リダイレクト先が同じサーバのときに限られますが。
>>344 そうなんですか。sendError(response.SC_NOT_FOUND,"no")みたい
なのはどういう時に使うのかな、と思っていたもので。sendRedirect
に渡すパラメータがおかしい時に使うぐらいですかね。どうもでした。
346 :
344 :2001/07/20(金) 12:31
>>345 えと、response.sendError(response.SC_NOT_FOUND)は、
例えばforwardしようとしたけど、RequestDispatcherが
取得できなかったときとかに使えます。
forwardとredirectの違いとかは、お分かりですよね?
>>346 なるほどどうもです。ステータスコードのところで2つとも
出てくるのでワンセットで使うもんだと思ってました<sendRedirect、sendError
redirectはクライアントにそのまま行っちゃうので無理なんですよね
348 :
デフォルトの名無しさん :2001/07/20(金) 15:56
J2EEについてくるJ2EEサーバーってどうやってとめるんですか? スタートさせるバッチはあるんですが、とめるバッチがないような・・ マニュアル見てみたんですがなぜか記述が見つからなかったです
349 :
デフォルトの名無しさん :2001/07/20(金) 17:33
>>319 JMeterを使おうかと考えてる。
strutsなんかも楽しそうだね。
350 :
デフォルトの名無しさん :2001/07/20(金) 20:25
351 :
デフォルトの名無しさん :2001/07/20(金) 20:39
>350 まじっすか!
352 :
デフォルトの名無しさん :2001/07/20(金) 20:41
よにサーブレット本はかずあれど、 基本的なAPIの使い方で終わっていて ECサイトを構築するのに役に立つ実践的な本って少ない気がします。 DBからJSPへのデータの渡し方とか、エラー処理の方法とか、 痒いとこに手が届く本ないものでしょうか? やっぱいり経験がものを言うってことでしょうか?
353 :
デフォルトの名無しさん :2001/07/20(金) 20:48
>>352 Blueprintsを読もう。
ってあんまり読みやすくないし、内容も懲りすぎだけど。
354 :
デフォルトの名無しさん :2001/07/20(金) 21:49
Blueprints読んでます。 英語は別になれてるんでいいんですが、 よく上手くいかなくなり鬱になります J2EEサーバーでの勉強はすごい面倒ですね サーブレットの開発やってると特定のAPPSERVERまわりの 環境に慣れてしまって、ほかの環境にでたくなりますね
355 :
デフォルトの名無しさん :2001/07/20(金) 22:54
>>354 それはありますね。
API知ってる以上に特定製品の設定運用方法、バグの知識が
重要で。そこらへん、SQL知ってるだけではどうしようも
ないDBと一緒かな。
私はOracleばかりだったから、いまさらSQLServerだのDB2
だのは避けたいし。もう覚えるのいや...
356 :
デフォルトの名無しさん :2001/07/21(土) 07:52
>>352 そう言う情報は Java Press とか Java World とか言った雑誌のほうが
載ってる。
357 :
デフォルトの名無しさん :2001/07/21(土) 08:16
もうだいぶ、Servletもひろまったので、自作の開発 セット(たいしたもんではないよ)を公開しようと おもうんだけど、需要ありますでしょうか? とりあえず実用では使えているけど、いろいろ意見 ききたいところもあるので。
358 :
デフォルトの名無しさん :2001/07/21(土) 12:12
私の仕事で使ってもいいですか?
いいけど、JSPとはまるっきり違うから、どれくらい使えるか... もうちょっと手直しして、公開します。生成ツールはwin版のみっす。
360 :
デフォルトの名無しさん :2001/07/21(土) 16:41
はぁ~EJBうまくうごかないっす。 どっかに「できる!EJB」うってないかなぁ
361 :
デフォルトの名無しさん :2001/07/21(土) 19:38
>>352 -356
Blueprints は邦訳書籍が既に出とる。
ただし、内容はJPS1.0.1 で、1.1.1以降のソースと
一致しとらんが…
>>357 EJB部分を除いたMVCモデル2を基にしたフレームワークが、
Jakarta から Struts として出てるので…
健闘を期待する。
362 :
デフォルトの名無しさん :2001/07/23(月) 12:43
鳩サブレーってどういう使い方するんですか?
>>362 余り親しくない人へのおみやげに使ってる。
>>362 あ、なんかタイトルにもらってもいいすか(w
365 :
デフォルトの名無しさん :2001/07/23(月) 21:56
おいしいので自分で食べちゃう
366 :
デフォルトの名無しさん :2001/07/24(火) 11:38
webアプリ開発初心者です JBuilderをつかって開発する時、普通InternetBeansExpressっていうのは使うものでしょうか? ちなみにDBはPostogreSQLを使っています。 いまのところInternetBeansExpressを使わずにFORM+jsp+servlet+jdbcだけで開発して います。
367 :
デフォルトの名無しさん :2001/07/24(火) 15:31
winで勉強しているのですが Class.forName(driver) もしくは System.setProperty("jdbc.drivers",driver) のところでSQLExceptionではじかれます。ローカルのswingアプリだとうまく動くので この文はあっていると思うのですがサーブレットだと他になにかする事があるのでしょうか? ちなみにAccessのjdbc-odbcを使っているのでそれがいけないのでしょうか?
368 :
デフォルトの名無しさん :2001/07/26(木) 09:26
TOMCATで詳細なログを取得する方法はあるのでしょうか。 ブラウザからTOMCATにアクセスしてServletを動かす度に、 その情報をログに出力したいです。 そのときに、どのディレクトリのどのCLASSファイルが 要求されたかという情報があると嬉しいです。 それから、ログ取得の設定方法について、 分かりやすいWebページをご存知の方は、 教えてもらえないでしょうか。
369 :
デフォルトの名無しさん :2001/07/26(木) 09:27
TOMCATで詳細なログを取得する方法はあるのでしょうか。 ブラウザからTOMCATにアクセスしてServletを動かす度に、 その情報をログに出力したいです。 そのときに、どのディレクトリのどのCLASSファイルが 要求されたかという情報があると嬉しいです。 それから、ログ取得の設定方法について、 分かりやすいWebページをご存知の方は、 教えてもらえないでしょうか。
>>369 そうやってマルチポストしていると、
Jハウスのアドレスばらしちゃうよ
371 :
デフォルトの名無しさん :2001/07/26(木) 22:38
DBの検索結果をJSPに表示するときって、 ResultSetをJSPに渡して、JSP側でループさせるのって いいのでしょうか? 実装する人がうっかりJSP側でResultSetを閉じ忘れてしまうのが 怖いので、DB接続するBeanでResultSetをループさせる 機能をラップして、finallyで閉じるって実装にしようと思うのですがどうでしょうか?
372 :
デフォルトの名無しさん :2001/07/26(木) 22:47
>>371 表示させる分だけListか配列に入れてJSPに渡すか、
Beanに保持させてgetXXX(int index)メソッドで
アクセスするようにする。
ResultSetはさっさと閉じよう。
373 :
デフォルトの名無しさん :2001/07/26(木) 23:42
CachedRowSetを使用したく <%@ page import="java.sql.*,javax.sql.*,sun.jdbc.rowset.*" %> <jsp:useBean id="crs" class="CachedRowSet" scope="session"> とやったところ javax.servlet.ServletException: Cannot create bean of class CachedRowSet が出て進まないのですがどういうことでしょうか? 先ほどクラスパス忘れの時は違う例外でしたのでパスはとおっていると 思います。
374 :
デフォルトの名無しさん :2001/07/27(金) 01:06
try{
request.setAttribute("resultSet", resultSet);
request.getRequestDispatcher("/a.jsp").forward(request, response);
} finally {
resultSet.close();
connection.close();
}
基本的に
>>372 に同意するが、上記のようにすれば JSP 側でクローズ
を意識させるさせる必要はない。
375 :
372 :2001/07/27(金) 01:23
>>374 いま環境がないので試せないのですが...
JDKのドキュメントを見る限り、Connectionをクローズすると
Statement、ResultSetともに破棄されるという「定義」のよう
に読めます。
実際には動いたとしてもちょっときわどいやり方なのでは。
376 :
372 :2001/07/27(金) 01:26
>>374 ああ、ごめんなさい。resultSet.close()も明示的に
してるんですね。
だとしたら、なおさらまずいのでは。close()したあとに
ResultSetの中身を取得できるなんて、誰も保証できない
と思いますが。
377 :
373 :2001/07/27(金) 01:56
あの~どなたかCachedRowSetについて教えていただけると嬉しいんですが・・ Cannot create bean of class CachedRowSet ってBeanで引数無しのコンストラクタがなかった時にたまに出てくる例外 なんですけどそれとは違いますよね・・まさかコンストラクタオーバーライド するわけじゃないと思うから・・この例外ってあとどんな時に出てくるのでしょうか?
378 :
372 :2001/07/27(金) 03:14
class="CachedRowSet"のクラス名をパッケージ名まで 入れればすむと言う問題だったりしませんか。
379 :
デフォルトの名無しさん :2001/07/27(金) 04:55
>>376 何を言っているのか良く分からんのだが、JSP に ResultSet
渡して何かを表示させた後、さらにその ResultSet から何かを取り
出そうといているのか?
380 :
376 :2001/07/27(金) 06:06
>>379 なんか寝ぼけてて論点をはずしまくりました。すみません。
forwardしてJSPが表示された後にfinallyが実行される
のって保証できるんでしょうか? includeならともかく。
さきにResultSetがcloseされちゃう可能性がある気が
したんですが。
…sendRedirectと違ってforwardは大丈夫なのかな?
環境ないので試せない。
381 :
デフォルトの名無しさん :2001/07/27(金) 09:10
RSの結果をコレクションに入れるのって、メモリと速度食いませんか? Vectorの2元配列(?)になるわけですよね
382 :
デフォルトの名無しさん :2001/07/27(金) 09:47
frowardしたインスタンスってJSP側では <JSP:useBean と <jsp:getProperty name=" の組み合わせでしか使えないんじゃないの? だからResuletSetはforwardできないと思うが?
383 :
デフォルトの名無しさん :2001/07/27(金) 10:13
>>380 JSP 内で発生したエラーは ServletException として forward
元のサーブレットに通知されなきゃいけないから保証される。JSP側で
起こした例外のスタックトレースじっくり見てよく考えれ (forward に
関してこういう勘違いしている奴多い...)
>>382 その根拠が不明だが ResultSet は Bean じゃないので <% %>
で十分だろう。
384 :
デフォルトの名無しさん :2001/07/27(金) 12:19
servletからJSPにインスタンスを渡すのって、 sessionを使うのはだめかな? ケースバイケースなんだろうけど
>>377 jsp の useBean で使うクラスにはデフォルトコンストラクタが必要。
なぜなら jsp の呼び出し元が request/session にその値を詰めてない場合に
デフォルトコンストラクタで代替のオブジェクトを生成するから。
useBean を使わないで <% %> 内で明示的にオブジェクトを取りだせば問題なし。
という話題ですか?
386 :
デフォルトの名無しさん :2001/07/27(金) 14:36
>>384 そのやり方だと、データベースとの接続を HTTP セッション
持続中ずっと保持したままにしておかなければならないぞ。セッショ
ンタイムアウトは大抵 30 分くらいなので、何度もブラウザ上げ下げ
してページ表示されたら、そのうちデータベースと接続できなくなる
だろう。
>>385 そうそう。「<% %> を使い始めると JSP が汚くなってやだ」
というんだったら拡張タグライブラリ作るとよい。商用 AP サーバ
は大抵 JSP から直接 SQL 発行して結果表示できるような拡張タグ
ライブラリを作ってる (<sql:select ... /> みたいな感じのやつ)。
>>385 すまん、ResultSet JSP 渡しの話と間違えた。
388 :
デフォルトの名無しさん :2001/07/27(金) 15:28
>386 finallyでコネクション切っちゃえばいいのでわ?
389 :
376 :2001/07/27(金) 16:13
>>383 なるほど。
だとすると、forwardとincludeの本質的な違いはレスポンスが
コミットされるかどうかだけなのかな?
includeでは呼ばれた側でステータスを変えられない、とか
forward時にレスポンスバッファがクリアされる、というのは
利用方法を考慮してあえてそういう仕様にしたというだけで。
>>388 ん? リクエストのたびに finally で切断してしまったら
セッションに ResultSet 入れておく意味がないのでは。ResultSet
自体 Serializable じゃないのでクラスタリングに対応出来ないし。
>>389 たいていオイラはそんな感じで使い分けてる。コンテンツ
の一部分を別のサーブレット/JSP に任せたい場合は include、
完全に任せたい場合は forward みたいな。
ResultSet に関しては並行して話が進んでる RowSet 使って
みるのもいいね。
391 :
373 :2001/07/27(金) 20:18
>>378 感謝です。ズバリでした。ていうか
<%@ page import="sun.jdbc.rowset.*" %>
とimportしてるのになぜsun.jdbc.rowset.CachedRowSetと明示しなければ
ならないのでしょうか。常識ですか?
JavaServletを始めました。 classと同じディレクトリにあるローカルファイルを読み書きしようとしてもFileNotFoundExceptionがエラーとしてでてきます。 ファイルの読み書きはどうしたらできるんですか? ちなみに書き方は、new BufferedReader(new FileReader("list.dat")) って感じです。
>>392 一度 new FileWriter("itteyosi.dat") とやって
どこにファイルが作成されるか探してみるがいい。
ありがとうございました。 ユーザのディレクトリにできてました。 Javaはけっこう面白いですねぇ。
それよかカレントディレクトリ取得した方が早い
あ、classの置いてある場所ですか? なるほど。
397 :
378 :2001/07/27(金) 23:32
>>391 JSPをコンパイルして生成されたJavaコードを見てみれば、
useBeanタグはjava.beans.Beans.instantiates()で
Beanをインスタンス化するコードになってると思います。
クラス名は文字列で指定するのでimportは効きません。
JSP仕様でも、classには「fully qualifiedなクラス名」
を指定することになってます。
> The fully qualified name of the class that defines
> the implementation of the object. The class name
> is case sensitive.
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
続きはコチラです
http://www.geocities.com/entry_k/main/main01.html
↑割れ物屋のCM
400!
401 :
373 :2001/07/28(土) 07:35
>>397 非常にサンキューです。
「JSPによるweb開発」っていう本で勉強してるんですが鵜呑みにしすぎてたみたい
です。正誤表にもなかったし。win98なんだけどこの環境だけとかいうわけじゃない
よね。
ってことはbeanに関してはjspでimportは関係ないってことですね ここはよく見ればservletスレですねsage
403 :
デフォルトの名無しさん :2001/07/29(日) 19:37
WebLogic ってフリーのお試し版ありましたっけ? 買うとしたらどこで買えていくらくらいするモンですか?
404 :
デフォルトの名無しさん :2001/07/29(日) 19:54
WinXPのJava排除やC#が騒がれてますけど、Appletは逝ってよし として、Servlet,JSP等サーバサイトのJavaの地位は今後どうなる と思いますか? 勉強してる方にとっては不安なので。すれ違いなら申し訳無いけど、 荒れていないここで聞きたかったので。 sage
>>405 企業はサーバサイド市場取れるとかなりおいしいからね~。
流動的な業界だからなんとも言えんが、JDK1.4 でサーバサイド
向け機能がかなり強化されたのでまだ大丈夫だと思う。個人的に
あと5年くらいは Java で飯が食えそう。
>>404 ガーン 個人サーバには高すぎますね... 個人レベルのアプリ
ケーションサーバ (少なくともコネクションプーリングが出来る奴)
ってないでしょうか?
>>406 解答ありがとうございます。
今大学3回生で、サーバサイトJavaの勉強してるんですけど、
Javaの勉強は役に立ちますか?今からやるならC#の勉強した
ほうがいいんですか?それとも、Java、しいてはオブジェクト指向を
しっかり勉強し、身に付けておけばとけばすんなりC#にも
入れるものなんですかね?
ほんと、スレ違いで申し訳ないですが。
C#はJavaのパクリなんでJavaしっかりやっておけばたぶん大丈夫 いろんな言語に中途半端に手出すより1言語深くやっておく方が良い。
410 :
デフォルトの名無しさん :2001/07/30(月) 16:38
サーバー側で生成したcsvファイルをダウロードする方法ですが、 ファイルを一度サーバに保存せず、直接クライアントに送ることはできますか? クライアント側はHTMLプロトコルのみです。 とりあえずはファイルを作成して、そのファイルにリダイレクトしてしまってます。 response.setContentType("text/comma-separated-values"); response.setHeader("Content-Disposition","attachment; filename=" + fileName + ".csv" ); ServletContext ctx = getServletContext(); ctx.getRequestDispatcher("/download/" + fileName + ".csv").forward(request, response);
411 :
デフォルトの名無しさん :2001/07/30(月) 16:43
>>410 HttpServletResponse から getOutputStream()
でOutputStreamとりだして直接データを流し込め
412 :
デフォルトの名無しさん :2001/07/30(月) 20:56
サーブレットからJSPにリクエストをフォワードしたいのですが、 このときって相対パスは使えますか?
413 :
デフォルトの名無しさん :2001/07/30(月) 22:50
414 :
デフォルトの名無しさん :2001/07/30(月) 23:22
>>407 Enhydra Enterpriseとかは?
@ITに記事あったが。
Resinは商用ではフリーでなかった気がする。
Tomcat のアプリケーションサーバ化計画とかなかったっけ? オイラの脳内計画だったかも...
>>409 レス、ありがとうございます。これでもやもやが晴れました。
とりあえず、コア・サーブレットという本を一冊終わらせようと
思います。
あと、XMLとの連帯も学校の課題で出てるので、勉強しようと
思います。
どうも、ありがとうございました。
417 :
デフォルトの名無しさん :2001/08/01(水) 05:54
ここにきて、3冊新刊が出ましたね。 サーブレット/JSPプログラミングテクニック ソフトバンク 三島俊司 Core JSP ピアソン・エデュケーション 基礎からわかるサーバー・サイトJava 日経BP社 樋口研究室 それぞれ買った人レビューきぼーん 僕適には今までのベストな本はコアサーブレット&JSPだと 思うんだけど、それとの違いとかも、あれば。 立ち読みした感じでは、サーブレット/JSPプログラミングテクニック がかなりいい感じだったなあ。Tomcatのインストール等から、かなり 詳細書いてたし。昨日本屋行ったときは金無かったけど、 今度買う予定
418 :
デフォルトの名無しさん :2001/08/01(水) 17:19
すんませーん。 tomcat-apacheで家で勉強してるものなんですが 今までうまく動いていたのにurl指定しても HTTPエラー404を出してしまうようになってしまいました。 理由としてはどのような事が考えられますでしょうか? 環境は特に変えていないし・・ 一つだけ言えばWinMXでエロ洋画を落としてきた事・・ まさかーいやだーそんなことー
419 :
ui :2001/08/01(水) 18:54
それだ!!
420 :
デフォルトの名無しさん :2001/08/01(水) 19:04
コネクションプーリングを行ってるDBBeanの コネクションインスタンスってstaticにして、 毎回データソースを探しに行かないほうが速いですか? Servletだとinitでデータソースを探す処理をしているので、 普通のクラスでもそうしたほうがいいのかと
421 :
デフォルトの名無しさん :2001/08/01(水) 19:10
デバックの時に標準出力にSQL文を吐き出すようにしているのですが、 出したくないときにコメントアウトするのが面倒です。 一括で出す、出さないの切り替えをする方法ありますか?
log4j
423 :
Resinユーザー :2001/08/01(水) 19:57
基本的な質問ですみません。 CGI(C言語でコンパイル)と、サーブレットってどっちが速いんですか?
424 :
デフォルトの名無しさん :2001/08/01(水) 21:00
サーブレットの方が全然はやい。
425 :
デフォルトの名無しさん :2001/08/01(水) 21:06
どのような点で違いが生じるのですか?
大した違いなんてありません。両方使ってみて、好きな方を採用してください。>425
427 :
デフォルトの名無しさん :2001/08/02(木) 09:46
jspでbeanを使う時beanのclassにはどのように入れたらいいのでしょうか? tomcatを使っていて C:\tomcat\webapps\ROOT\jsp に Test.jsp C:\tomcat\webapps\ROOT\WEB-INF\classes に TestBean.class がありますので <jsp:useBean id="test" class="TestBean"/> 又は <jsp:useBean id="test" class="servlet.TestBean"/> と指定しましたがどちらもTestBeanが見つからないとなってしまいます。
428 :
デフォルトの名無しさん :2001/08/02(木) 09:50
>>421 標準出力を殺したかったら処理の最初 (main() の直後?) で下の呪文唱えれ。
Win : System.setOut(new PrintStream(new FileOutputStream("nul")));
Unix: System.setOut(new PrintStream(new FileOutputStream("/dev/nul")));
本トは出力を全て無視する OutputStream を自分で作って setOut するほうが
スマートなのだが、コードが長くなるので簡単な方法。
>>420 「DBBean」とか「Servletはinitでデータソースを探す」とか
君はいったい何の話をしているのだ?
429 :
デフォルトの名無しさん :2001/08/03(金) 11:55
doGetでthrowsされた例外はどこに投げられるんですか? 呼び出しもとのブラウザ?
430 :
デフォルトの名無しさん :2001/08/03(金) 13:12
>>429 ソースコードを読んだら?
ってサーブレットのソースコードって公開してるの?
>>421 if( common.debugmode ){
system.out.println("XXXXX");
}
ってやっておいて、common.javaでboolean debugmode=false;
とするとここがコンパイルされないよ。常に否定
だとコードにならないんだね。
>>431 いや、どこかの板で見たがコードとして展開されると言う話だったぞ。
433 :
d :2001/08/03(金) 18:18
さっきサーブレットの本かってきて、設定。 ネコの画面でてきたけども、それからなにしよう? なにができるのでしょうか? 超初心者でスミマセン・・・
434 :
デフォルトの名無しさん :2001/08/03(金) 19:14
>>433 サゲながら聞くなって
ある意味技術屋のジレンマだな。サーブレットも EJB もデータベースも
JSP も完璧です、でもコンテンツがありません、というやつか。とりあえず
i-mode 用のサイト (i-appli じゃなくて) でも作れば?
>>429 大抵はサーブレットエンジンが拾ってエラーページ返しログに記録する。
>>430 サーブレットで公開されているのはインターフェースだけ。実装はベンダが
好きに出来るので公開されていないのが普通 (オープンソースな Tomcat は
別として)。
436 :
デフォルトの名無しさん :2001/08/04(土) 00:04
既出っぽいけど、サーブレット本って何がお勧め? 今もってる原田さんの本(サーブレットのみ)がそろそる 古くなってきたし、JSP、JDBC、EJBまわりも カバーした本が手元にほしいんだけど IBMプラットフォームになっちゃうけど 樋口研究所の本がかなりいい感じ あとコアサーブレット&JSPかなぁ 入門から一歩すすんだ本ってなかなかないね
437 :
final :2001/08/04(土) 08:39
サーブレットやるにあたって、XMLの知識は必須ですか?
438 :
デフォルトの名無しさん :2001/08/04(土) 11:21
XML にたいした知識なんぞいらん。
HTMLしか書けません。XMLを書けるようになるには 時間がかかるでしょうか?
手で書くもんじゃないでしょ
ワタシはHTMLもろくにわかりませぬ
XML で難しいのは書き方より意味付けでしょ。書くだけなら HTML 使えりゃ十分。つって web.xml の書き方は DTD で公開されてる から DTD やりなはれ。
443 :
hu :2001/08/04(土) 17:02
あげじゃあ
あむげむ
さげアンパン
446 :
え :2001/08/05(日) 12:48
あっげえええ
ageましょう
448 :
デフォルトの名無しさん :2001/08/06(月) 12:27
Tomcat3.2.3 で webapps の下にディレクトリ app app/WEB-INF app/WEB-INF/classes app/WEB-INF/lib を作って、classes に HelloWorld なサーブレットを置いたんだけど、 Not Found になってしまいます。conf/server.xml に examples と 同じように app で追加してもだめだし、何か設定が足りないのでしょうか?
449 :
デフォルトの名無しさん :2001/08/06(月) 12:29
apacheとの連携は?
450 :
448 :2001/08/06(月) 12:37
してます。 一応、examples 以下のサンプルは動いてます。 自作サーブレットも examples 以下では動いてます。
451 :
デフォルトの名無しさん :2001/08/06(月) 14:28
452 :
名無しさん@MZ-2000 :2001/08/06(月) 14:34
>>451 + か %20 を使え。 変数値をパラメータに使うなら URLEncoder
を使え。
java.net.URLEncoder.encode() を使え。
どうもこのスレの質問は一部のエキスパート達により一言で 片付けられてしまっているというのが (いや、それはそれで 良い事なのだが)、よく沈んでしまう原因な気がする...。 質問者と解答者の格差が激しすぎるというかなんと言うか...。
>>454 うぜえんだよ。Java-Houseに行ってろ。
456 :
デフォルトの名無しさん :2001/08/07(火) 05:52
win2000+Tomcat3.2.3+Apache1.20という環境でやってるんですが、 Tomcat起動時や、終了時に青画面にかなりの確立で出くわします。 フィジカルメモリなんちゃらとかいうやつで、アクセスしちゃいけない所 にアクセスしてるのかな?う~~ん、困った。 サービスパック2は入れてます。 同じ症状だった人いますか?解決策はあるんでしょうか? 再インストール?めんどくせえ・・・
>>456 しらんけど、ATOKにして見るとか(w
>>456 JDK のバージョンは何使ってる?
昔 1_3_002 だったかの組み合わせで似たようなことが起こった
覚えがある。
459 :
デフォルトの名無しさん :2001/08/07(火) 08:12
特定本の事で恐縮なんですが皆さん持っている人が多そうなので きかせていただきます。コアサーブレット&JSPの最後のほうに 接続プールのクラスが載っていて勉強になりました。Runnable をimplementsしてあってrun()でコネクション確立って感じなんで すがここで疑問があります。サーブレットって接続ごとにスレッド で動作してると思うんですが接続プールクラスでなぜプログラム レベルでスレッド作成しているのでしょうか?Vectorのように同期 するオブジェクトを使えばコンテナレベルでのスレッドで充分なので はないでしょうか?勘違い野郎だったら大変スマソ
460 :
456 :2001/08/07(火) 08:20
JDKは、1.3.1です。一応、動作はするんですけどねえ、かなり不安定。
Tomcatを起動させてない時は、青画面に出くわす事は無いので、
Winodows自体がヤバイというのでは無さそうですが・・
>>457 さんはその後解決されたんですか?
>>458 すいません、厨房なので意味が解らないです・・・
IME2000を使ってるんですけど、何か関係が??
オイラん時の症状はどうも HotSpot が悪さをしているようだった。 特に 1.3 じゃ無きゃだめという理由も無かったので 1.2 に戻して 事なきを得た。set JAVA_COMPILER=NONE とかやって JIT 無効に してみたら?
463 :
初 :2001/08/07(火) 16:22
サーブレットで、一番初心者むけな書籍はなんでしょうか?
464 :
456 :2001/08/08(水) 01:25
>> 458 レス、ありがとうございます。 あの後、色々試したんですが、管理ツール→サービスからTomcat を起動させる限りでは、トラブルは無いようです。 コマンドプロンプトから立ち上げたり、停止させると、かなり不安定 みたいです。 詳細は謎なんですが・・しばらくこれで頑張ろうと思います。 >> 463 僕もまだ初心者ですが、色々読んだ結果、最近出た サーブレット/JSP プログラミングテクニック 三島俊司 SOFTBANKが一番解りやすかったです。 なにより、インストールの手順の詳細が書かれているのが 良かったです。他の本では、Hello Worldに達するまでの 説明がかなり少ないので、それを拝むまでが大変です。 ただ、僕も全ての本を読んだわけでは無いので、あくまで 一個人の意見として捕らえて下さい。 あ、ちなみにアップレットにしろ、何にしろ、Java自体の経験は ありますよね?それが無くていきなりサーブレットはきついので もし経験なければアップット等から入る事をお勧めします
465 :
デフォルトの名無しさん :2001/08/08(水) 14:06
web製作板で答えが返ってこなかったので・・・。 JSPを使ってhtmlを生成させています。 右クリック→プロパティで其のページのサイズ(バイト数)を 取得しようとしているのですが、「使用不可」と表示されてしまいます。 ちなみに、IE、NN共に問題なく表示され、動作にも問題ありません。 一体、どのような原因が考えられるのでしょうか?
466 :
デフォルトの名無しさん :2001/08/08(水) 14:49
>>465 どのアプリでなにをクリックしたのかすら書いてないぞ
467 :
デフォルトの名無しさん :2001/08/08(水) 14:56
>>466 失礼しました。
IEで表示されたJSPファイルを右クリックです。
468 :
デフォルトの名無しさん :2001/08/08(水) 15:03
Content-length: ヘッダがないだけじゃないの?
469 :
デフォルトの名無しさん :2001/08/08(水) 22:43
>>468 Content-lengthヘッダを受け取ったページがそのような症状に
見舞われるのです。また、設定もしてないのにno-cacheに
なってしまいます。この問題はIE5.0sp1では確認できず、IE5.5sp1
では確認できました。
なんなんでしょうか一体・・・。どうやってお客に説明すれば
いいのか・・・。
out.close(); してないとか?違うか
ってJSPって書いてあんじゃん。ごめん
>>427 jspの中でBeanを使おうとする場合
<jsp:useBean hogehoge class="foo.TestBean"/>
などのようにしてBeanで使おうとするクラスファイル
は何らかのパッケージにしないと自分の環境では動かなかった
この場合ではTestBean.class は
hogehoge/WEB-INF/classes/foo/TestBean.class
におけばいいと思う。
473 :
デフォルトの名無しさん :2001/08/09(木) 02:25
Linux で Tomcat 3.2.3 を使用しています。インストールも設定も問題なく 行きましたが、Tomcat を立ち上げて ps aux すると java が 30プロセス強 起動します。特に動作に問題があるわけではありませんが、Linux 上の Tomcat or Java はこういうものなのでしょうか? JDK は java full version "J2RE 1.3.0 IBM build cx130-20010626" を 使用しています。
>>473 サーブレットの利点や動作状況を
もう一度見直してみるのがよいかと
その30プロセスがあるから
負荷が減少するのでは。
475 :
デフォルトの名無しさん :2001/08/09(木) 03:22
>>473 俺も同じ JDK 使ってるけど、以下のプログラムをバックグラウンドで
実行しても 5 プロセス発生するんだよね。
public class b{
public static void main(String[] args) throws Exception{
Thread.sleep(10000);
return;
}
}
--------
% javac b.java
% java b &
[1] 17093
% ps aux
xxx 16701 0.0 0.6 2428 1472 pts/0 S Aug08 0:00 -tcsh
xxx 17093 79.0 2.4 81268 6060 pts/0 S 03:17 0:01 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17102 1.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17103 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17104 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17105 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17106 0.0 0.4 2612 1024 pts/0 R 03:17 0:00 ps aux
>>474 Tomcat は Apache のように子プロセスをフォークしているわけ
じゃないよ。
477 :
デフォルトの名無しさん :2001/08/09(木) 03:29
毎度コンパイルして確認するのが大変・・・ 甘い?・・・なんかいい方法は無いものか・・・
479 :
デフォルトの名無しさん :2001/08/09(木) 08:55
480 :
デフォルトの名無しさん :2001/08/09(木) 09:23
>>473 ,
>>475 これのことか? 調べてみて知ったんだが Linux
ってスレッドを1プロセス内で起こせないのか? それってパ
フォーマンス的にどーなんよ?
http://www-6.ibm.com/jp/developerworks/linux/java2.html > Unix のその他の実装 (AIX または Solarisのような) とは
> 違って、Linux カーネル自身は、複数のカーネル・スレッドを
> 1 プロセス内でまとめることができる抽象化機能を持っていま
> せん。
> ...
> しかしながら、結果的に、IBM Java VM for Linux の各 Java
> スレッドは、対応するユーザー・プロセスによって実装されて
> います。このユーザー・プロセスのプロセス ID とプロセス状態
> は、Linux ps コマンドを使用して表示できます。
481 :
デフォルトの名無しさん :2001/08/09(木) 09:58
clone()ってことなんじゃないの? forkとはリソースを共有してる点で違うけどあとは同じ関数らしいし 識者の人の解説求む。
この忙しいときに面白そうなページが... 週末に読もう。
483 :
デフォルトの名無しさん :2001/08/09(木) 17:08
サーブレットとは直接関係ないのですが・・ rmiのクライアントとしてサーブレットを使うサンプルのところで 詰まってしまいました。tomcatを起動する時にセキュリティポリシーファイルを 指定するという事なのですがそのMSDOSコマンドが分かりません・・・ 環境変数 TOMCAT_OPTS に -Djava.security.policy=Client.policy を代入したいのですが(SET)、=(イコール)が2つあってできません。''や""で 囲んでも駄目でした。 そもそもwinで上述のようにtomcatを起動すればいいのかという事も分かっていませんが とりあえずmsdosの方ご教授ください。
for(np=0;np<=npl;np++){ data[0][np]=qd_data[np][i]; /* for 4th graph */ data[1][np]=vm_data[np][i]; /* for 1st graph */ data[2][np]=tau_data[np][i]; /* for 2nd graph */ data[3][np]=dq_data[np][i]*0.001; /* for 3rd graph */ data[4][np]=q_data[np][i]; /* for 4th graph */ data[5][np]=x_data[np]; /* for 5th graph */ data[6][np]=y_data[np]; /* for 5th graph */ } col[0]=BLUE; col[1]=RED; col[2]=GREEN; c=col[i]; set_crtpage(0); /* set of 1st page for CRT */ draw_data(nd,6,4,taxis,qaxis,t_data,&data[0][0],npl,PURPLE); draw_data(nd,6,1,taxis,vmaxis,t_data,&data[1][0],npl,c); draw_data(nd,6,2,taxis,tauaxis,t_data,&data[2][0],npl,c); draw_data(nd,6,3,taxis,dqaxis,t_data,&data[3][0],npl,c); draw_data(nd,6,4,taxis,qaxis,t_data,&data[4][0],npl,c); draw_data(nd,6,5,xaxis,yaxis,&data[5][0],&data[6][0],npl,c); } draw_data(np,6,5,xaxis,yaxis,x_data,y_data,npl,c); write_data(nt,"qd.dat",t_data,qd_data,npl,NJMAX,"%9.3f"); write_data(nt,"q.dat",t_data,q_data,npl,NJMAX,"%9.3f"); write_data(nt,"dq.dat",t_data,dq_data,npl,NJMAX,"%9.2f"); write_data(nt,"tau.dat",t_data,tau_data,npl,NJMAX,"%9.5f"); write_data(nt,"vm.dat",t_data,vm_data,npl,NJMAX,"%9.4f"); write_data(nt,"r.dat",x_data,y_data,npl,1,"%9.4f");
B型はプログラマーには向いていないと思うのは わたしだけだろうか?
>>485 っていうか
A→アセンブリ言語
B→BASIC
O→COBOL
AB→C
って感じ。
>>487 理由って言われても”感じ”だから。
まあ,
アセンブリ言語→一歩ずつしか進めない
BASIC→言語仕様が無いに等しい
COBOL→経営者の論理
C→いいかげんだけどそれなりにうまくやって行く
っつーことで。
>>488 O型人口が最も少ないことを考えますと
COBOLが最初に消えますな。
大変失礼した。
492 :
デフォルトの名無しさん :2001/08/10(金) 10:54
アプリケーションサーバーを使わずに、DBへの接続をプーリングする方法って、 あります?
自分で作っちゃう
494 :
デフォルトの名無しさん :2001/08/11(土) 00:54
最近のOracle製のJDBCドライバ(8.1.6以降?)には コネクションキャッシュ機能もついてるはず。 たしか oracle.jdbc.pool とかいうパッケージ。
495 :
492 :2001/08/11(土) 03:16
>>493 ドキュソ会社なんで、作れるスキルある人間いないんっスよ……(涙)
>>494 どうもありがとうございます。
うちの会社、違法コピーのオラクル8.0.5しかないんスよ……。
貧乏だし。可能性薄いけど、パッケージ探してみますm(__)m
496 :
493 :2001/08/11(土) 09:41
「コアサーブレット&JSP」の中にコネクションプールの実装コードが紹介 されてたような...。すまん、確かじゃないがサーブレットの本だった。
497 :
492 :2001/08/11(土) 16:01
>>496 重ね重ねありがとうございます。
「コアサーブレット&JSP」ってソフトバンクでしたっけ?
本屋行って、あさってみます。
498 :
名無しさん :2001/08/12(日) 03:34
Servletでfork みたいな作業ってできないのでしょうか。 つまりは時間のかかる作業を裏でやりたいのです。
499 :
デフォルトの名無しさん :2001/08/12(日) 03:37
500 :
デフォルトの名無しさん :2001/08/12(日) 11:59
>>498 APサーバがサポートしてればJMSを使うという手もある。
501 :
デフォルトの名無しさん :2001/08/12(日) 12:00
APサーバがサポートしてればJMSを使うという手もある。
>>498 fork か...
Thread 使えば大抵のことはできると思うが、ローカル変数引き継ぐとか
は無理だぞ。
503 :
デフォルトの名無しさん :2001/08/12(日) 13:51
>>502 インナークラスってのは便利だよ。ローカル変数の引継ぎ可能。
void func(){
String hage = "hage";
{
final String hoge = hage;
Thread th = new Thread(){
public void run(){System.out.println(hoge);}
};
th.start();
}
}
>>503 くっ、その手を忘れてた
目からコンタクトレンズが落ちたよ。
505 :
デフォルトの名無しさん :2001/08/12(日) 19:54
>>492 poolmanってのがあるよ。
APサーバのjbossとか使うほうがいいけど。
506 :
名無しさん :2001/08/13(月) 00:47
507 :
デフォルトの名無しさん :2001/08/13(月) 00:55
>>506 なんでだよ?fork->execより簡単だろうが。
Threadクラスのrun()メソッドオーバーライドしたクラス作って
インスタンス作ってstart()すれば、それだけで別のスレッドが
起動するんだぞ?
これ以上カプセル化できないっていうくらい、やりすぎっていう
くらいに完璧なカプセル化じゃんか。
forc->execはOSのタスク管理のイメージがわかってないと、なに
やってんだかさっぱり分からんってことになるのに。
スレッドに関しては別スレに結構詳しい人が書いてたりして 細かいところで問題があるのは解るんだけど、普通に使う分には Javaのスレッドが一番だと思う。Javaの内部でやれば、 状態を把握できるし。forkなんてしたらそれこそOSごと固有の プロセス間通信という話になってJavaの手軽さが失われてしまう。 だまってスレッドを使ってみなよ。 その簡単さに病みつきになるからw
509 :
デフォルトの名無しさん :2001/08/16(木) 13:44
test.HelloWorldServlet を継承して test.HelloWorldServlet2 test2.HelloWorldServlet3 を作りました。 HelloWorldServletは doGet doPostでHelloWorldを表示します。 継承したクラスにはなにも手を加えません。 /servlet/test.HelloWorldServlet /servlet/test.HelloWorldServlet2 を実行すると HelloWorld と表示されます /servlet/test2.HelloWorldServlet3 だと画面になにも表示されません。 パッケージを越えて継承すると動かないものなんでしょうか?
>>508 バックグラウンド処理だけど、httpに対してout.close()してから
適当な処理すると、意外に簡単で便利だよ。終わるときはしかる
べき処理をして適当な時期に終わるです。
511 :
デフォルトの名無しさん :2001/08/17(金) 18:10
>>509 元のクラスの指示子を何にもつけてネーダロ
それだとパッケージは超えられネーダロ
publicにしたらドーダロ?
>>511 コンパイルではじかれないのかな?
と疑問を呈してみるテスト。
っていうかどんなコードか全く情報ないから放置かも
513 :
デフォルトの名無しさん :2001/08/17(金) 22:29
>>510 そういう手もあるのかー。
でも、APサーバが管理してるスレッド使いっぱなしにして
パフォーマンスに悪影響があったりしないだろうか。
514 :
デフォルトの名無しさん :2001/08/18(土) 11:36
DateクラスとCalendarクラスでハマッテイマス! やりたいことは単純で、Stringの"YYYYMMDDhhmm"文字列をDateクラスの型に変換したいだけです。 それとその逆のDateクラスに格納されている日付時刻をStringの"YYYYMMDDhhmm"文字列に変換したいだけです。 APIリファレンスを読んでも理解できません。 この手の変換は誰もが使うと思うのですが、「ズバリこれ!」というのがないのはなぜでしょう?
String str = "20010818113600"; GregorianCalendar c = new GregorianCalendar( Integer.parseInt(str.substring(0,4)), Integer.parseInt(str.substring(4,6))-1, Integer.parseInt(str.substring(6,8)), Integer.parseInt(str.substring(8,10)), Integer.parseInt(str.substring(10,12)), Integer.parseInt(str.substring(12,14))); Date d = c.getTime(); System.out.println((new SimpleDateFormat("yyyyMMddHHmmss")).format(d));
516 :
デフォルトの名無しさん :2001/08/18(土) 15:05
>>514 java.text.SimpleDateFormatを使えば、そのものずばりでできるよ。
517 :
デフォルトの名無しさん :2001/08/18(土) 15:08
>>514 ・YYYYMMMMDDhhmm文字列をUNIX時間のミリ秒に変換
・変換結果のミリ秒でDateオブジェクトを生成
でいいんじゃないの。
518 :
デフォルトの名無しさん :2001/08/19(日) 12:13
html上に表示したいデータの中に「&」「 <」「>」のようなキーワードが あった場合、それぞれ「&」「<」「>」のように変換をしますが、 変換のタイミングはどこで行うのが一般的ですかね? servlet + bean + JSP の構成とします。 1. servlet beanのsetXXXX()を呼ぶ直前に変換 2. bean setXXXX()or getXXXX() の中で変換 3. JSP beanからもらったデータを表示用に変換
519 :
デフォルトの名無しさん :2001/08/19(日) 12:14
あり、修正。 変換後の文字列は 「&amp」 「&lt」 「&gt」 です。それぞれ半角。
4. 変換はブラウザがするから必要なし
521 :
518 :2001/08/19(日) 14:42
>>520 それは、
HTML中の「&amp」→表示時に「&」
のこと。
>>518 で言っているのは
表示したい文字列中に「&」が含まれる場合、
HTMLに埋め込む際に「&」→「&amp」と変換が必要に
なりますよね。
そのことです。
>>507 そうだそうだ。Threadまんせー。process市ね市ね。JavaOSばんざーい(OSの作り方スレ参照)
「しねしね」ってのは、Javaの世界の道具を一通り使えば、実はProcessなんてものは不要だ、という意味。
523 :
デフォルトの名無しさん :2001/08/21(火) 09:14
>>509 親クラスの識別子はpublic です
public abstract Test extendes HttpServlet
です。
524 :
デフォルトの名無しさん :2001/08/21(火) 09:37
ある文字列のインスタンスを作成して、 MIMEを設定したあと、 クライアント(ブラウザに) OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream()); out.write(result.toString()); out.close(); でインスタンスをおくっているのですが、 ブラウザでダウンロードのダイアログボックスがでるときに、 実際にブラウザに送られているのは、なになんでしょうか? MIMEの部分でしょうか? MIMEをブラウザが読み取って、ダウンロードするかしないかの ユーザーの選択を受け取ってから、サーバにもう一度getしにいくんでしょうか? わかりにくくてすいません
526 :
デフォルトの名無しさん :2001/08/22(水) 13:56
JSPのスコープのappricationといのは、 Webアプリケーションサーバ全体で使える インスタンスの入れ物って感じでしょうか? サーブレットで ctx.setAttribute して、JSPで apprication.getAttribute ってよくやるんですが、クライアント毎に別の値を持たせたい場合は この使い方は間違ってますか?
527 :
デフォルトの名無しさん :2001/08/22(水) 20:21
JServ不調。他のエンジンでもそうだけど、out of memoryがたまに でておちるんだよね。 作り方が根本的に間違っている予感がするです。 DBへのコネクションをセッション毎に1つだけ保持して使いまわしている んだけど、それ以外に気をつけるところないですかねー 循環参照とかはしてないと思います。こまめにvariable=null ってするべきですか?
528 :
デフォルトの名無しさん :2001/08/22(水) 20:22
Connection、Statement、ResultSetはリークの原因なので 使い終わったらちゃんとclose()しようね。
529 :
デフォルトの名無しさん :2001/08/22(水) 20:27
あと、JavaでもC/C++のPurifyやBoundsCeckerに相当するアプリが あるので、それ使うのが吉。名前なんだっけ? 強参照残したままのオブジェクトの数とかがわかるから、リーク調査 が楽チン。 コンストラクタとファイナライザにカウンタ仕込んで、アクティブ オブジェクトの数を自力でチェックするって方法は、どうなんでしょうね?
530 :
デフォルトの名無しさん :2001/08/22(水) 21:29
>>526 appricationじゃなくってapplicationだって...
applicationは「WebApp単位」で共通です。
同一サーバで複数のWebAppを上げているときは別になります&
クラスタ化した場合、ユーザから見たら同じアプリケーション
でも、マシンが異なれば共用されないので注意が必要です。
そんなに使い道はないです。例えば、ReadOnlyのデータの
キャッシュとかかな。
「クライアント毎」の意味がわかりませんが、おそらく
sessionにいれなければだめでしょう。
531 :
デフォルトの名無しさん :01/08/26 11:29
formタグでenctype="multipart/form-data"を入れると受け取ったサーブレットで 次に表示するJSPにRequestDispatcherでformordするときにexceptionが起きます。 enctype="multipart/form-data"って使えないのでしょうか?フォームに<input type="file" があるので困っています。
532 :
デフォルトの名無しさん :01/08/26 19:48 ID:4GIts8oI
あるアプリケーションでログインしたとして、 別のアプリケーションで再度ログインする必要が ないようにしたいんですが、何か良いアイデアありますか? アプリケーションが違うのでsetAttribute()系は使えないし
同じアプリケーションにしなよ
534 :
532 :01/08/26 22:02 ID:4GIts8oI
535 :
デフォルトの名無しさん :01/08/26 22:54 ID:KHQcFhVk
JAVAでUNIXのsendmailコマンドを実行するにはどうしたら良いのですか? 参考書籍、URLだけでも教えてください。
536 :
デフォルトの名無しさん :01/08/26 23:12 ID:b1.HSLI.
>>535 Runtimeのexec()使ったら?
537 :
ツール・怒・名無しさん :01/08/26 23:32 ID:8WKY/BWE
>>531 multipartのフォームデータは、request.getInputStream()
で取得しなけりゃなりません。バウンダリー文字列で区切られ
ているフォームデータを自分でパースしてやる必要があります。
java_conf.or.jpにサンプルコードがおいてありましたが
new String(...)でエンコーディングを指定していないため
文字化けします。そしてこのサンプルコードかなりの汚物で読む
気にならない代物です。
request.getInputStream()は怪しい。。。自分で調べてください!
539 :
デフォルトの名無しさん :01/08/31 21:34 ID:SVE3wbvc
include用のファイル名ってどんな名前つけてますか?
>>531 >>537 最近仕事でやったよ。
要するにmultipart/form-dataにサーブレットエンジンが対応してないんだよ
仕事だもんでさすがにソースアプはできない、、
将来的には
multipart/form-dataのPUTって
サーブレットエンジン側でサポートしてくれないんですかね?
541 :
デフォルトの名無しさん :01/08/31 22:28 ID:txRKxROM
cos.jar 使えば? > multipart/form-data
543 :
「人のバグ見て、わがバグなおせ」 :01/09/01 01:51 ID:N2P03Y3g
TagLib使ってお茶を濁す。
544 :
ツール・怒・名無しさん :01/09/01 18:29 ID:G1ZSmjeo
545 :
デフォルトの名無しさん :01/09/01 20:04 ID:Y7bOdsbI
>>535 自分でsmtpと話すの作っても100行くらいっすよ。必要なら
あげますけど。From偽造しまくりだから一般人にはあげられない
っす。
547 :
デフォルトの名無しさん :01/09/01 23:59 ID:AfE3XVcw
>545 これって、商用利用には使えなくないか? 俺は仕事で使う必要があって、しょうがないからスクラッチから書いた。
548 :
デフォルトの名無しさん :01/09/02 12:04 ID:kZTAllHU
>547 よく読め。 >If you are interested in using the package > to benefit a commercial project, > you are granted the same license, > provided that every person on the development team > for that project owns a copy of the book > Java Servlet Programming (O'Reilly) in its most recent edition. 商用アプリつくってんならたいした出費じゃないだろ、こんなもん。
549 :
デフォルトの名無しさん :01/09/05 01:50 ID:LrbdI1I2
RequestDispatcher.forwardについて教えてください。 送信されるformがenctype="multipart/form-data"だとRequestDispatcher.forwardで IllegalStateExceptionが起きます。送られたパラメータの取得はマルチパートを解析する クラスがあるのでgetParameter()を使わずに行えます。ファイルアップロードの機能が仕様に なっているのでenctype="multipart/form-data"にするしかないんですけど 困ってます。sendRedirect()を使うとsessionにバインドしたBeanが取れません。
550 :
デフォルトの名無しさん :01/09/05 11:57 ID:i9Ib3WJs
これからインストールするにあたりTomcatとJservどっちがいいですか? うわ。漏れだけいきなりレベル低い
551 :
デフォルトの名無しさん :01/09/05 14:50 ID:HEp5zPoE
>550 JServを使ってRequestDispatcherの質問をしたら俺が殺す。 Tomcatを使っておけ。
552 :
デフォルトの名無しさん :01/09/05 20:14 ID:i9Ib3WJs
なんかよくわかんないけどTomCatにします
553 :
デフォルトの名無しさん :01/09/06 16:02 ID:xxrt27Y6
Sessionが切れていたときの 制御ってどうしてます? チェック用のクラスとエラー処理用のクラスを つくって行ってるって感じですか?
554 :
デフォルトの名無しさん :01/09/06 23:55
やりたいことが良くわからんが、 javax.servlet.http.HttpSessionBindingListener を使うのではないかい?
555 :
デフォルトの名無しさん :01/09/07 13:19
>>553 HttpSession#isNew()
でエラー(セッション切れ)の制御を入れるのでは駄目なのか?
556 :
デフォルトの名無しさん :01/09/07 13:36
ガイシュツだったらスマソ oraとjdbc接続するservletを激しくこしらえたのですが Select等、DB側で多くの時間を要する場合に、何の断りも無く ブラウザを閉じやがる不埒者がおりました。 すると、oraのSessionが消えずの残ってしまいます。 なんとかならんのでしょうか?
557 :
デフォルトの名無しさん :01/09/07 14:59
>556 そりゃあんたのプログラムが悪い。 閉じられたときにExceptionが飛ぶはずだから、ちゃんとcatchしてコネクションを クローズしろ。
>>556 -557
finallyでcloseしろよ。
>>557 ,558
ご丁寧なレスどうもです。
言葉がタリンかったです。というか間違っていました。
その現象が出るのはoraのパッケージを呼出したときなんです。
勿論、ちゃんとcatchしてコネクションをcloseしているのですが...
わからないことがあります。 プログラムでこのように計算式を入れ込んだのですが、 newJBook.setEntry(3,13,"=SUMIF(M4:M4,1,M5:M5)"); エクセルが表示されても計算結果がでません。 ちゃんとセルには式が入ってるのですが。 ただ、表示後のエクセルになにか動作を与えてやると 計算結果が出てきます。 何故最初の表示時にはでないのでしょうか? 教えて頂けませんか? ツール -> オプション -> 計算方法 の計算方法も「自動」にしてあります。
561 :
デフォルトの名無しさん :01/09/08 15:11
562 :
デフォルトの名無しさん :01/09/10 22:14
HTMLにtextareaがあります。ここに書き込まれた改行もgetParameter()で取るには どうすればよいでしょうか?getParameter()で取った文字列をStringの変数に入れると 改行がなくなってしまいます。
>>562 そりゃサーブレットの質問じゃねーぞ
<textarea wrap='hard'> にでもしとけ
564 :
デフォルトの名無しさん :01/09/11 00:04
データベースに登録された画像のファイルパスを取得して、 その画像を表示するHTMLを生成するサーブレット + JSPの プログラムを制作しています。生成するHTMLの中で以下の タグのように画像の縦横サイズもきちんと指定したいと考え ているのですが、画像サイズの取得方法がわかりません。 <img src="DBから取得したファイルパス" width="xxx" height="xxx"> PHPなら getimagesize(String filename) という便利な関数が あるのですが、Javaで同様のことを実現したい場合は どのようにすればよいのでしょうか。
565 :
名無しさん :01/09/11 01:38
566 :
デフォルトの名無しさん :01/09/11 02:56
Servlet内で、HttpServletRequest の public java.lang.String getParameter(java.lang.String name) で取得できる情報を 追加 したいのですが可能でしょうか? 追加した情報は、forward先のjspで参照するつもりです。
568 :
デフォルトの名無しさん :01/09/11 12:53
>>566 jspだったら、Bean使ってみるのはどうだ?
結局はおんなじことだけど(w
570 :
デフォルトの名無しさん :01/09/12 20:26
<a href="/servlet/hoge"> でサーブレットを呼び出してるのですが、2回目に呼び出すと、 IE5.0のキャッシュがきいてしまって、1回目に表示したないようが そのままでてしまいます。 回避する方法ありませんか?
Cache-Control とか Expires とか Pragma とか使いな
572 :
デフォルトの名無しさん :01/09/12 23:10
573 :
デフォルトの名無しさん :01/09/13 00:13
誰かJ2EE純正のデプロイツール使ってる人いない? 設定の方法がワケわからん。特にWARが・・・。 JSP+EJBの組み合わせはデプロイできるんだけど、 Servlet+JSP+EJBの組み合わせがさっぱりできないんすけど・・・。 誰かいたら返事してくれ。
>>textファイルを読んで、 この部分次第じゃない?InputStreamReaderは使ってるよね...
>>564 Image image = Toolkit.getDefaultToolkit().createImage(name);
int width = image.getWidth();
int height = image.getHeight();
てゆーかawtってサーブレットから使えるかどうかは環境依存なんだっけ?
レポートきぼん
576 :
名無しさん :01/09/13 01:35
j_security_checkをdatabaseと連携してやりたいのですが そんなことはできるのでしょうか? JavaPetShopがそれっぽいことやってるけどよく分からない・・・。
577 :
デフォルトの名無しさん :01/09/13 15:53
Tomcatでデータベースから取得したレコードの列データを2カ所 表示するだけでエラーになる。なんで? 1つだと何の問題もないのに。
578 :
デフォルトの名無しさん :01/09/14 00:21
>>570 getでなんか後ろにゴミつけてやれば?
579 :
デフォルトの名無しさん :01/09/14 02:42
>>575 564じゃないけど、564と同じことをしたことがある。で、575のコードだけど、
サイズの取得にはタイムラグがあるから、そのままだと0が返ってくるね。
ちなみに、awtはLinuxとかだとXが起動してないと動かなかったりする。
俺は面倒だったから、GIFとJPEGのヘッダ解析クラスを作ったよ(w
580 :
名無しさん :01/09/14 18:17
JDBCで ResultSet#close Statement#close Connection#close するのとしないとでは何が違うのでしょうか。 要はcloseするとメモリを解放すると言うことですよね? やらなくてもいいことなのでしょうか?
>>580 そのうちコネクション食いつぶして死ぬ。
おまへはファイルもclose()しないクチだな?
582 :
名無しさん :01/09/14 18:42
>>581 今はちゃんとしてます。
今悩んでいるのは、staticなメソッドでresultsetを返したい場合
解放をどうすりゃいいのかと思いまして。
>>582 ResultSetをそのまま返すのはヤメれ
>583 んじゃ、どうすっぺか。 vectorとかhashを使うのか・・・
>>584 漏れはVectorに突っ込んだ後にtoArray()して配列で返すようにしている
検索件数が相当多い場合にはまた別な手段を使うが
587 :
デフォルトの名無しさん :01/09/17 20:07
DB関連のサンプルには必ずといっていいほど、 Vectorに突っ込んだ後にそのVectorをfor文を使って配列に落としているが、 やはり件数が多い時はそれはやらない方がよいのですか? 普通に考えて、件数が少ない時でもその方法は2度手間な気がするのですが?
588 :
デフォルトの名無しさん :01/09/18 13:32
589 :
デフォルトの名無しさん :01/09/18 18:11
サーブレットやるにあたり 必要な知識は、Javaとあとはなんですか? HTML?XMLですか?
590 :
デフォルトの名無しさん :01/09/18 23:11
HTTP
>>587 JavaのStringやNumberなどのimmutableオブジェクトをVectorに
突っ込んだあとにtoArray()したりしても、内部では参照コピーしか
していない(Collectionクラスの複製操作などでは、要素は全て
シャローコピー)ので、メモリ上の無駄などはあまり考えなくて良い
レベルになるはず。
JDBCでのリモートサーバへのStatementコール一回よりも、内部でのループ
+GCの方が普通は速いので、よっぽどあほな事をしない限り、内部ループの
最適化よりも、まずSQL実行回数の軽減を考えるのが良いと思われる。
例えば、それほど件数の多くないテーブルに対してなら、条件select
を多い回数発行するなら、全件selectしてからプログラム側で条件検索
するほうが速い。(フェッチサイズ変更&サーバメモリ拡張してもOKと
いう条件なら、これが一番良かったりする。場合によってはローカル
ファイルにSerializeしてキャッシュというのも有り。)
592 :
デフォルトの名無しさん :01/09/19 09:35
検索結果を一発にデータ構造に落とすことできます?
>>592 そんくらい自分でかけよ。
ResultSet廻してVectorか何かに順番に突っ込むだけじゃん。
594 :
デフォルトの名無しさん :01/09/20 22:18
>>591 すげーベンキョウになるです。
ちょうど、vectorにぶっ込むかclassの持つか悩んでいて・・・
1つの案件は30000弱データ、別のクライアント案件は百万強データ・・・
595 :
デフォルトの名無しさん :01/09/21 23:31
WebLogic6.0SP1で、こんなん出ました。どこが悪そう? ####<2001/09/13 17:23:36:JST> <Error> <Posix Performance Pack> <tq04> <tq04> <ExecuteThread: '12' for queue: 'default'> <> <> <000000> <Uncaught Throwable in processSockets> java.lang.NullPointerException at weblogic.socket.TunnelContext.getServlet(TunnelContext.java:24) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:465) at weblogic.socket.PosixSocketMuxer.deliverGoodNews(PosixSocketMuxer.java:449) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:378) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>>595 バグじゃないの?weblogicとやらのクラスライブラリの内部で、
Nullチェックしなきゃいけないパターンをしてないってことでしょ?
そのライブラリ出している会社に文句つけるべき。
そのスタックトレース渡せばすぐに対応策は向こうで分かるはず。
ただし、対応パッチをくれるかどうか、何時くれるかは全く不明だが。
597 :
デフォルトの名無しさん :01/09/22 01:46
HttpSessionBindingListenerをimplementしたこんなメソッド中で valueUnbound(HttpSessionBindingEvent anEvent) タイムあうとを知ることができる?
598 :
へたれ大学生 :01/09/23 01:17
原田洋子さんの書いた「Javaサーバサイドプログラミング」という本を買った のですが、今の自分のレベルだとちょっと厳しいみたい・・・ サーバサイドのJavaについてもうすこし解説の詳しい本をご存知の方教えてい ただけませんか?
はじめてのJSPサーブレット
λ ( ヽ / ̄ ̄ ̄ ̄ ̄ ( ゚Д゚ )< Rubyはクソです。ゴミ箱逝きです。 いじょ (____) \_____ ヽ(´ー`).ノ ( へ) く - = ≡三 λ _ = ≡三 ( ヽ / ̄ ̄ ̄ ̄ ̄ (´ー`) = ≡三 ( ゚Д゚ )< この発言をコピペしていただければ幸いです。 ( ヽ ヽ) - = ≡三 (____) \_____ / > - = ≡三
601 :
デフォルトの名無しさん :01/09/23 18:16
Tomcat 4.0 Final 試した人で、PostgreSQLに対するJDBC Connection Poolingがうまく使えた人いる? JNDIでContextを取ってくるところまではうまくいくんだけど、lookupでDataSourceが取れない・・・。
え?TomcatでもConnectionPooling使えるようになったの? DLせねば。
599さん>ありがとうございます 早速本屋で立ち読みしてきます
604 :
デフォルトの名無しさん :01/09/24 02:01
>>591 マジですか?
配列の要素の中身をいじると、
ベクターの要素の方も変化するのでしょうか?
606 :
デフォルトの名無しさん :01/09/24 03:00
>>604 配列はコピー、ただしコピーされるのは配列の中身で、それが
オブジェクトの参照でも、参照がコピーされるだけ。それが指して
いるオブジェクトが複製される訳ではない。
その参照を通じて変更したオブジェクトは、Vectorも参照している
から、当然、変更された影響は及ぶことになる。
もちろん、配列の要素そのものを変更しても、Vectorには影響しない。
だって配列はコピーだからね。
って、これはjavaの基本中の基本だろ。
つうか、Javaってクラスの保持してる情報が参照だか実体だか 判らない。 ポインタ無くしたのは間違い。
プリミティブかオブジェクトかの違いだけじゃない?
609 :
デフォルトの名無しさん :01/09/24 04:29
>>607 参照か実体か、って、javaではプリミティブ以外は参照だよ。
608の言っているのも、そういうことだよね。
そうなの? HashTableは例外?
StringBufferも例外?
関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
>>610 ,611
ごめん、言ってる意味がよくわからない。
>>612 関数(メソッド)にオブジェクトを渡すことはできない。
オブジェクトの参照を渡すことはできる。
外部で変更されてはこまるオブジェクト(の参照)は、外に漏らさない
ようにすることは大切。
614 :
デフォルトの名無しさん :01/09/24 11:51
>>607 ,610,611
だから、609が言ってるようにプリミティブ型以外は全て参照であって、
例外なんてない。
オブジェクトの実体は全てJavaVM自体が管理していて、どこからも参照されなく
なったものがガベージコレクションで回収されるといえばわかるかな。
アプリケーション側からは参照しか見えないわけだから、
当然ポインタなんてものは不要になる。
>>612 >関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
そりゃ設計自体が間違ってないか?
....
616 :
デフォルトの名無しさん :01/09/26 01:18
ageとくね
なぜさがるのだ
>>601 -602 Tomcat がコネクションプールサポートしていないから
データソースの参照に失敗してるんじゃないの?
619 :
デフォルトの名無しさん :01/09/28 03:04
ageておきます
―――――――――――――――――――――― 臨時ニュースです。 「Rubyはクソです。ゴミ箱逝きです。 いじょ 」 この発言をコピペしていただければ幸いです。 ___________ __________ ∥ \|________ ∥ | ON AIR.| ∥  ̄ ̄ ̄ ̄ ./ ̄ ̄θ ∧_∧ .../ //(^∀^ )/| ./  ̄/⊂ ||_/ | ̄ ̄ ̄ ̄ ̄| ( ━┳┛ |_____| /ヽ」┘┻
622 :
デフォルトの名無しさん :01/10/03 01:46
サーブレットから、日本語名のファイルにアクセスすることは 可能でしょうか?(Linux/Windows環境)
623 :
デフォルトの名無しさん :01/10/03 02:08
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby! Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
サーブレットを使って、MP3などをダウンロードせずに、 サーバ側でアプリケーション(Media Playerなど)を起動・実行させて クライアント側で聴くことはできますか?
627 :
デフォルトの名無しさん :01/10/04 00:07
テキストファイルのダウンロードなんですが、 一回目はダイアログボックスがでてファイルに保存できます。 そこでブラウザの戻るを押してダウンロードを押すと 2回目はキャッシュが効いてしまって画面に前回の内容が 表示されてしまいます。 キャッシュが聞かないようにヘッダーをセットする方法があったような 気がしたのですがご存知の方教えてください ファイルを作成するサーブレットは<A href= で呼び出してます。 ブラウザはIE5です
629 :
デフォルトの名無しさん :01/10/04 00:14
>>627 response.setHeader("Pragma","no-cache");
response.setHeader("Cache-control","no-cache");
response.setDateHeader("Expires", 0);
>>625 クライアントとサーバ間がケーブルで接続されていればできる。
まず、サーバ側の音声出力ジャックとクライアントの音声入力
ジャックを接続して (以下略)
>>625 ,631
クライアント-サーバ間がワイヤレストランスミッターだとなお良。
>598 JSPから入るなら技術評論社の[WEB+DB PRESS vol.1]がいい。 ヘタな参考書よりよっぽど入門向き。 コピーして新人研修の資料に使った。
>>625 サーブレットに限らずいかなるものを使おうが631の方法を使わんと無理だろ
うぉんちゅっ!
636 :
デフォルトの名無しさん :01/10/11 19:25
J2EE SDK1.3の日本語ドキュメントってどこでダウンロードできるんですか?
阿気
639 :
デフォルトの名無しさん :01/10/15 14:00
Oracle8.0.5とJDBCについてなんですが、 DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ()) ; DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:ECDB", "ANUSER", "ANUSER00"); こんな感じでコード書いてるんですが、 接続でエラーして動かないんですよ、 ログにはこんな感じででてるんですけど java.sql.SQLException: Connection refused: no further information 誰か情報もってないすか? あ、ちなみに、ドライバークラスは、classes111.zipっての使ってます。
すみません、超初心者的な質問です。 HTML画面から入力した2つの数字の四則演算の結果をJSPで表示させたいのです。 サーブレットとビーンを使って。(使わなくてもできる処理なんですが、この三つの動きがどんなものなのかを知りたいので、こーいう仕組みにしています。) 以下はコードです。 HTMLファイル <html> <body> <form action="servlet/KeisanServlet" method="post"> <input type="text" name="X" size="20" maxlength="20"> <input type="text" name="Y" size="20" maxlength="20"> <input type="submit" value="送信"> </form> </body> </html> <%@ page contentType="text/html;charset=Shift_JIS" %><html> <title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean> 和:<%= my_bean.getWA() %> <br> 差:<%= my_bean.getSA() %> <br> 積:<%= my_bean.getSEKI() %> <br> 商:<%= my_bean.getSYOU() %> <br> </html> 続く
サーブレット import javax.servlet.*; import javax.servlet.http.*; public class KeisanServlet extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) { try { String X = request.getParameter("X"); String Y = request.getParameter("Y"); KeisanBean my_bean = new KeisanBean(); my_bean.setX(X); my_bean.setY(Y); my_bean.execute(); HttpSession session = request.getSession(true); session.setAttribute("my_bean",my_bean); getServletContext().getRequestDispatcher("/keisan.jsp").forward(request,response); } catch(Exception e) { e.printStackTrace(); } } } 続く
import java.io.*; import java.util.*; public class KeisanBean { private String X = new String(); private String Y = new String(); public String WA = new String(); public String SA = new String(); public String SEKI = new String(); public String SYOU = new String(); public KeisanBean() { super(); } public void execute() { int A = Integer.parseInt(X); int B = Integer.parseInt(Y); int C = A + B; WA = Integer.toString(C); C = A - B; SA = Integer.toString(C); C = A * B; SEKI = Integer.toString(C); C = A / B; SYOU = Integer.toString(C); } public void setX(String str) { X = str; } public void setY(String str) { Y = str; } public String getWA() { return WA; } public String getSA() { return SA; } public String getSEKI() { return SEKI; } public String getSYOU() { return SYOU; } } 続く
JSP <%@ page contentType="text/html;charset=Shift_JIS" %><html> <title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean> 和:<%= my_bean.getWA() %> <br> 差:<%= my_bean.getSA() %> <br> 積:<%= my_bean.getSEKI() %> <br> 商:<%= my_bean.getSYOU() %> <br> </html> どーしても思ったように動いてくれません。 どなたか教えて下さい。
すみません、640のHTMLソースおかしかったですね。 最初の</HTML>で終わりです。 JSPと混じってしまいました。 それと、642はビーンズのコードです。 宜しくお願いします。
645 :
デフォルトの名無しさん :01/10/15 22:04
<<ちょっと参る一瞬>> みなさんもありませんか? マウスが動き悪いと思ってみてみると、 チンゲが絡まっている時。
647 :
デフォルトの名無しさん :01/10/16 00:37
JSPのエラーページを使った場合、 エラー発生元のページですでにストリームにコミットされていると 発生元の内容とエラー表示がごっちゃになりますよね? バッファサイズをむちゃくちゃ大きくする以外に解決策はないかね。
648 :
デフォルトの名無しさん :01/10/16 20:47
Tomcat4.0 + BSB を試用しているんだけど、 Servletからjspにforwardして、jspがXML吐いて(ほぼ内容は静的、 一部分だけbeanから頂戴する)、そのXMLをBSBに処理させてHTMLにする なんてことできます?
CocoonにはXSPってのがあるのか。。Cocoon使えって感じ?>識者 おしえて~
650 :
デフォルトの名無しさん :01/10/16 22:32
651 :
デフォルトの名無しさん :01/10/17 10:44
サーブレットを使って 同じサーバ内にあるファイルのリンク先を指定って出来るのですか? 例えばコンボなんかを使ってAが選択されていたらAのファイルに移動 Bが選択されていたらBのファイルに移動みたいに
652 :
デフォルトの名無しさん :01/10/17 11:20
651の追記 さらにコンボを2つ使って 両方ともAならAファイル 両方ともBならBファイル AとBならCのファイルに移動なんて出来ますか? ちなみにtomcat3.2.1を使用しています
653 :
デフォルトの名無しさん :01/10/17 16:31
age
654 :
デフォルトの名無しさん :01/10/17 23:57
655 :
デフォルトの名無しさん :01/10/18 00:01
656 :
デフォルトの名無しさん :01/10/19 00:38
>>648 XSLT通すカスタムタグ作ればいいんじゃない?
既にどっかが出してたと思うが。
>>651 かんたんにできるよ。
wwwサーバー=FileServletだからね。
>>656 すんませんCocoon1.8使うことにしてしまいました。
XSLT勉強中…。
Cocoon(XSP)な質問してもいいすか?
.xslで、例えばi-mode pageで、
<a href="ふがほげ" accesskey="<xsp:expr .....
のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
怒られるんですが… どうするものですかね??
あと、 ?<xsp:expr ....
でも、?の直後に数字が来てないぞ!みたいにおこられます。
たすけて~ ;_;
> .xslで、例えばi-mode pageで、 > <a href="ふがほげ" accesskey="<xsp:expr ..... > のような記述をすると、accesskey属性の中に < があるぞゴノレア!と こっちは変数にブチこんで accesskey="{$var}" でいけました… ふーーーー。
659 :
デフォルトの名無しさん :01/10/20 02:24
>>657 ><a href="ふがほげ" accesskey="<xsp:expr .....
>のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
>怒られるんですが… どうするものですかね??
<xspのタグはhtmlのタグと同等と思われ。
だから、<a が閉じる前の属性の位置にほかのタグがあると起こられる。
htmlのタグは本来は<html:a/>だがhtmlの場合は暗黙に省略できると思われ。
だから、?<xsp も「ゴルァ!」となるのだ。
660 :
デフォルトの名無しさん :01/10/21 06:32
TOMCATのソースコードって公開されてるんでしょうか?
661 :
デフォルトの名無しさん :01/10/21 12:18
>>660 されてるよ。Jakarta projectなんだから...
662 :
デフォルトの名無しさん :01/10/27 19:46
便乗。 Cocoon1.8.2で、XSPなページをESQLでつくっておるのだが、 裏でサーブレットも使っておる。サーブレットでもTurbineの DBコネクションプールを使いたいのだが、サンプルのソースだ してくれるひといない?
663 :
デフォルトの名無しさん :01/11/01 20:24
age
>>662 ソースは出せないが、可能とだけいっとく。
esql.xsl と、ESQLを使ったxmlのCocoonの処理結果
(れぽじとり内)をよーく見れ。で、いろいろ想像して
書くと。
あと、Cocoonサーブレットは <load-on-startup/>
すること。
いきなりレベルの低い質問で申し訳ないのですが サーブレットで、 リアルタイムでキーやマウスを読んだり、画像を表示したり、というような アプレットで作るゲームのような事ってできますか?
666 :
デフォルトの名無しさん :01/11/09 18:59
できません
667 :
デフォルトの名無しさん :01/11/10 01:06
>>666 想像してごらん、
出来たらすばらしいじゃないか、
皆が想像できたらすばらしいじゃないか、
って、じょんれのがいってたよ、
JASRACに怒られますよ
669 :
デフォルトの名無しさん :01/11/10 18:59
フォームの値をサーブレットにて取得する方法について教えて下さい。 ラジオボタン、ドロップダウンの値を受け取ることはできたのですが、 チェックボックスの値を取得するのがうまくいかないのでお願いします。
<form method="POST" action="サーブレットのURL"> <p> <input type="checkbox" name="a">あいうえお<br> <input type="checkbox" name="a">かきくけこ<br> <input type="checkbox" name="a">さしすせそ</p> <p> <input type="submit" value="送信" name="B1"> <input type="reset" value="リセット" name="B2"> </p> </form> データをPOSTするHTMLは簡単に書くとこんな感じです。 実際はチェックボックスの数がもっと多いので、配列を使ってさくっと取得できるといいんですけど。
671 :
デフォルトの名無しさん :01/11/11 14:06
サーブレット側はgetParameterValuesを使う。
String a = request.getParameter("a");
String b = request.getParameter("b");
String c = request.getParameter("c");
String d[10] = request.getParameter("d[10]");
>>671 getParameterを使うことはわかったのですが、上記のように、
普通の変数と同じように記述してもコンパイルが通りません。
配列の場合は特殊な書き方をしなければならないのでしょうか?
String[] a = request.getParameterValues("a"); こう書く
674 :
デフォルトの名無しさん :01/11/11 16:55
<FORM ACTION="/servlet/xxxx" METHOD="POST"> <INPUT TYPE="CHECKBOX" NAME="a" VALUE="AAA">AAA<BR> <INPUT TYPE="CHECKBOX" NAME="a" VALUE="BBB">BBB<BR> <INPUT TYPE="CHECKBOX" NAME="a" VALUE="CCC">CCC<BR> <INPUT TYPE="SUBMIT" VALUE="SUBMIT"> </FORM> String ParamValue[] = request.getParameterValues("a"); if(ParamValue!=null){ for(int i=0;i<ParamValue.length;i++){ out.println("value=" + ParamValue[i] + "<BR>"); } }
675 :
お願いします :01/11/11 22:32
JSPにて、if文を使って、 サーブレット通ってきたら表示させ、 直接JSP呼ばれたらサーブレットに返すプログラムを 作りたいのですけれど、宜しければ教えてください。(JSPの表記)
676 :
お願いします :01/11/11 22:44
あげ
677 :
デフォルトの名無しさん :01/11/11 23:11
>>675 JSP直接呼ばれたくないならWEB-INFの下に置く手もあるよ
678 :
お願いします :01/11/11 23:22
VAJでいうと、/web/WEB-INF/”ここにJSPファイルを置くと言うことでしょうか?”
>>678 VAJはしらない。
warファイルにしたときに/WEB-INF以下にあればいいよ
680 :
お願いします :01/11/11 23:43
JSPに直接書き込む場合は、どのように書けばよいのでしょうか??
681 :
デフォルトの名無しさん :01/11/11 23:59
サーブレット側でJSPにforwardする前に、 request.setAttribute("omae","mona"); とかしておいて、JSP側で if (request.getAttribute("omae") != null) { ... } else { ... } でいいんじゃないの
682 :
お願いします :01/11/12 00:07
if (request.getAttribute("omae") != null) { ... } else { ここの処理を知りたいのですが } 申し訳ございませんが教えてください。
683 :
お願いします :01/11/12 00:30
age
684 :
デフォルトの名無しさん :01/11/12 00:59
こんなんでどう? <% String destination; destination="servlet/HelloWorld"; %> <jsp:forward page="<%=destination%>" />
685 :
お願いします :01/11/12 01:45
できました ありがとうございました
686 :
デフォルトの名無しさん :01/11/14 17:20
esponse.setContentType("image/jpeg");として、画像を出力させるサーブレットを作ったのですが、 サーブレットを読み込んでから画像を出力するまでの時間を計測したい場合、どうすればいいでしょうか?
ストップウォッチ持ってる?
…やっぱりそれしか方法ないですかねえ…。 周囲にも結構訊いたけど同じ答えしか返ってこなかった…
doGetの頭とケツで時間をログに吐くんじゃだめってこと?
>doGetの頭とケツで時間をログに吐くんじゃだめってこと? すみません。ログに吐く、ってのがどういうことが分からないです。 doGetの中身を (1)コンテンツタイプをtext/htmlに設定 (2)現在時間をAに代入 (3)画像出力する関数Image呼び出し (4)現在時間をBに代入 (5)A-Bを出力 とすればOKかなと思ったんですが、エラー出っ放し
691 :
デフォルトの名無しさん :01/11/17 01:48
>>690 サーブレットがマルチスレッドで動いてるからだめじゃん。
クライアントがひとつだけでテストするならいいかもしれないけど。
ログを吐く→ログファイルに書き出すってことだよ。
どうも。
>>691 いろいろ。ありがとうございます。もう一回勉強しなおします。
それと、692は自分ではないです。念のため
694 :
デフォルトの名無しさん :01/11/20 20:08
tomcat 4.0.1 と apache を連携させるのって、 jakarta-tomcat-connectors を使うしかないんでしょうか? んでもって、これって正式リリースもされてないし、jakarta.apache.org にもドキュメントがない (ドキュメントはソースに含まれているものだけ)、 という認識は合ってますか?
>>690 セッションIDをファイル名にするのはだめ?
696 :
デフォルトの名無しさん :01/11/21 00:15
>>695 ファイル書き出しにsycronizedもつけるように。
あと、ストレスかけるなら、セッションの違うクライアントになるようにしないとね。
>>694 mod_webapps というのもあるみたい<Tomcat4.x と apache の連携。
でも、mod_webapps も connectors もまだ正式リリースされてない…
のかな?
設定がうまくいかないよ~。
698 :
デフォルトの名無しさん :01/11/21 11:49
で、taglibに渡すデータって皆さんどうしてます? Bean以外ありえないと思うのだけど、どう?
699 :
デフォルトの名無しさん :01/11/21 14:31
JSPで <FRAMESET rows="50%,50%"> <FRAME src="a.jsp" name="a" > <FRAME src="b.jsp" name="b" > </FRAMESET> のようになっているとき a.jspの方にのみリクエストをとばすには どうしたらいいんでしょうか?
>>699 意味がわからん
JSPに処理させたくないなら、b.jspをHTMLにすればよし
>>691 >サーブレットがマルチスレッドで動いてるからだめじゃん。
へ、どういうこと?
doGet内でいくつかnewしてほげるだけでMTもクソもないとおもうんだけど。
ログの吐きかたによっては
>ファイル書き出しにsycronizedもつけるように。
は真だろうけど。
サーブレットからJSPをよぶときに req.setAttribute("x",x); req.setAttribute("y",y); RequestDispatcher rd = context.getRequestDispatcher("z.jsp"); rd.forward(req,res); のようにやっていますが JSPの中で <% request.setAttribute("x", x); request.setAttribute("y", y); %> <FRAMESET rows="50%,50%"> <FRAME src="/jsp/skill/a.jsp" name="a" frameboarder="0" > <FRAME src="/jsp/skill/b.html" name="b" frameboarder="0" > </FRAMESET> としてrequestをa.jspにとばしたいのですが やり方が分かりません。 bをHTMLにしてもだめなようです。 JavaScriptを使う方法も考えたのですが リクエストとしてHashTableをわたさなければならないので できなさそうです。
うえのJSPではとばないことはわかってるのですが どうやればとばせるのか分かりません。
scope="session" の bean渡しにして、a.jsp を、jspでなくて 適当なサーブレットにして、<frame src="ほげほげ" の ほげほげ を response.encodeUrl(); しときゃイインジャネエノ? サーブレット経由しなくてもええんかな。しらん。
>>704 scope="request"を"session"にするだけで
できました。ありがとです
706 :
デフォルトの名無しさん ? :01/11/21 17:56
>>702 ペトリネットとか書いてみたらいいのでは?
>705 意味わかってやってる? 大丈夫か…?
708 :
デフォルトの名無しさん :01/11/21 22:23
tomcatの環境変数TOMCAT_OPTSの値をコマンドラインで変更するにはどうしたらよいのでしょうか?
709 :
デフォルトの名無しさん :01/11/22 02:15
>>701 691=696だが、
690の言ってる、
>(2)現在時間をAに代入
>(3)画像出力する関数Image呼び出し
>(4)現在時間をBに代入
>(5)A-Bを出力
がだめってことだよ。ログ吐きのことじゃないっす。690に対する返事だよ。
>>702 ,705
forwardとredirectの違いをまず理解することをお勧めする。
>>707 705わかってないだろうな...大丈夫じゃなさそう....
>>708 OSの問題だよ。スレ違い。
710 :
デフォルトの名無しさん :01/11/22 02:18
>>709 >>(2)現在時間をAに代入
>>(3)画像出力する関数Image呼び出し
>>(4)現在時間をBに代入
>>(5)A-Bを出力
>がだめってことだよ。ログ吐きのことじゃないっす。690に対する返事だよ。
AとBはスレッド間で共有されないでしょ?
と言っているんですが…。
711 :
デフォルトの名無しさん :01/11/22 05:17
プロバイダの個人ホームページ公開サービスでサーブレット使えるところありますか。 月1000円以下ぐらいでないですかねぇ。
>>711 DDNS+Tomcat+Apacheで自サーバ立てろ。
713 :
デフォルトの名無しさん :01/11/22 15:30
>>711 1000 円/月 以下(!)って安すぎ
>>714 perl使えるとこならいっぱいあるんだけどね、、、(個人向け)
717 :
デフォルトの名無しさん :01/11/22 20:32
Tomcat3.2 + Apache + postgre7.1.3で
サーブレットからデータベースに接続出来ねーす。
普通のJavaアプリからDBにアクセスするのはうまく行くので
JDBCまわりは問題ないと思うんですけど。
postgreのpg_hba.confがおかしいのかな?って思ったんですがおかしい所は
無い気がする・・・。
(host all 192.168.1.0 255.255.255.0 trust)
エラーは
>>718
DataBase Connect Failed : Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.sql.SQLException: No pg_hba.conf entry for host 192.168.23.2, user hoge_user, database test Stack Trace: java.sql.SQLException: No pg_hba.conf entry for host 192.168.23.2, user hoge_user, database test at org.postgresql.Connection.openConnection(Connection.java:170) at org.postgresql.Driver.connect(Driver.java:122) at java.sql.DriverManager.getConnection(DriverManager.java:517) at java.sql.DriverManager.getConnection(DriverManager.java:177) at Dbconnect_serv.doGet(Dbconnect_serv.java:35) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404) at org.apache.tomcat.core.Handler.service(Handler.java:286) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java:166) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484) End of Stack Trace
719 :
デフォルトの名無しさん :01/11/22 22:22
>>717 192.168.1/24 を trust してるんだから 192.168.23.2 からの
アクセスを deny するのは当然。
720 :
ゴノレゴ|з :01/11/23 01:31
海外でもいいからJAVAサーブレットが使えるフリーのレンタルサーバの情報キボンヌ と
721 :
デフォルトの名無しさん :01/11/23 01:36
実話なら、ダムの制御プログラムで符号間違えて、水位が低くなった時 全開で放水しちゃった事故があったね。
722 :
デフォルトの名無しさん :01/11/23 01:42
あれれ?すまん。スレ違い???
723 :
ゴノレゴさーてぃー :01/11/23 14:34
>>724 探しに逝くので検索キーワードだけでもヒントをキボンヌ
と
726 :
デフォルトの名無しさん :01/11/24 00:39
727 :
デフォルトの名無しさん :01/11/24 15:24
JBuilder5 EnterpriseでStruts-1.0使って開発しようと思っています。 Strutsを必須ライブラリにすると、デバッグ時にTomcatの起動時のクラスパスに 追加されてしまい、Strutsのコード内からアプリケーションのクラスがロード 出来ずにClassNotFoundExceptionが発生してしまいます。 struts.jarは、WEB-INF/libに格納しているので、Tomcatの起動時に読み込まれる 必要がないのですが、必須ライブラリにしないとアプリケーションのコンパイルが 出来ません。 どなたか解決方法知りませんか?
728 :
デフォルトの名無しさん :01/11/24 16:37
>>727 オープンツール。
nostruts.zip
webinfextension.zip
今更ですが、できたので報告とお礼です。ご教授ありがとうございます。
731 :
デフォルトの名無しさん :01/11/26 00:45
WEB-INF/web.xml書いたか?
examplesの下で動作したものをコピってあります。
web.xmlってクラス名直指定でやるなら書かなくても良いのかな、と思ってるのですが違ってます?
>>728 遅ればせながら解決しました
ありがとうございました
735 :
デフォルトの名無しさん :01/11/27 07:26
JavaBeans + Servletで作ってるときに、DBのコネクションとかはどんな感じ で書きますか? 1,JavaBeansにあらかたの処理を書いてServletのinitでそれを呼ぶ。 2.Servletのinitだけに書いておく。 3.JavaBeansでDBに登録とか削除とかのメソッドでコネクションするようにしておく。 4.その他 みなさんどんな感じで作ってるんでしょ。
736 :
デフォルトの名無しさん :01/11/27 11:49
>>735 環境によっても違うと思うが少なくともinitに書くものはコネクションのための
初期化処理で、リクエスト毎に実行する部分には実際の接続、切断の処理を
書くように使い分けてる。つまり2+3
コンテナがConnectionPoolingできるものならそれを使う。 リクエスト毎に Connection conn = ds.getConnection(); できなかったら・・・PoolManとかどう?
なんかズレてるな・・・逝ってきます
739 :
仕様書無しさん :01/11/28 17:39
>>711 www.mycgiserver.com
DB & JSP & Servlet & PHP
しかもタダ。
740 :
仕様書無しさん :01/11/28 17:41
www.webappcabaret.com こっちもタダ。 こっちの方がいいかも。 使った感じ軽い。
739,740は神!!
ここに書くと重くなるんじゃ・・・(;´Д`) まぁWeb板みたいなことはないかな。忙しい奴等ばっかりだろうし
>>740 FREE for 30 Days だが?
>>743 最低月3.33$だから一応当初の希望は満たしているんじゃない?
なるほど。たしかに
746 :
デフォルトの名無しさん :01/11/29 07:34
tomcat4なんだけど、 startup.shで起動すると、 常駐しないで、10秒ほど落ちちゃうんだけど、 似たような現象に遭遇した人居ない? ログにはまったく何も出力されていない、 tomcat3なら動くけど。。。 環境は、SlackwareのLinuxで、kernelは2.2.16 jdkは1.3.1_1 Win2kなら動くんだよなぁ~ どして?
739か740を利用する人で、DBも使おうと思ってる人。 急造したjspのDBクライアントあるけど欲しい?
748 :
デフォルトの名無しさん :01/11/29 18:13
ほしい
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <STYLE type="text/css"> <!-- input { width:300px; } TEXTAREA { WIDTH:512px; HEIGHT:189px; } --> </STYLE> <%@ page language="java" import="java.io.*, java.sql.*, java.util.*" %> <%! final static String driver = "***.***.jdbcDriver"; final static String db_url = "jdbc:****:*******"; final static String dbUser = "*****"; final static String password = "****"; static boolean init = false; %> <% StringBuffer result = null; if((session.isNew() == true)||(init == false)){ //初期化前なら result = new StringBuffer(); session.setAttribute("result",result); try { Class.forName(driver).newInstance(); } catch(Exception e){ result.append("ドライバロード失敗\r\n" + e.getMessage() + "\r\n"); response.sendRedirect("./sql_client.jsp"); } init = true; } else { result = (StringBuffer)session.getAttribute("result"); } %>
<!-- 初期化済み --> <% Connection con = null; Statement stmt = null; String buf = request.getParameter("mode"); if((buf != null)&&(buf.equals("execute") == true)){ result.insert(0,db_url + "\r\n接続\r\n--\r\n"); try{ con = DriverManager.getConnection(db_url,dbUser,password); con.setAutoCommit(true); stmt = con.createStatement(); result.insert(0,"成功\r\n--\r\n"); if(stmt != null){ buf = request.getParameter("execute"); if((buf != null)&&(buf.length() > 0)) buf = new String(buf.getBytes("8859_1"),"JISAutoDetect"); StringTokenizer tkn = new StringTokenizer(buf,";"); while (tkn.hasMoreTokens()) { StringBuffer sql = new StringBuffer(tkn.nextToken()); int pos = 0; while((pos = sql.toString().indexOf('\r', pos)) > -1){ String left = sql.toString().substring(pos + 2); sql.setLength(pos); if(left.length() > 0){ sql.append(" " + left); } } boolean rb = false; try { rb = stmt.execute(sql.toString()); } catch(SQLException e ){ result.insert(0,sql.toString() + "\r\n" + e.getMessage() + "\r\n--\r\n"); }
if(rb == true) { ResultSet rs = stmt.getResultSet(); int col = rs.getMetaData().getColumnCount(); StringBuffer column = new StringBuffer(); for (int ct = 1;ct <= rs.getMetaData().getColumnCount();ct++) { column.append("|" + rs.getMetaData().getColumnLabel(ct)); } column.append("|\r\n"); StringBuffer res = new StringBuffer(column.toString()); while(rs.next()){ for (int ct = 1;ct <= rs.getMetaData().getColumnCount();ct++) { buf = rs.getString(ct); if((buf != null)&&(buf.length() > 0)) buf = new String(buf.getBytes("SJIS"),"8859_1"); res.append("|" + buf); } res.append("|\r\n"); } res.append(column); result.insert(0,res + "\r\n--\r\n"); } //入力バッファにセット result.insert(0,sql.toString() + "\r\n実行\r\n--\r\n"); } } } catch(Exception e){ result.insert(0,"失敗\r\n--\r\n"); } finally{ stmt.close(); con.close(); } }
else { //とりあえず接続確認 try { con = DriverManager.getConnection(db_url,dbUser,password); con.setAutoCommit(true); stmt = con.createStatement(); result.append("接続成功!\r\n"); } catch(Exception e){ result.append("コネクト失敗\r\n" + e.getMessage() + "\r\n"); return; } finally { stmt.close(); con.close(); } } %> <BODY> <P>SQL Client</P> <FORM method="post"> <input type="hidden" name="mode" value="execute"> <P><TEXTAREA rows="9" cols="56" name="execute"></TEXTAREA></P> <P><INPUT type="submit" value="Query"></FORM></P> <P><TEXTAREA rows="9" cols="56" name="result"><%= result.toString() %></TEXTAREA></P> </BODY> </HTML>
sql_client.jsp って名前でupしてくれ。 上のTEXTAREAにSQL文を書いて [Query]を押すだけ。 ;で区切れば複数のSQL文を書いてもヨロシ。 とりあえず急ぎで作った程度の代物なので 細かなツッコミあればよろしく。
754 :
デフォルトの名無しさん :01/11/29 18:56
userとpasswordくらい打たせろよ(w
755 :
デフォルトの名無しさん :01/11/30 09:40
iniファイルにドライバ名とURLを書く形にして ログイン、ログアウトに対応すればさらにいい。
今、JAVAで簡単なWEBアプリ作ってるんですが、、 あるユーザーがログインしている時に、別のブラウザでそのユーザー名でログインするのは不可、という状態にしたいのです。 最初のユーザーがログインした時に、static変数でフラグを立てておけば別のユーザーのログイン不可状態には出来るのですが、最初のユーザーがブラウザを閉じる等で ログアウトしたときに、フラグを変える方法が解りません。 sessionやservletcontext等も試してみましたが出来ませんでした。 どなたか教えて下さい~~。 ブラウザが閉じられたことをサーブレットに伝えることが出来れば なんとかなるような気がするんですが、、。 ブラウザ(IE)が右上のボタンで閉じられたことをサーブレットに知らせるには どうしたらいいのでしょうか。
画面にアプレット仕込んで TCP/IP でつなげとけ。
758 :
デフォルトの名無しさん :01/12/05 04:06
WinNT4.0 + Tomcat3.2.3 で販売在庫システムを作って います。携帯電話(i-mode)から使います。 それで、ちょっと教えて頂きたいのですが、 HttpSessionによるセッション管理がうまくいきません。 PCのブラウザ(IEなど)だと、ちゃんと request.getSession(true)で取れたセッション オブジェクトにセッション属性を設定し、保存 されるのに、携帯電話からだと、うまくいきません。 というか、携帯電話ブラウザでは、 HttpSessionクラスを使ったセッション管理は できないのでしょうか?
759 :
デフォルトの名無しさん :01/12/05 05:31
>>756 一定時間なんのリクエストもないようならログアウトしたことにしとけ。
760 :
デフォルトの名無しさん :01/12/05 10:00
>>756 右上のボタンが押されたことを通知するには、ユーザの
ブラウザ上で「右上のボタンが押されたことを関知できるもの」
が動いてなければならない
っていうふうに考えると------>
>>757 だし(UDPでもよいけど)
そいうものを作りたくなくて、あくまでユーザの画面には
プレーンなHTMLだけを送るなら、セッション管理して
タイムアウト監視するしかない。ってことで ---->
>>759
761 :
デフォルトの名無しさん :01/12/05 12:22
>>758 もしかしてクッキー管理のセッション使ってるんじゃない?
URL Rewritingでセッション変数を保持しなきゃダメよ。
>>761 >もしかしてクッキー管理のセッション使ってるんじゃない?
>
>URL Rewritingでセッション変数を保持しなきゃダメよ。
レスどーもです。サーブレットAPIが標準的にサポートしている
HttpSession APIについて、ものの本「コア・サーブレット&JSP」
によると
『ブラウザがクッキーをサポートしていればクッキーを使い
クッキーが使えない、またはディスエーブルされている場合は
自動的にURL Rewriting に切り替える』
とあるので、「あとはおまかせ」でうまくいくのかと思った
んですが…
もし、自分でセッション管理ロジック作って
>URL Rewritingでセッション変数を保持
するとなると、タイムアウト機構も自分で
書かなければいけませんね…?
割り込んですまない。 JDBCでMicrosoft SQL Serverに接続できます? だったら、ASPから乗り換えてみようかな。
出来るよ。
>764 ホント? ありがと。
766 :
デフォルトの名無しさん :01/12/06 04:58
>>746 一番新しい UNIX Magazine に、同じように tomcat4 が起動直後に
こっそり落ちる症状について書いてあったようななかったような。
767 :
デフォルトの名無しさん :01/12/07 13:10
>>758 漏れも最初試したけど、結局うまくいかなかったよ、
結局セッション維持は自分でやった
パラメータの暗号化&圧縮もしたかったしな
768 :
デフォルトの名無しさん :01/12/07 13:13
770 :
デフォルトの名無しさん :01/12/08 20:03
最近サーブレットプログラミングをはじめた初心者です。 WinNT4.0上でTomcat3.2.3を使ってサーブレットを開発しており、開発段階 では、TomcatのWebサーバ機能を使っているのですが、Tomcatを開始した ウィンドウ(bin\startup.batで開く)に以下のようなメッセージが、自作サーブ レットへのリクエスト送信タイミングと無関係に時々出ます。 2001-12-08 19:56:11 - Ctx( ): 404 R( + /scripts/root.exe + null) null 2001-12-08 19:56:12 - Ctx( ): 404 R( + /MSADC/root.exe + null) null 2001-12-08 19:56:12 - Ctx( ): 404 R( + /c/winnt/system32/cmd.exe + null) null 2001-12-08 19:56:13 - Ctx( ): 404 R( + /d/winnt/system32/cmd.exe + null) null 2001-12-08 19:56:14 - Ctx( ): 404 R( /scripts/..%255c../winnt/system32/cmd.exe) null 2001-12-08 19:56:14 - Ctx( ): 404 R( /_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe) null 2001-12-08 19:56:15 - Ctx( ): 404 R( /_mem_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe) null 2001-12-08 19:56:15 - Ctx( ): 404 R( /msadc/..%255c../..%255c../..%255c/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe ) null java.io.IOException: Invalid argument at java.io.Win32FileSystem.canonicalize(Native Method) at java.io.File.getCanonicalPath(File.java:440) at org.apache.tomcat.util.FileUtil.safePath(FileUtil.java:184) at org.apache.tomcat.core.Context.getRealPath(Context.java:797) at org.apache.tomcat.request.StaticInterceptor.requestMap(StaticInterceptor.java:196) at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java:835) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:786) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:484) これは、いったい何が起きているのか、詳しい方教えてください。
>>770 Nimda か何かの攻撃を受けているだけだ。セキュ板逝って聞いて来い。
>>771 げげっ!!そーなんですか?!
ありがとう
773 :
デフォルトの名無しさん :01/12/08 21:31
hageていいですか?
Linux版のtomcat4 起動時、CLASSPATH継承しないから、 気をつけれ!
778 :
ウマナミナノネー :01/12/16 06:39
えっと、特定のファイルをダウンロードダイアログに表示させてダウンロードさせるServletと作ったのねん。
IEではちゃんと動いたのねん。
だけどNetspaceでは動かないのねん。
ファイル名がバケるとかぢゃなくて、Servletの名前が「DLOAD」だとすると
http://www.hogehoge.net/Download/DLOAD?file= "もなー"
とかすると、「DLOADをダウンロードします」とか出てくるのねん。
もちろんIEだと、ちゃんと「ダウンロード中:もなー」って出てくるのねん
(日本語ファイル名問題は解決済みなのねん)
・・・Netspaceなんてだいっ嫌いなのねん(T_T)
あぼーん
>>781 ……まぁ、別にいいけど(^^; JavaHouse-MLでも読んでるのけ?
(以下マジ)
こういう場合、削除要請出したほうがいいのでしょうか?>ALL
ちなみに問題は未だ解決せず。Netscapeはリンクの名前しか見てないのか?
783 :
デフォルトの名無しさん :01/12/17 03:50
データベースかと思いましたが一応サーブレットなのでここで教えてください。 HPのフォームから番号を入れるとDBを参照するようにしたいのです。 とりあえず,標準出力にと思いましたが,エラーが発生します。 エラー:java.sql.SQLException:[Microsoft][ODBC Driber Manager]データ ソース名および指定された既定のドライバが見つかりません。 なぜなのでしょう?お願いします。DBにはしっかりとデータはあるのですが。 環境は jdk1.3.1_01 Apach1.3.20 Tomcat3.2.3 Access2000 win98 です。 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.sql.*; public class ShowForm extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { String number = request.getParameter("number"); String name = request.getParameter("name"); System.out.println(number+":"+ ( new String(name.getBytes("8859_1"),"JISAutoDetect"))); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection myCon = DriverManager.getConnection("jdbc:odbc:FRIEND"); Statement mySt = myCon.createStatement(); ResultSet myRs = mySt.executeQuery("SELECT * FROM FRIEND_DAT WHERE Number=\"" + (new String(number.getBytes("8859_1"),"UTF-16")) + "\""); if(myRs.next()){ long id = myRs.getLong("ID"); String Dname = myRs.getString("Name"); String Dnumber = myRs.getString("Number"); String DSyutu = myRs.getString("Syutu"); System.out.println(id + "/" + Dnumber + "/" + Dname + "/" + DSyutu); } else { System.out.println("該当するレコードはありませんでした。"); } } catch(Exception e) { System.out.println("エラー発生:" + e); } response.setContentType("text ・ ・ ・ ・ AccessのUnicode圧縮は”はい”になっていますが関係ありますか。 いろいろ試しましtがまったくわかりませんでした。よろしくお願いします。
>>783 FRIEND ってのは ODBC Administrator (だっけ?) にちゃんと登録されてるのか?
そもそもユーザが "AND" とか付けたらエラい事になるぞ。
786 :
デフォルトの名無しさん :01/12/17 03:56
>>785 はい,コントロールパネルから行くやつですよね。
登録してあります。フォルダ内にそれらしき設定のファイルがありますし。
787 :
デフォルトの名無しさん :01/12/17 03:59
>>785 >そもそもユーザが "AND" とか付けたらエラい事になるぞ。
まずいですね,それ。
気が付きませんでした。
788 :
デフォルトの名無しさん :01/12/17 04:08
>785 すみません,今確認したところ,設定がなくなっていました。 パソコンを再起動したときにレジストリを修復がどうのこうのといっていましたので, そのときにでも消えたのでしょうか。 登録しなおしました。 さっそくプログラムを実行しなおしてみたところ。 新しく [Micorosoft][ODMC Driver Manager]パラメーターが少なすぎます。1を指定してください。 と出てしまいました。 こちらについてはまだ調べていませんが,お教え願いますか。
>>782 個人名晒したお詫びにネタを振ってやろう。サーブレット名 (というかそのエイリアス名) の後ろに
保存を希望するファイル名をくっつけてやってみな。
http://www.hogehoge.net/Download/DLOAD/もなー.zip <-- Shift-JIS の URL エンコードが必要かも
サーブレットからは request.getPathInfo() でファイル名が取得できるし、クライアントにはタダの
ファイルに見せることが出来る。Netscape ではどういう動きをするかわからんがな。やってみる
価値はあろう。
790 :
デフォルトの名無しさん :01/12/17 16:43
>>789 いえ、その書き方は日本語URLがらみでマズイっつー話が……(^^;
出来れば、Content-Dispositionで直接指定する方法を取りたいのです。それで読めなきゃブラウザが悪いという事で(苦笑)
>>783 ドライバ指定、もしくはURL間違ってたりすんでねぇ~の?
他のテーブルは参照できるのか?
792 :
デフォルトの名無しさん :01/12/18 23:01
>>791 おなじようなプログラムからなら大丈夫なんです。
サーブレットではなくDosから値を渡す場合は。
>>C# 一周年。おめでとうございます! C#さんがこのスレを一人で支えてきました。 それに対してここを見たみんなでお礼の言葉を。 一言でいいです。お礼の一言をお願いします。
794 :
デフォルトの名無しさん :01/12/19 09:34
>>778 わきからすいません。
日本語ファイル名対策ってShift_JISで送るやつのことでしょうか?
795 :
デフォルトの名無しさん :01/12/21 13:49
しつもーん Servletのセッションがタイムアウトしたことを イベント(またはコールバックっぽいもの) で検知することはできますか?
>>795 SessionBindingListener を implements した Bean をセッションに放り込んでおけ。セッションから
切り離されたタイミングで valueUnbound() が呼び出される。明示的にセッションから削除 (もしくは
セッションが invalidate) されたか、タイムアウトかどうかを判断するロジックは自分で作れ。
というか HttpSession#getLastAccessedTime() + HttpSession#getMaxInactiveInterval() * 1000 が
System.currentTimeMillis() より小さければタイムアウトということでよいのかな? これはやったこと
ないので不明。報告求む。
Tomcatで、負荷分散とかする方法ってあるの? 逆に言えば、高いアクセス負荷に耐えうるTomcatの運用方法はどんなものがある?
798 :
デフォルトの名無しさん :01/12/27 15:21
はじめまして。タグリストについて、めちゃめちゃ初心者な質問があります。 根本的な間違いだと思うのですが・・・。 症状としては、JSPに埋め込んだ「prefix」がInvalid attributeと怒られて しまいます。 ここに至るまでの手順は、 1.TagSupportを継承したクラスを作り、「doStartTag()」を実装 2.tldファイルを作成。 (tagclassはプロジェクトから指定し、nameはshowtextとする) 3.JSPに「<%@ taglib uri="testlib.tld" prefix="test">」と ディレクティブを書く 4.JSPに、「<test:showtext />」と書く。 こんな感じです。 TOMCATでは、このtldファイルのuriをweb.xmlに書くそうですが、 VisualAgeのテスト環境なので、JSPで直接指定するそうです。 断片的な情報ですが、なにか間違いがあるようでしたら教えてください。
タグリストじゃなくて、タグライブラリです。 おおボケですいません。
800 :
デフォルトの名無しさん :01/12/27 16:35
>>798 (1) ${TOMCAT}/webapps/examples/WEB-INF/jsp/example-taglib.tld
を参考に、tldファイルを作成
(2) ${TOMCAT}/webapps/examples/WEB-INF/web.xml の <taglib/>
を参考に、tldファイル所在を登録
してみそ。
>>800 早速のお返事、ありがとうございます。
ただ、悲しいかな、説明の内容が理解できるところまでいってません。
TOMCATの環境で、参考になるファイルを教えていただいたように
思うのですが、そのTOMCAT環境がないためそれすら叶いません。
いろいろと調べながら書いたので、tld自体は大丈夫な
気がします。(それなら動くはずですが・・・)
原因として、サーバーからtldが見えていないような気がします。
tldファイルの所在を登録しようとしても、今の環境(VisualAge
のテスト環境である、WebSphereの小さい版)ではweb.xmlが
ありません。
これって、デフォルトでは存在せず、自前で作るファイル
なのでしょうか?
802 :
デフォルトの名無しさん :01/12/30 00:55
PrintWriter の flush() とは何をするメソッドですか
803 :
デフォルトの名無しさん :01/12/30 01:04
>>802 IOバッファに残っていて、デバイスにまだ書き込まれて
いないデータを掃きだします。
TomcatでDB内容閲覧Servletを製作している者です。 DB検索に時間がかかるので、getメソッドをSyncronizedにしないとうまく動いてくれません。 少しパフォーマンスが悪いようなのですが、何か解決策があったら教えて下さい。 お願いします。
DBの構成やSQL(使ってんだろ?)を見直す。
一応、SQLは単純にSELECT * FROM <Table名>です。 Type1からType4まで試してみましたが、効果があがりません。 LANの通信速度やOracleのレスポンス等の方面からの切り込みよりも、 ソース上でのチューニング方法があれば教えていただきたいのですが! おねがいしまふ。
808 :
あたー!!!! :01/12/30 01:59
トムキャットって昔北斗の拳の主題歌を 歌ってたグループですか?
809 :
デフォルトの名無しさん :01/12/30 02:06
>>806 まずprofileとってみろ。まず間違いなくDBの待ちがほとんどだから。
時間を喰ってないところをどんなにチューニングしたって全然速くならない。
あ、「DB検索に時間がかかるので」って分かってんじゃん。 時間がかかってるところをいじらずにどこをいじるっつーんだ。
812 :
デフォルトの名無しさん :01/12/30 02:45
>>806 チューニングするより、まずはDBMSの学習を始める事を勧めます。
*を止める、きちんと列名を書く。
814 :
デフォルトの名無しさん :01/12/31 00:30
>>804 DB閲覧するだけのWebアプリ作ってるの?
WebObjects使うと、そんなの3分で作れるよ。
マジ。
815 :
デフォルトの名無しさん :01/12/31 01:02
>>804 毎回connectionを張りに逝ってるとか
>>815 connectionはずっとつなげっぱなしなんですが、、、
SQLの実行についてはなるべくインスタンスは最小に、かつnullになったりgcに食われないようにしたりしています。
>813,>815さん、色々とアドバイス有難うございます。
>810さん、実際、僕が聞いていたのは、レスポンスを早くするのにどんな工夫をしているのかを皆さんに聞きたかったのですが。
例えば、「Type1よりもType4の方が、、、」と言った事や、「3秒以内に同一のリクエストがある時、CSVファイルに書き出しておいた結果を利用する」と言うようなことです。
ドライバーの適材適所だとか、いろいろ軽くこなすテクニックとかですね、、
>813さん、*を使わずカラム名を直接指定してみます。
ありがとございました!
質問です。 サーバー群の入り口についてるロードバランススイッチの説明書に書いてある 「セッション」とサーブレットのセッションは関係あるんでしょうか?
818 :
デフォルトの名無しさん :01/12/31 17:38
>>817 半分くらいしか質問の意味がわかんないんだけど、一般的なロードバランシングとセッションについて書くと、もしセッション情報がメモリにあると、
ラウンドロビンなロードバランシングでは1度目と2度目のアクセスマシンが違っていたら、その2つのマシンでセッションは共有できていないわけ。
だから、セッション情報を共有する仕組みが必要。
>>818 説明書にはロードバランススイッチがセッションを保持すると書かれているのです。
20000セッションとか性能が書いてあるのです。
意味不明なのです。
820 :
デフォルトの名無しさん :02/01/01 02:22
質問です。 OSがXPなんですけど、JAVA2SDK1.3.1_02って対応してるんですか? sunのHPではwin2000proまでしか書いていないので。 後J2EEとの違いってなんですか?
J2EEはサーバーサイド用 XPは知らない。
>>820 Sunにそう書いてあるのなら対応してないんだろう。
趣味で使うだけならためしに入れてみたら?
823 :
デフォルトの名無しさん :02/01/02 05:59
それにしても、ここあがんねぇ~な Java結構書き込みあんのに まぁ、とりあえず、あげとく
824 :
デフォルトの名無しさん :02/01/02 07:15
825 :
Java厨 :02/01/05 20:13
Weblogicの場合 サーブレットで一時的にファイルを作成して それを<IMG>タグのsrcに指定するような場合ですが、 作るときはWLSのHome以下のパス指定で出来たとして 参照させるにはURLにしないとだめなのですが、 この変換が分かりません…。 っていうか、 getServletContext().getRealPath("/");でnullが返ってきちゃったりするわけで… 勝手にサーバーのディレクトリいじるようなap作るなって言うなら、 どうすれば良いんですかね?
>>825 テンポラリファイル置くディレクトリが固定だったら、
URL自体も固定にならんの?
WebLogicをよく知らんのだがパスのマッピングしておいたら
すみそうな。
827 :
デフォルトの名無しさん :02/01/07 20:13
JSPファイルの中で自前クラスを使用する時に、 自前クラスが宣言されているclassファイルと JSPファイルをどのように関連付けさせれば良いのでしょうか?
828 :
デフォルトの名無しさん :02/01/07 20:49
>>827 じゃぁ java.lang.String とはどう対応づけ(?)してるのかと問いたい。
最近始めた超初心者です。 先輩方教えてください。 自分のパソでJSPをテキストエディタで作りました。 ――――――――――――――――――――――――――― <html><body> <title>JSPのテスト</title> <% out.println("<html><body>"); out.println("<br><h1>"); out.println("a<br>"); out.println("</h1></body></html>"); %> </body></html> ――――――――――――――――――――――――――― で、このファイルにtest.jspっていう名前を付けて保存して、 ブラウザで開いたんですけど、なにも表示されません。 どうしてですか?
830 :
JSP&rlo;PSJ&rle; :02/01/08 05:42
>>829 Tomcatかなんか、サーブレット/JSPコンテナなるものは使ってる?
>>830 JSPコンテナっていうのが必要なんですか?
手元には入門用の本が一冊しかないんですが、
このサーブレットエンジン(?)に関しての説明が
はしょってあるので,よく分からないんです。
基本の基本を覚えるだけで時間かかりそう・・・。
とりあえず、
>>829 のhtmlで”a"を表示したいんですけど。
832 :
デフォルトの名無しさん :02/01/08 06:17
>>831 jspとしても間違ってます。。
Tomcat and Windows and jsp でgoogleして適当に入門してくださいな…
837 :
J2EEチューボー :02/01/08 18:57
ワタクシWebLogic6.1でWebアプリケーション開発しとる物なんですが、 IE6.02とIE5.5に去年の12月に出たセキュリティーパッチを当てたブラウザから操作すると 途中でセッションが切れてしまってどうなってるんだ! です。 どうしたもんなんでしょう? 解決策はありますか?
>>JSPファイルの中で自前クラスを使用する時に、 >>自前クラスが宣言されているclassファイルと >>JSPファイルをどのように関連付けさせれば良いのでしょうか? > >じゃぁ java.lang.String とはどう対応づけ(?)してるのかと問いたい。 123.classで宣言されているabcっていうクラスなら <jsp:useBean id="abc" class="123" scope="session"> で良いのでしょうか?
>>832 ども。超初心者です。
サーブレットコンテナが必要なんですね。
それがTomcatって分けですね。
なんかだんだん分かってきたっす。
付録の入門書にTomcatついてたんですけど、
これってLinuxが必要みたいで・・・。
今のところマシン一台しかないので出来ないです。
別のマシン漁って挑戦してみたいと思います。
ありがとうございました。
840 :
デフォルトの名無しさん :02/01/08 21:41
トムキャットをインストールしたのに 起動しねえー 2時間もかけてやったのにー startup.shすると、 using classpat /usr/local/・・・ って、クラスパスがずらずらでてきて、 エラーメッセージらしいのもないし どこが悪いのかわからない・・・
842 :
デフォルトの名無しさん :02/01/08 22:33
>>841 それはstartup.shが適当に捜してきた実行時に使用するクラスパス一覧だろ。
べつにエラーメッセージじゃないと思うが。
他になんかエラーでてんのか?
http://[そのマシンのアドレス]:8080/ にアクセスしてみたか?
もしかしてWinでcygwin使って起動とか回りくどいことしてないか?
OSはレッドハットの7.2です。 もう一度やってみます。
>>843 tomcatバージョンいくつ?
あと、Apacheでmod_jk.so 使ってる?
少し前の本に入ってたやつだから 古いかもしんないです。 やっぱ新しいほうがいいですよね?
Tomcat のデフォルトポート 8080 は HTTP プロキシポートとカブってるから気をつけや。
>>841 新しいものを拾うより、ちょっと古めのほうが解説が転がっててやりやすいよ。
エラーが出てないんなら起動できてる気がしなくもないが。
848 :
(TOMCAT)&rlo;(TACMOT)&rle; :02/01/09 01:01
>>839 Windows版ならインストーラーのexeがある。
インストール終了後スタートメニューからスタートを選べばとりあえず起動するはず。
JSPとか動かすにはちょっと設定した方がいいけどね。
tomcat3.2使ってるんですけど、よく落ちます。 JSPやサーブレットでエラーが発生すると、落ちるように なるんですかね? 4.0.1とかに上げれば、もう少し安定するようになりますか?
む、ダメだ。 起動させたあとshutdownしようとすると おかしくなる。 もういちどはじめからやってみよう・・・
>>841 漏れ、3.3使ってるけど、設定ファイルの置き方とかが、
Web上にある3.2系列の情報とビミョウに変わってて結構苦労した(初Tomcat)。
とりあえず、ps axf とかの情報を何か出さんと、誰も答えられん。
ちなみに、漏れもRedHat7.2使ってる。
>852 どっかインストール方法のってるHP ありませんかね? Linux自体、あまりなれてないもので・・・
854 :
デフォルトの名無しさん :02/01/09 10:07
>>852 >Web上にある3.2系列の情報とビミョウに変わってて結構苦労した(初Tomcat)。
4.0~はweb.xmlの検証(DTDとの突き合わせ)をしますから、DTD読めないと
更に苦労しますよ(w
856 :
J2EEチューボー :02/01/09 13:48
他のスレでも聞いたのですが結構困ってます。 WebLogic6.1でWebアプリケーション開発してるんですが、 IE6.02とIE5.5に去年の12月に出たセキュリティーパッチを当てたブラウザから操作すると 途中でセッションが切れてしまってしまうのです。 どうしたもんなんでしょう? 解決策はありますか? というかこんな目に遭った人は他にはいないのでしょうか?
857 :
J2EEチューボー :02/01/09 13:49
あ、誤爆。 ↑ ということを他のスレで書こうとしたのでした
858 :
デフォルトの名無しさん :02/01/09 17:18
一番安定してる環境はどれだとおもいますか?
>>851 linuxでtomcat4から起動してから安定稼動するまでに結構時間がかかるようになった。
ps -ef | grep java でボロボロプロセスが増えるのがみえる。
(数秒~数十秒。linuxのスレッド実装のせいかも)
その間にシャットダウンするとおかしな事になる。
860 :
デフォルトの名無しさん :02/01/09 19:30
>>856 こちらはweblogic 5.0.1 Sp5 or Sp10
ですが IEのウインドウから子ウインドウを上げ
子ウインドウを閉じると親ウインドウで
セッションタイムアウトのエラーになります。
同じですか?
原因、対処方法等わかってますでしょうか?
861 :
デフォルトの名無しさん :02/01/09 19:35
862 :
デフォルトの名無しさん :02/01/09 23:43
セッションについてどなたか教えてください。 セッションはrequest.getSession(true)することで初めて 存在するものだと思っていたのですが、例えばセッションを意識せず (request.getSession(true)を行わず)servletからJSPにforwardし 再び元のservletに戻ってきたときなどに試しにrequest.getSession(false)を 実行するとnullではなくセッションを返してきました。 これはJSPにforwardしたからなんでしょうか?
WebLogicGETしました!
これで、スタンドアロンで勉強できそうです。
>>856 とか
>>860 を読む限りなんか問題ありそうですね。
俺はまだインストールすらしてないんですけど。
がんばろーっと。
追伸
>>840 ,848
ありがとうございました。
>>862 JSP は <%@ page %> タグで session="false" と明示的に記述してやらないと勝手にセッションを作っちゃう。
>>866 なるほどそういうことでしたか。
ありがとうございました。
868 :
J2EEチューボー :02/01/10 14:57
869 :
デフォルトの名無しさん :02/01/10 15:36
>>868 番号は忘れましたが去年くれの
パッチ(サイトスクリプト関係含む11月付けのパッチ?)
を当ててから発生するみたいです。
他のスレそれ見ました。文体がそっくりだったので同一人物かと 笑
870 :
デフォルトの名無しさん :02/01/11 23:56
74
871 :
デフォルトの名無しさん :02/01/12 07:39
servletからサーバ上にある2つのファイルをクライアントにダウンロードするにはどうやればいいのでしょうか? いつのファイルであれば response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "inline; filename=\"xxxx.xxx\""); でいいのでしょうけど,続けて2つ目のファイルを送りたいのですが。
872 :
デフォルトの名無しさん :02/01/12 08:02
通常のWebインターフェイスでそんなことをしているものがあるかと問いたいが、 返送したHTML上からframeやJavaScriptを使って二つのリクエストを出させればできるでしょう。
回答ありがとう。 説明不足でした。 ブラウザ上は1つのプラグインを起動、つまりフレームはひとつです。 そのプラグインは複数のファイルをマージして表示させるビューワなんですわ。 んでoutputStreamで送り込むときに、それぞれのファイル名を指定したい,と。 無理ッすかね。
そのPlug-inから複数のリクエストを出させれば良い。 Appletなら楽勝。あるいはサーバ上でPlug-inが表示できるように マージしたコンテンツを返す。
プラグインは他社のものなので修正できないんです。 >サーバ上でPlug-inが表示できるようにマージしたコンテンツを返す。 マージしたコンテンツを返そうと考えているんだけど, それぞれのファイル名をどうやって返せばいいのか,がわからんのです。
876 :
デフォルトの名無しさん :02/01/12 19:42
PlugIn関係まじめに調べた事ないんですが、、、 Webの「サーバ・プッシュ」や、メールの添付ファイルで使われる、 「MIMEマルチパート」という形式を使えば、 MIMEタイプやファイル名を個別に指定した 複数のファイルを送る事ができる。 例えばこんな感じ: ================================================ Content-type: multipart/mixed; boundary="(^^;)" --(^^;) Content-type: image/gif; name="がぞー.gif" Content-Disposition: inline; filename="C:\がぞー.gif" gifのバイナリー・イメージ --(^^;) Content-type: text/html; name="てきすと.txt" Content-Disposition: inline; filename="C:\てきすと.txt" がぞー.gifを送りましたので見れ。 --(^^;)-- ================================================ んで、PlugInが MIMEマルチパートを解釈できるかどうかとか、 送付した複数ファイル内(例:html)で相互参照をしたい時どうするか、 というあたりは、PlugInを詳しく調べてみないとわからないYO!
>>876 ありがとう。
ほほー、マルチパートで送るのですか。
おっしゃるとおりプラグインが「MIMEマルチパートを解釈できるか」
にかかっているわけですけどね。
>>877 ところで素朴な疑問なんですが、
どうして1リクエストで複数ファイルを受け取る必要があるんですか?
仕様要求 or できることはわかっているが詳細情報がない ?
>>878 私はサーバ側なので、送る方です。
ブラウザのプラグインビューワがあって、複数の画像(CAD)ファイルをマージして
表示できるらしいのですが,ご想像のように詳細情報がないのです。「できるらしい」とだけ。
いろいろ調べた結果,どうもそのビューワは親ファイルを送ると,その親ファイルに
書き込まれている複数の子ファイル名でそれら子ファイルの内容を読み込んで,結果、
マージして表示するみたいです。子ファイルは親ファイルと同じパスにある必要が
あるみたい。
なんかびっどい仕様だと思いません?
880 :
デフォルトの名無しさん :02/01/12 21:37
ひっどいですね(藁 ためしに、 子ファイル名をURLで指定したら、勝手に取りに逝ってくれる、 なんつー事はないだろうか? だめなら、 Script or 別PlugIn で、しこしこ必要ファイルをダウンロードして、 LiveScript! か OLEscriptingかなんかで、 ターゲットPlugInをキーックしてみますか?(面倒そうなんで逝ってくる)
あー ようやくtomcatのインストールおわって猫がみれた。 満足。 3時間かかっちまった。。
>>879 それは単にリンク付きのHTMLを返せといっているのと同じことでは?
だから、複数のファイルを生成したあとでそれらへの参照を含んだ
親ファイルなるものを送れば終わりってことでしょ
883 :
デフォルトの名無しさん :02/01/13 13:22
倉庫行き帽子
884 :
マルチチポストなんだけど、こっちのほうが意見期待できるので :02/01/15 13:32
JRUNとTOMCAT、どっちが安定してると思いますか? 今、試作版をNT+IIS+JRUN3.1環境で作ってテストしてるのですが、 一週間に一回くらいOSごとかたまっちゃうんですよね (たぶんJRUNが原因っぽい) 本番はlinuxになるのですが、 もしTOMCATが安定してそうだったら、乗り換えようかと思ってるのですが・・・
885 :
デフォルトの名無しさん :02/01/15 15:23
あがる?
886 :
デフォルトの名無しさん :02/01/15 18:59
すみません。 サーブレットってWindows98での開発(勉強の為)は無理ですか?
聞く前に試そう
888 :
デフォルトの名無しさん :02/01/15 19:22
889 :
デフォルトの名無しさん :02/01/15 19:31
一年ほど前にWin98でもJSDKで少しサーブレットを作って見たことがあるのですが なんか、JSDKってJ2EEに完全に統合されちゃった(?)みたいだし、 今はWin98での開発は完全に無理なのかな・・。
890 :
デフォルトの名無しさん :02/01/15 22:04
aaaaa
>>888 CLASSPATH通ってないとか?
>>889 J2EEってサポート外かもしれんけどWin98に入るよ。
Servlet使いたいだけならTomcat入れるでもよい。
892 :
デフォルトの名無しさん :02/01/16 12:57
893 :
デフォルトの名無しさん :02/01/16 16:28
TOMCATのJDBCで、日本語は扱えますか?
894 :
メールを読めば1,250円をくれました!! :02/01/16 16:29
1ヶ月で1通のメールが届きます(登録メールアドレスに)
このメールを確認するだけで1250円を差し上げます。
通帳の口座番号は要らない。(家に直接配達してくれる。)
わが国のサイトでもメール1通を確認すれば1~5(円)
を貰いますが、Net先進国アメリカでは10ドルを貰います。
(広告業界はここまできている証拠です。)
このサイトはアメリカUSAのサイトで、
2002年現在日本ではほとんど加入者がいない状態です。
もう世界的に(アメリカ、韓国等で200万人以上の会員が
加入済みで実績有り)
http://www.MintMail.com/?m=1941971 このURLをクリックして入力すれば登録完了です。
そんな はした金 いらねぇよ ボケ
サーブレットやるのって、 J2EEじゃないとダメなんですか?
IBM-JDK, Apache, Tomcatでやってますが何か?
まちがった。 JDKのスタンダードじゃなくて、エンタープライズじゃないと ダメなんですか?
あああ きにしないでください なんでもないです
900 :
スレ違いだけど、ここしかないので・・・ :02/01/17 16:23
JSPの中で、 JavaScriptの記述や、プラグインさせるための記述(<OBJECT>や<EMBED>で) を(HTMLと同じように)扱う事はできますか?
>>898 サーブレットエンジンさえ動けば何でもいいんじゃない・
903 :
デフォルトの名無しさん :02/01/18 13:50
apaheとtomcatの設定もおわり、 それぞれがちゃんと起動するようになったんですが、 2つがちゃんと連携しているかどうかテストするには どうすればいいんでしょうか
>>903 ポート指定なしで動けばれんけいしているのでは・
あ、:80のポート指定なしでも apacheのページがでました。 解決?
>>905 アパチ止めて、確認してみる。
動かなければ連携している。
JRun-Studio ってどうよ? JBuilder以上に使い方わからん……。 なんかこれで作った「らしい」害虫のプログラム、 今度DB乗せ換えするからって投げられたんだけど、 チェックロジック探そうにもモジュール構成ごちゃごちゃで どこをいじればいいのか、ちっともわからん。 ただの愚痴になったからsage
HP-AS 日本語版 2月末リリースに延期マズーsage
個人でWebサーバーたててる人、 どんなモノおいてます?
クライアントからファイルのアップロードさせるとき そのファイルの種類のチェックはどういう方法があるのでしょうか? 拡張しだけで判断するのは判断は避けたく、 ヘッダからマジックナンバーを抽出するとかあるようですが、 JAVAでそれを確認する方法をご教授願えないでしょうか? また、その他のチェック方法もありましたら 教えて頂きたいです。 よろしくお願いします。
911 :
デフォルトの名無しさん :02/01/24 11:06
バイナリでとるんだろうから、バイナリを解析するしかないんじゃない? あるいは、クライアントにファイルの種類を選択してもらって、それもパラメータとして送るか。 どっちにしろ、サーブレットの中でファイルのないよう解析を行うなら、形式に縛りは必要だよね。
912 :
デフォルトの名無しさん :02/01/24 11:23
Tomcat 4 で
http://localhost:8080/tomcat-docs/ にあるガイドに従って
データソースや JavaMail を JNDI に配置しようとしていますが、どうも
実行時に 「java:comp がバインドされていない」と言われてしまいます。
何がいけないんでしょうか?
<Context path="/foo" ...>
...
<Resource name="jdbc/XYZDS" auth="SERVLET" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/XYZDS">
<parameter><name>user</name><value>abc</value></parameter>
<parameter><name>password</name><value>abc</value></parameter>
<parameter><name>driverClassName</name><value>foo.bar.Driver</value></parameter>
<parameter><name>driverName</name><value>jdbc:foo:XYZ</value></parameter>
</ResourceParams>
<Resource name="mail/Session" auth="Container" type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
<parameter><name>mail.smtp.host</name><value>localhost</value></parameter>
</ResourceParams>
...
</Context>
これって java:comp/env/jdbc/XYZDS と java:comp/env/mail/Session に
オブジェクトを配置する設定ですよね…。っていうか、配置できないならその
エラーメッセージはどこに出てるんだー。
JPEGやGIFなどのマジックナンバー知っている方見えますか?
いろいろ調べたのですが、見つけれなくて・・・
>>911 さんのご指摘により
一応、JPEGファイルを直接調べたところ、ヘッダ12バイトは
FF D8 FF E0 00 10 4A 46 49 46 00 01で固定のようです。
もっと詳細な(画像系の)仕様が知りたいのですが、
ご存知の方、もしくは仕様が載っているページなど
ありましたら、教えて頂きたいです。
よろしくお願いします。
file のソースでもみれば。
915 :
デフォルトの名無しさん :02/01/24 15:08
JRUN無償版怪しくないか? 不安定なようにおもう。 まあ無料版だからな
916 :
デフォルトの名無しさん :02/01/24 15:12
>>916 ありがとうございます!!
参考にさせていただきます!!
918 :
デフォルトの名無しさん :02/01/24 16:15
>>871 >servletからサーバ上にある2つのファイルをクライアントにダウンロードするにはどうやればいいのでしょうか?
亀レスだけど ZIP でまとめて落とすという手もある。
ディレクトリ構成ごと落とせるので、折れはサーバ側ファイルの退避&復元とかでよく使う。
age
920 :
デフォルトの名無しさん :02/01/28 11:09
>>915 今の仕事のプロトタイプ版で使ったけど、
やっぱり たまにOSごと止まる
本番用に製品版を購入する予定
どれだけ差があるのか気になるところ
今 weblogic (5.10sp10) で開発してるんですけど,JSP や Servlet で 標準エラー出力をファイルに出したい場合, 各ファイルの先頭に System.setErr(...) を書かなくては いけないんでしょうか. それとも,ほかに何か方法はあるのでしょうか.
922 :
デフォルトの名無しさん :02/01/29 11:29
web.xmlの<?xml version="1.0" encoding="ISO-8859-1"?> という記述の部分でUTF-8を指定するとエラーになりました。 このencodingには何の文字コードを指定してやるのが 一般というか正しいのでしょうか?
>>922 一般的には utf-8 だろうけど、それでだめなら Shift_JIS とか?
それでだめならというか、Shift_JIS で日本語書いたなら、だ。
>>922 utf-8 で書いていないのに、encoding="utf-8"としてない?
web.xmlを書いた文字コードを指定するべし。
たとえば、Windows 環境なら Shift_Jis とかね。
utf-8 か utf-16 で書いてあるなら、xml宣言は省略可だよ。
試してみたら?
926 :
デフォルトの名無しさん :02/01/29 15:49
JRUNの漢字が化ける。 リクエストしたとき値をGETしたとき。なぜじゃ。
>>925 XML宣言じゃなくてencoding属性ね。
>>926 > JRUNの漢字が化ける。
> リクエストしたとき値をGETしたとき。なぜじゃ。
ttp://www.ingrid.org/java/jserv/i18n/corruptedchar.html によると,
if ((s = req.getParameter("s")) != null) {
try {
s = new String(s.getBytes("iso-8859-1"), "Shift_JIS");
} catch (UnsupportedEncodingException e) {
// エラー処理を記述する
}
}
とかするといいみたいですが,自分もあまりよく分っていない.
929 :
デフォルトの名無しさん :02/01/30 17:24
>ServletContext sc = getServletContext(); このgetServletContext()はクラスですか、それとも インターフェースなんでしょうか? インターフェースServletConfigの中に、getServletContext() というメソッドがあるのは分かるんですが、 インスタンス名.メソッド のような書き方をされていないので?です。 なんだか関数単独で書かれているみたいで、こんな文法がJavaに あったっけ?と悩んでいます。 厨房で申し訳ありませんが、教えて下さい。
>>929 this.getServletContext() と同義 (多分この場合は super.getServletContext() と同じ動き)。
>930 うをっ!ありがとうございます~ サンプルプログラムを見てみると、HttpServletを継承した クラスの中で使われていました。で、HttpServletには ServletConfigインターフェースが実装されていて、 その中にはgetServletContext()メソッド! superは省略できるのですね? これだけで回答できるとはさすが・・・感謝です!
>>912 以下の記述でいけたyo
<Context ...
<Resource name="jdbc/HOGEDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/HOGEDB">
<parameter>
<name>user</name>
<value>hoge</value>
</parameter>
<parameter>
<name>password</name>
<value>hoge</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>driverName</name>
<value>jdbc:oracle:thin:@SPIKE:1521:HOGEDB</value>
</parameter>
</ResourceParams>
</Context>
933 :
デフォルトの名無しさん :02/01/31 12:38
セッションとコネクションについて悩んでいます。 一日6万HITくらいする企業HPのコンテンツのひとつがJSPでできてるんですが、 最近、DBサーバが不調になりました。 というのも、DB(Sybase)の最大接続数が25で、常にその接続を使い切ってる からです。 JSPは、その最初のページにアクセスした時点で、すぐにDBを見に行ってしまいます。 接続プーリングはJRun3.0に任せきっているので、最大接続プーリング数の 設定ができず、プーリングのタイムアウト時間を短くして対応しようと考えました。 そしたら、SEが「いくらプーリングを短くしても、25ヒット以上したら ダメなんだから、セッションの最大数を25に制限しよう」と言い出しました。 そんな簡単なことでいいんすか?
>>933 あのさ…
まさかとは思うけど、ひょっとしてDBのコネクションを HTTP セッションに入れてんの?
もしそんなことやってるんだったらそのSEをSEと呼ばなくても良いよ。
そうじゃなくてコネクションを使い切っちゃうんだったら、ちゃんと使い終わったコネクション
クローズしてないだけでしょ。この場合、セッションの最大数じゃなくて同時受付リクエスト
数だから、どのみちそのSEはSヨに降格だな。
>>934 ありがとうございます。
>セッションの最大数じゃなくて同時受付リクエスト
>数だから
これで、Javaに詳しくない私にも、ピンと来ました。
納得です。
ちなみに、そのSEがそのJSPを設計したわけではないので、
単純にWebに疎いだけかと(^^;
とはいえ、どっちにせよ、降格は免れませんな。Sヨって方向で。
しかし、頭固そうなんで、彼が納得できるように説明できるか、不安です。
あげてしまった… ウツダ……
カスタムタグむずかしすィー 表示できねー
あ でけた
939 :
デフォルトの名無しさん :02/02/01 02:58
ひーん Tomcatとcocoonで携帯用のページつくってるんだけど、 session変数としてVectorにパラメータを 入れようとすると、j-sky用だけ少ししか突っ込めなくて こまっているのれす servletからDBで取ってきた値をXSPにわたそうとすると、 するときで、一定量を超えると500エラーになってしまうのれす。 imodeもezWEBも大丈夫なのに、 同じ現象の人で解決した人いないですか?
>939 500ってサーバサイドのエラーだろ? エラーメッセージ、出てない? 出てたら教えれ。
解決ちまちた Java関係なかった J-phoneはパラメータの中で@とか.は使えないのね。
942 :
デフォルトの名無しさん :02/02/03 02:11
こんにちは。 どうしても原因がわからないので質問さしてください。 セッションについてなんですが、 サーブレットからJSPにリダイレクトときに response.sendRedirect (response.encodeRedirectURL(URL)); を使ってるのですが、サーブレットでセッションにセットしたのに リダイレクト先のJSPでゲットしようとするとゲットできません。 しかもこれ、ちゃんとセットできてるときとできないときがあります。 できてない場合はもう一度フォームから送信するとセットされます。 極めてまれに起こる現象なので再現性がなく困っています。 どなたか分かる人いたらぜひおしえてください、お願いします!
クライアントのCookie受付可否の設定は?
>>943 特になにもしておりません。
というか今頃考えてわかってきたのですが、
Redirectだからまずいんじゃないかなと思ってきました。
一旦クライアントに返してるせいでセッションにセットできて
いないのかなと思ってるんですが、、、
とりあえずJSPにフォワードしてみました。
再現性がないのでまた起こるかどうかがよくわからないのですが、、、
全然関係ないですか?
知識不足でまじでわからず、ほんとにすいません。
いずれにせよ、Cookie受付可否の設定はしたほうがよろしいのでしょうか?
度々すいません。 やはり、forwardにしてみたのですが、 だめなときがありました。 やはりクッキーの設定がなんかしらの影響をおよぼすのでしょうか? クライアントのクッキー設定なんですが、943は全く答えになって ませんね。すいません。クッキーは無効になっていました。 初めて自分のたてたサーバにアクセスするマシンがこのような セットされていない現象を起こしていました。 いろんなPCを用いて(学校なのでたくさんあります) やってみたのですが、すいませんクッキーの設定が どうなっているかはどれも確認してませんでした。 またそれらのPCは 一時的に使えただけなのでそのマシンがクッキーの設定を 許可していたか確認できません。 すいません。 原因わかればぜひよろしくお願いします!
クライアントに表示されるURLにjsessionidうんたらは見えてる? あとServletとJSPは当然同じContextにあるよね。 あと、セッションのセット/ゲットって具体的にどういう操作のことを言ってる?
>>942 環境を書け。
IBM Visual Age for Java の WebSphere Test Environment はたまにセッションが消える。
>>942 オートリロードが設定されてクラスが更新されたりするとセッション消えそうだけど、
そういうことはないのか?
Forte for Java って使ってる人いる?
>>946 はい、JsessionIdは見えています。
ログイン直後のコマンド選択画面のURLに現れています。
ただ、その後なにかサービスを実行するときには消えています。
これは別にいいんですよね?
Contextも同じです。
セットとゲットはsession.setAttributeとsession.getAttributeです。
>>947 Tomcat3.2.3です。Webサーバも兼ねています。
たまに消える環境もあるんですね。そんなことがあるとは・・・
>>948 オートリロードはtrueに設定されています。
クラスが更新されていると、そのサーブレットにいったときに
セッションが消えてしまうのですか?
それでさきほど再び、初めてそのサーバにアクセスするマシンを
使ってみたのですがやはりこの現象がおきてしまいました。
それで気づいたのですが、サーブレットからJSPの連携に関して、
encodeURLメソッドを使用したURLを引数にして
redirectとforward両方でためしたのですが、
forwardメソッドでページを移動している間はセッション情報が保持されて
いるのですが、途中でredirectメソッドを使用している場所から
セッション情報が受け渡されていないことがわかりました。
(もちろんこれは最初の1回だけで次に試すときにはうまく動きます)
forwardとredirectの原理はわかっているつもりなんですが、
セッション情報に関係してくるとは考えてなかったのですが
分かる方いらっしゃったらぜひ教えてください。
よろしくお願いします。
セキュリティパッチを当てたIE6でセッションが引き継がれないバグ いうのは関係ないかな?
ブラウザの問題ではないと考えています。 ブラウザはネスケやIE6.0、5.5など さまざまなもので試してみましたがどれもこの現象が 起こるやつはおこってしまいます。
>>950 環境知らんし直るか分からんけど、とりあえず Tomcat 4 にしてみれ。
ほんとにencodeRedirectURL()使ってる? 950にはencodeURL()って書いてあるよ。ただのtypoならいいけど
>>953 tomcat4でてるんですか?知らなかった、、、
機会があるときに変えてみたいと思います。
>>954 tomcatでは実装上でencodeRedirectURLとencodeURLに違いは
ないとどっかで読んだのですが、、、
自分のプログラムでは、ログイン処理を行なうサーブレットで
ユーザを管理者と利用者で行き先を変更しているのですが、
この場合はencodeURLのほうがいいのかなと思ってそちらを現在は使っています。
ただ一応encodeRedirectURLでやってみたこともあったのですが
特に変わりありませんでした。
申し訳ないですが、この2つのメソッドの違いを詳しく教えていただけない
でしょうか?
調べたのですが詳しい情報がどこにもありませんでした。
なんか質問ばかりですいません。よろしくお願いします。
>>955 Tomcat 4 でそれ系のバグがフィクスされてた様な…
わすれた
所で何で Cookie じゃなくて URL Rewriting 使ってるの?
960 踏んだ奴、そろそろ次スレ立ててくれ。
>>956 あ、そうなんですか!
ちょっと後で調べて見ます。ありがとうございます。
>>957 とりあえずはクッキーを使用したくない人を考えて
URL Rewritingすればいいかなと思っていました。
ああ、実は全然たいしたシステムじゃないんですが、
学生の研究兼、すでに実用化されてしまっているシステムなんです。
動いているのに、このバグを依然取り払うことができないとは、、
なにがつらいって再現性がないんですよね。
決まった規則で起こる現象なら原因解明できそうですが
いつ起こるかわからないとなると、、、
自分が使ってるPCでは絶対におこんないし、、、
スレたてさしてもらいます。 実は、プログラム板に来たのは今回が初めてなんですが、 新スレ立てたら即ウメがここも普通ですか?
>>959 逆に URL Rewriting でやってるならアクセスログにセッション ID が残ってるんじゃないの?
再現した時のアクセスログのセッション ID おっかけてみては。
>>961 そうですよね。ログに残ってるはずなんだから
IDおっかけてみればどうなってるかわかるかもしれませんよね。
ちょっとそういう風に記述してみます。
ありがとうございます。
問題は次にいつ起こるかか、、、
963 :
デフォルトの名無しさん :02/02/03 22:06
System.out.println(sesison.getSessionId()); してみりゃいいじゃねぇか。 Cookie効いてたらencodeURL()してもURLは変わらない。
>>962 あのさ、もしかしてなんだけど、サーブレットがマルチスレッド未対応なんじゃない?
↓みたいにローカル変数にすべきところをサーブレット内でインスタンス変数として宣言してない?
public class AbcServlet extends HttpServlet{
private HttpSession session = null;
protected void doGet(HttpServletRequest request, HttpServletResponse response){
session = request.getSession(true);
…
session.setAttribute("hoge", "烏龍茶");
…
response.sendRedirect("...");
return;
}
}
とりあえずサーブレット内のインスタンス変数確認して、それ以外に static 宣言
されている変数やメソッドを疑ってみ。
(すみません、ダブルポストしています)
JSPから
<input type='file' name='img' size ='50'>
を使い、ファイル(画像)をアップロードしてDB(POSTGRES)にINSERTする場合、どのような手順になるのでしょうか?
ローカルファイルのINSERTの場合は、参考ページとして
http://www.postgresql.jp/document/pg653doc/ej/programmer/x8420.htm には
create table images (imgname name,imgoid oid);
-----------------------------------------------
File file = new File("myimage.gif");
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement("insert into images values (?,?)");
ps.setString(1,file.getName());
ps.setBinaryStream(2,fis,file.length());
ps.executeUpdate();
ps.close();
fis.close();
とありますが・・・
これをブラウザからアップロードするやり方に変形させる場合どのようになるのでしょうか?
また、「他の方法でやっている」というのもありましたらよろしくお願いします。
初歩的な質問かもしれませんが、よろしくお願いします。
>>965 サーブレット
multipart/form-data
ファイル
アップロード
でぐぐれ。