■■ Servlet/JSP(EJB含む) 質問スレ ■■
1 :
nobodyさん :
02/06/08 11:03 ID:Kkr1yl67 って無いよな? というわけでつくたよ。
2 :
1 :02/06/08 11:14 ID:Kkr1yl67
まず漏れがサンプル質問。 てかマジ質問です。w sessionのタイムアウト時に、何か特定の処理をはさむことってできるのかね? ログイン制のシステムで、ログアウトボタンを押さずにブラウザ閉じられるとか かなりよくあるシチュエーションでしょ?その対策として。 もっというと、 ショッピングサイトで、カゴに入っているものを戻す(在庫をDBに戻す) とか。 どうよ。
,,..--―-、 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ヽ /, -----、.ヽ, / いまだ、 | | i_,,,,_ __゙l | | 3げっと。 | ,!、i'゙-‐-: '-、|/ / _______/ /'') ..., '‐-‐、.j  ̄ ̄ / ,‐!::...`'''''''`ノ _,,,l ;! ::|ヽ、二 イ , -‐'゙゛ i::.. | .ヽ/;ヽj!`‐-、_ l ノ::. .:|、 .ヽ,:ヽ| <゛~ヽ、 ,:''`` ''"゙.|;;:‐''゙|.ヽ、 ヽ;::| / .|゙l ,: ヽ::il;;! ヽ、ヽ| / | :| i o゚ :`;''゙ ヽ| / | .| i ..:::::,:::'::::: . |゚ |,,;:->、 `.、__;;/:::::::::: : | !''" | i ::.:::: : | | .| | |゚ / | ................::i :| .i::、: .,,...、_|.... .::| ::| .::; ゙i゙.、, 、`、
4 :
nobodyさん :02/06/08 13:56 ID:cWcy7ZD7
>2 加護に入れた時点でDB上のテーブルから数減らすの? いや、実際造ったことないからわからないんだけど。
正常にセッション終了しなかった時点でカゴに入ってるものをDBに戻すってことでしょ? いや、実際造ったことないからわからないんだけど。
つまり誰かがカゴに入れたものは、ほかの客から注文できない(在庫があれば出来る) ような仕様って事なんですか? 購入決定したら、「ついさっきほかの客が買ったので、なくなっちゃいました」ていうのを 防いでいるって事ですよね?なんか重そう。 いや、実際造ったことないからわからないんだけど。
8 :
質問 :02/06/09 02:47 ID:???
JSPでRMIクライアント処理をさせて戻り値を表示させてあげたいのですが、 リモートインターフェースクラスを呼び出せていない(nullオブジェクトを 作るところでエラー)みたいです。 インターフェースクラスて言ったて普通のクラスなんだからclassesフォルダ の中にclassファイルをほりこんでるんですが。。。 なにかお気づきの点があれば指摘してください。
9 :
nobodyさん :02/06/10 23:23 ID:El4cfp7U
内部のサーブレットのエラー: java.lang.NoClassDefFoundError: tools/fIO でるのですが、どしてでしょう? tomcatは3.3.1使ってます。 webappはc:\ja\servletがルート、toolsは c:\ja\toolsとして、いろんなところから使う*.classおいてますが、 どうも呼び出せないのですが。
10 :
2 :02/06/11 00:59 ID:nmCoemWD
> 4, 5, 7 そうそう。そういう場合です。 在庫引き当てを、カゴに入れたじてんで行うか、 会計終了時におこなうかでは、システムの完成度が全然ちがうと思いません? (もちろん、カゴにいれた時点で在庫引き当ての方がすまーと) > 6 あ、これです! まさにこの仕組みを探していたんです。 いやぁ、長い間調べていたんですが、やっとすっきりしました。 でももう少し早くしりたかった。謎
11 :
質問 :02/06/11 01:51 ID:???
>9 ServletではないJAVAから"tools/fIO"が読み込めていて、Servletからは 読み込めないのであれば、環境変数では? CLASSPATHがと通っていない。jarファイルを直接指定するようにして設定して やらないといけないんじゃなかったかな。tomcat.bat(?)とかで無理やり指定も できたような気もします。
12 :
nobodyさん :02/06/11 11:48 ID:ZIBpVAlY
>11 ありがとうございました。PATH通したらうまくいきました。 で、また別のエラーなんですが、 メッセージ読んでも、何が問題かまったくわからないです。 内部のサーブレットのエラー: java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:232) at java.util.StringTokenizer.nextToken(StringTokenizer.java:259) at tools.fIO.f_read(fIO.java:114) とかが続きます。 どなたかわかりましたらよろしくお願いします。
>>12 少しは自分で調べてるか?
StringTokenizer と NoSuchElementException のドキュメント見て、
fIO.java : 114 あたりを見直してみろ。
>13 調べてるよ〜。 結論としては、プログラムが悪くなくて、 入力したデータが悪かったようで、解決しました。 ドキュメントってどこにあるの?
入力データにより、「内部のサーブレットのエラー」を出すのが正しい動作なのか。 すげえな。
16 :
sa :02/06/14 14:12 ID:AWU9hoAA
JavaScriptを使わずにブラウザを閉じたり ヒストリーバックしたりすることはできますか?
>>16 若干板違いだと思われ。
ちなみに答えは「無理」。
18 :
nobodyさん :02/06/15 18:47 ID:SERZ+ITN
俺もやったことある。
>>14 Sunへいけ。
こんなやつがサーブレットなんぞ作っていいのかと思うね、まったく。
21 :
sa :02/06/18 14:23 ID:aKLwa3K0
[BackSpace]、もしくは[Alt+←]っていう手もあるな
24 :
nobodyさん :02/06/19 10:45 ID:g1N05cnZ
厨質問で申し訳ないのですが。。。
現在、TomcatにWebsphere環境で動作しているアプリ
を移植しているのですが、(移植先が非力なマシンなので)
Webアプリディレクトリ配下にある、htmlにアクセス
できません。
環境は
Apache1.3.24+Tomcat4.0.3です。
tomcat、apache共rootでこの順番で起動しています。
ブラウザから見ると、
http://hostname/examples/ 以下のServlet、Jspは動作しているので、
apacheとtomcatの連携はとれていると思います。
現在の状況は、ブラウザ上で、
http://hostname/app_name/ としても、
http://hostname/examples/ で出力されるような設置配下のディレクトリ
リストが出力されません。
(リストを表示するHTML自体は表示されます。
リストが空という意味です)
25 :
nobodyさん :02/06/19 10:46 ID:g1N05cnZ
>>24 の設定状況です。
アプリ配置は
${CATALINA_HOME}/webapps/app_name/
(システムパスには$TOMCAT_HOMEも$CATALINA_HOMEも
インストールディレクトリに設定してある)
htmlは${CATALINA_HOME}/webapps/app_name/mng/a.html
でa.htmlが読めなく、tomcatから、HTTP status 404が
出力されます。mngというディレクトリもアクセス
できません。
apacheのhttpd.confには
最後の行に
WebAppConnection conn warp localhost:8008
WebAppDeploy app_name conn /app_name/
tomcatのserver.xml
(server-noexamples.xml.configから生成)には
<Context path="/app_name" docBase="webapps/app_name"
reloadable="true" crossContext="true" debug="0" />
を追加。
長々とすみませんが、ご存じの方ご教授ください。
まずtomcat単体で起動してwebapps/app_name/にアクセスできるかチェック。 ただ見た感じtomcatのserver.xmlは問題なさそうなのでhttpd.confに 以下のような感じでAliasを設定してみる。 Alias /testsites "/path/to/TestSites" <Directory "/path/to/TestSites"> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> ちょっと自信ないのでsage
27 :
nobodyさん :02/06/21 08:57 ID:FDQGCYA3
>>26 回答ありがとうございます。
まだ、行っていないのですが、
助言をもとに実行し、結果も
報告します。
Thanx age
28 :
nobodyさん :02/06/23 23:32 ID:ZCGD5Lku
29 :
nobodyさん :02/06/27 11:04 ID:wgVdc2Uq
質問: Win2000 で Tomcat4.0.3 を使っているのですが、 apacge と連携させたほうがイイですか? # mod_webapp.so など、コンパイルせんといかんみたいで、面倒ですぅ。
好きにすれば?
apacge
>>29 Tomcat単体だと
・静的HTMLの処理が遅い
・設定項目がしょぼい
・セキュリティが微妙
・CGIとかPHPとかが使えない
って事が手元の本には書いてある.
>>29 win2k tomcat4.0.3 apache1.3.24で動かしてみた。
apache\modulesにmod_webapp.soとlibapr.dllを入れて、
apache\conf内にあるhttpd.confに何行か追加したら
うまく動いたよ。
moduleのコンパイルとかは手動でやるの?
フォルダに入れただけなんだけど。それとも俺おかしいのかな?
32さんの書き込みにもあるけど、
tomcatはJSPやServletのコンテナだからCGIとかPHPは使えないよね。
後はtomcat単体では普通使わないみたいだね。apacheとの連携が一般的みたい。
俺も初心者だから説明とか間違ってたらスマソ。
34 :
29 :02/07/01 15:21 ID:YP8+yFDR
33氏と同じ環境を作ってみた。 が、フレームタグ使ってるページに飛ぶとApacheが固まる頻度がやたら高い。 mod_webapp.soじゃなくてmod_jkを使ったら…という話を聞いてやってみたが うまくいかないっすね。 厨房質問で申し訳ない限りですがフレーム使ってるページ問題なく動かせてる 人、アドバイスorお話キボン。
一応 Tomcat 単体でも CGI は動く。ただパフォーマンスと耐久性はどうだか しらんが。
>>37 proxy 使った方法だと、
ページ有効期限きって、Back を押しても「警告 : ページの有効期限切れ 」にならなかった。
>>35 俺も同じ現象が。おまけにLifeCycleExpectionなるものが。
いろんなサイトを見よう見まねでやってみたが色々エラー出るな。
無駄な書き込みだったか。スマソ
>>38 ?
この手のリバースプロキシはページ有効期限に関係しないはずだが…
誰かお助け。
>>33-35 と同じ…
mod_jk使えばいいのか?
それでもいかないのは俺の設定ミス?
42 :
nobodyさん :02/07/06 18:08 ID:9EuBmznp
XML データベース サーブレット などを使って新しいWebアプリケーション を考えたいのですが何かないですかね?
43 :
nobodyさん :02/07/06 22:22 ID:sbrRXVWb
Servletのデバッグってどうすんの?
44 :
nobodyさん :02/07/06 22:57 ID:1kLkeT4w
>>44 文法や綴りはチェックしたよね?
俺はMYSQL派だからPSQLはよく解らんが
ドライバ名にバージョンとか何らかのオプションとかついてたりしないかな?
46 :
nobodyさん :02/07/07 01:14 ID:nfgvYLJa
47 :
44 :02/07/07 13:51 ID:vB9yJ20Z
48 :
nobodyさん :02/07/07 16:48 ID:Emb7lIr1
Servlet XML DBを使って新しいWebアプリケーションを考えたいのですが 何かないですかね?
49 :
:02/07/08 07:50 ID:???
>>48 サーバリレー方式 (NNTP 型) の 2ch でも作ってください。
50 :
nobodyさん :02/07/08 11:54 ID:Z0coAw0K
>>41 うちの場合 httpd.conf は
Listen 443
<IfModule !mod_jk.c>
LoadModule jk_module modules/mod_jk.dll
</IfModule>
JkWorkersFile "C:/java/jakarta-tomcat-4.0.3/conf/jk/workers.properties"
JkLogFile "C:/java/jakarta-tomcat-4.0.3/logs/mod_jk.log"
JkLogLevel emerg
LoadModule ssl_module modules/mod_ssl.so
# see
http://www.modssl.org/docs/2.4/ssl_reference.html for more info
SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none
SSLLog logs/SSL.log
SSLLogLevel info
# You can later change "info" to "warn" if everything is OK
<VirtualHost _default_:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
JkMount /test ajp13
JkMount /test/* ajp13
</VirtualHost>
となってる。
SSL 使わないんなら、SSL 関連消して、ポート 80 にすればよいかな。
>>50 使っているソフトのバージョンとか教えてくださいませんか?
ちなみに私は
WinXP Pro
Tomcat4.0.3
Apache1.3.24
で、連携モジュールはmod_webapp.soとlibapr.dllです。
やっぱり不安定。
Apacheのhttpd.confは
LoadModule webapp_module modules/mod_webapp.so
WebAppConnection conn warp localhost:8008
WebAppDeploy examples conn /examples
多分、システム構成似てる人みんな同じような設定じゃないですか?
50さんの
<IfModule !mod_jk.c>
LoadModule jk_module modules/mod_jk.dll
</IfModule>
JkWorkersFile "C:/java/jakarta-tomcat-4.0.3/conf/jk/workers.properties"
JkLogFile "C:/java/jakarta-tomcat-4.0.3/logs/mod_jk.log"
JkLogLevel emerg
の部分と取り替えればいいんでしょうか?
Tomcat 4 系は Apache との連携がまだ安定しないケースが多い。当面は mod_proxy で Tomcat の 8080 ポートへ飛ばして、安定版が出たら入れ 替えるのが良いと思われ。
53 :
50 :02/07/09 11:44 ID:V8OiKoyI
>>51 Win2000
Apache_1.3.22-Mod_SSL_2.8.5-OpenSSL_0.9.6b-WIN32
jakarta-tomcat-4.0.3
mod_webapp.so を使う予定でいたんだが、どうもよく、Error500 になってしまうため、
mod_jk.dll を使うことにした。
> の部分と取り替・・・
workers.properties はサンプルまねて作らねばならんが。
mod_jk.dll も jakarta のどっかからDLせねばならんが
54 :
51 :02/07/09 23:08 ID:???
>>53 ありがとです。
私もmod_jk.dllでやってみます。
55 :
51 :02/07/10 22:25 ID:???
>>54 うまくいきましたか?
>>50 出来ればもう少し詳しく情報キボン
ちなにみ私も今Tomcat4.0.3でmod_jk使う方法探り中です。
56 :
50 :02/07/12 10:06 ID:q1BPHgJK
57 :
hoge :02/07/12 16:45 ID:???
マジ質問です。 Win2000、WebLogic6.1上で 作成したJSPのコソパイル時に 「try文のコードが大き過ぎます。」 とでてきます。 ソースを削る以外の方法をご存じの方 いらっしゃいますか?
58 :
55 :02/07/13 00:19 ID:???
59 :
初期不良 :02/07/15 00:56 ID:36+uH1YE
Win2k+Apache2.0.39+mod_jk.dll+Tomcat4.4 でなんとかでけたー examples のやつが動いたよ(T-T Servlet 初めてなんでよく分かんなかったけど、 なんというかここまでで満足しちゃいそうw これから設定の意味とか調べないと...
60 :
初期不良 :02/07/15 01:23 ID:36+uH1YE
>>59 >Tomcat4.4
Tomcat4.0.4 の間違い...
61 :
nobodyさん :02/07/15 22:30 ID:4ggzX3jC
微妙にスレちがいかもしんないけど。 今、VB-oo4o-OracleのシステムをServlet/JSP-JDBC-Oracleのシステムに 移植中なんだけど、どーやってもJDBCでストアドプロシージャからバインド配列を 受け取る方法がわからん。 もしかしてJDBCだとバインド配列使えない?誰か教えてー モシカシテジョウシキ? ダッタラチュウボウッテサゲズンデ
62 :
初期不良 :02/07/16 13:41 ID:???
63 :
初期不良 :02/07/17 15:50 ID:R7nkntsq
前から Forte for Java 使ってたんで J2SE1.4 とパッケージされてる 60MB くらいのファイルを使ったら JRE がまともにアンインストール できない状況になっちゃったよ。JDK と Forte は別々に インストールした方がいいみたい。別々だったら 特に問題はなかった。 ところでいつから Forte for Java を SunONE Studio って 呼ぶようになったんだ?
64 :
nobodyさん :02/07/18 20:11 ID:vfBDOFER
今JSP・JavaBeans・XMLでWEBアプリを作ってますが、やたら重いです。 DOMは重いってのは分かるけど、皆さんどうですか? ちなみに私はDOMで読み込んだデータをHashtable+ArrayListでいじってます。 何か良い方法あります? ついでに 52さんが書いてますが、Tomcat4系は不安定なので今のところ3系お勧め。 Apache1.3.24使ってる人早いとこ1.3.26くらいにしときましょ。
65 :
初期不良 :02/07/18 20:36 ID:???
>>64 >>52 は連携が安定しないと書いてるけど
Tomcat4 自体が不安定と?
>>65 Tomcat自体が安定してるしてないではなくて、
ApacheとTomcatを連携させるモジュールが不完全なのでは?
モジュールと一緒にDLしたリファレンスみたけど、
Windowsは動作の対象からはずされてるね。
英語がそんなに堪能なわけじゃないから隅から隅まで読めたわけじゃないけど。
67 :
52 :02/07/18 22:03 ID:???
mod_proxy で使う分には 4 系も安定してる (たいした負荷かけたわけじゃないけど)。 ヤヴァイ のは mod_webapp に関連するところのようだ。
68 :
64 :02/07/18 23:28 ID:vfBDOFER
>65 いや連携ですね。単体ではテストくらいしか使えないでしょ。 >67 確かに・・・mod_webapp.soだっけ?どうにもまだ不安定らしい。 ApacheとTomcat4系でテストしてみたけど、色々不具合あるし。
69 :
nobodyさん :02/07/19 00:01 ID:q9jXNp5v
皆さんIDEとか使ってますか? Linuxサーバ(コンソールのみ)でTomcat + JDK動かしてるんですが、 毎回javaをコンパイルするのは面倒になってきました。 開発環境はwinです。何か良い方法とかありませんか?
70 :
初期不良 :02/07/19 01:51 ID:???
>>69 もなじ環境を win で作ってみれば?
java 環境のいいところは環境に依存しないところだし。
IDE は無料のがたくさんあるし試してみればいい。
もれは Forte for Java(JavaONE Studio) CE 使ってる。
補完機能ないと生きてけません。
71 :
nobodyさん :02/07/20 23:48 ID:l62hSW+Y
apache(PHP入り)にtomcatをアドインして使ってるんですが、 getHeaderNames()メソッドでヘッダを確認してみると cookieのIDに何故かPHPSESSIDが使われています。 そのため当然というか、クッキーの機能を使うことが出来ません。 どのようにすればJSSESSIONIDを使えるんでしょうか。
>>69 AppサーバやRDBの製品名、Verがあってさえ居れば
開発: Win
本番: Unix or Linux
で問題は起きないはず。
パスのセパレータの違いなどプログラミングで配慮すべき事項はあるにしても。
もれは開発はWinのJBuilder7Ent + Postgres(cygein) + 案件ごとのAppサーバでやって、
LinuxやSolarisの同構成の本番機に持って逝ったりしてるけどOSの差が問題になったことはないよ。
73 :
nobodyさん :02/07/21 03:46 ID:n5759lTx
jdk1.3.1_04 と tomcat4.0.4 を RehHat7.3 にインストールした のですが、tomcatの起動ができません。 [root@localhost bin]# ./startup.sh Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /usr/java/jdk1.3.1_04 起動時に出るメッセージは↑のようなもので、特にエラーが出ているわけ ではないようなのですが、、、 なぜなのでしょうか?
74 :
nobodyさん :02/07/21 04:01 ID:t5nOs/tF
>>73 「起動できない」とは何をもってして判断してのこと?
ps ax
とかでプロセスが無いのは間違いないの毛?
それともプロセスは立ち上がっているが動作が確認できないってこと?
75 :
nobodyさん :02/07/21 14:34 ID:n5759lTx
>>74 ps ax やってもそれらしい名前がでてないです。
ちなみに、プロセス名はなんて表示されるのでしょうか?
あと、ブラウザから8080ポートにアクセスしても、tomcatのサンプル
画面が表示されませんでした。
76 :
74 :02/07/21 16:43 ID:t5nOs/tF
>>75 手元に RedHat Linux 7.2 + Tomcat4.0.3 の環境があるので確認したけど
プロセス名の文字列は超長い文字列になってて正確なところがわからない。(^^;
ただ Tomcat の起動スクリプトは $JAVA_HOME/bin/java を引数付きで立ち上げてるだけっぽいので
ps ax | grep java
で出てきなものの中にそれらしいものはない?
起動できていないのであれば、
あるいは、Tomcatのログが $CATALINA_HOME/logs にいくつか吐き出されるようなので
その中のどれかに起動できない旨のメッセージが理由付き(stackTraceとか)で吐き出されているかも。
あどヴぁいすできるのはこの辺までだけど、なんか単純な理由な気がするぞなもし。
77 :
nobodyさん :02/07/21 19:41 ID:BdL4fkR2
server.xmlに/home/(user acount)/public_htmlを追加したんですが、 セッションが上手く動作してくれません。 session.isNews()で確認してみたところ、何度リロードしても値がfalseで返ってくることはありませんでした。 /webapps/examples/以下で実行すると、二回目以降はfalseを返します。 何か設定する項目はあるのでしょうか。 sever.xmlはこんな感じです。 <Context path="/~(アカウント)" docBase="/home/(アカウント)/public_html" crossContext="false" debug="0" r eloadable="true"></Context>
79 :
nobodyさん :02/07/22 10:45 ID:/lVk0RoZ
>>77 <Context path="/~(アカウント)" docBase="/home/(アカウント)"
でない?
80 :
初期不良 :02/07/22 11:05 ID:???
>>80 一応渋谷区内なんだが…
だれかアップロードしてくれんかな。
>>81 IP 晒さの止めてくれたらアップするよ。
>>77 どうも、/public_htmlにjspのディレクトリをラッパー出来ないことが分かりました。
セッション関係が上手く動きません。
違う場所に移動させたら動きました。うーん…。
84 :
Java初心者 :02/07/23 02:57 ID:x4PamoCA
今、簡単なカートシステムを作っているのですが、 HTML(フォーム入力ページ)が格納されているサーバーと Javaが格納されているサーバーが違う為にセッション情報が 壊れまくりで受け渡しが上手くいかない状況です。 何かうまい方法無いですかね?? ちなみにDB等は使用してないです。
85 :
78 :02/07/23 05:54 ID:???
リモホとユーザエージェント晒すの止めてみた。
86 :
nobodyさん :02/07/23 22:22 ID:qz9rcVGm
ディレクトリアクセスでファイル一覧を表示しないようにするには どこを設定すればよいのでしょうか
87 :
jerry :02/07/24 00:24 ID:wF0zuFj0
nobodyさんへ はじめまして。jerryと申すものです。 私もServlet/JSPでファイルのアップローダーを作成しようとたくらんでいるのですが、 multipart/form-data形式でPOSTされたデータを読むのに苦労しています。 そもそも、multipart/form-data形式がどのようなものか理解できないでいます。 アップローダーを作成するにあたって、わかりやすいテキストなどがあれば教えて頂けないでしょうか? なにぶん初心者ですのでよろしくお願いいたします。
夏ですねぇ。
>>87 そのうち公開する予定だけど、メアド晒してくれたら multipart/form-data の
解析方法をソース付きで送ったるよ。
と思ったがせっかくだからアップローダーにうpしとくわ。 もともと自作したソースを某社システムで使うように磨き上げて、(結局 使われなかったので) またさらに自分で改良した奴だから、著作権的に まずい文言が入ってないかチェックするので 2 〜 3 日待て。 解析方法の HTML ドキュメントとツールキットのソースをセットで。
>>90 ありがとうございます。
感謝感謝です。
お手数おかけしてしまいますが、よろしくお願いいたします。
2,3日後、またのぞいてみます。
93 :
nobodyさん :02/07/24 10:27 ID:9hoilkkE
>>86 ダミーの index.html を作る。
apache なら httpd.conf で
Options Indexes
と書かれている所 の Indexes を削除
94 :
nobodyさん :02/07/24 11:33 ID:9hoilkkE
>>90 どんな構造にしてる?
織れは HttpServletRequest を 継承した MultipartRequest クラスを作ってる。
送られてきたファイルはサーバの temp フォルダに置くようにしてる。
95 :
90 :02/07/24 14:50 ID:???
とりあえずパッケージドキュメントにしていた分だけアップした。ソースと JAR ファイルは
しばし待て。
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20020724143928004.html >>94 まず InputStream と boundary 文字列渡して、先頭の form-data から逐次ストリームまたは
文字列を取り出すようなツールキットがある (上の URL にサンプルコードあり)。
そのツールキットを使うサーブレットとして、所定のパラメータ名のデータを一時ディレクトリに
保存し、残りのデータをハッシュテーブルに格納してから、ほかのサーブレットや JSP へチェー
ンするってのがもう一つ。
できれば
>>93 のように HttpServletRequest のサブクラス化がきれいだが、サーブレット
コンテナによってはチェーン時にトラブる恐れがあると思ってやらなかった (Servlet API
仕様的に「forward はコンテナから渡されたものをそのまま渡せ」とあったはず)。
# なんか入力コメントの日本語が激しく文字化けしてるな… 週末に調べるか。
JavaMail、マ、゙、タネス、?、ア、ノ。「シォコタケ、?・「・ユ・ゥ、ャ、、、?、ネ、?。」」?
>>87 com.oreilly.servlet.MultipartRequest サネ、ィ、陦」
----------------------------------------
import com.oreilly.servlet.MultipartRequest;
.....
// ・「・テ・ラ・スシ・ノ、ヌ、ュ、?コヌツ逾オ・、・コ。ハ200KB。ヒ
int max = 1024 * 200;
// ・「・テ・ラ・スシ・ノイ霖?ハンツクタ?
String dir = "/tmp";
MultipartRequest mreq = new MultipartRequest(request, dir, max);
File uploadedFile = mreq.getFile("FILE_NAME");
----------------------------------------
ーハセ蝪」
API
http://www.servlets.com/cos/javadoc/com/oreilly/servlet/MultipartRequest.html
98 :
97 :02/07/24 19:08 ID:???
化けたからもいっかい。
JavaMailはまだ判るけど、自作するアフォがいるとわ。w
>>87 com.oreilly.servlet.MultipartRequest 使えよ。
----------------------------------------
import com.oreilly.servlet.MultipartRequest;
.....
// アップロードできる最大サイズ(200KB)
int max = 1024 * 200;
// アップロード画像保存先
String dir = "/tmp";
MultipartRequest mreq = new MultipartRequest(request, dir, max);
File uploadedFile = mreq.getFile("FILE_NAME");
----------------------------------------
以上。
API
http://www.servlets.com/cos/javadoc/com/oreilly/servlet/MultipartRequest.html
99 :
nobodyさん :02/07/24 19:33 ID:go5BIxYg
>>87 俺はその部分だけstruts使ってます。
そうか、JavaMailでもよかったんだ…
100 :
90 :02/07/24 20:09 ID:???
自作する アフォ って… 98 年から使ってるんだが。その頃あったの ソレ?
>>95 ドキュメントありがとうございました。
早速拝見させていただきます。
103 :
nobodyさん :02/07/26 20:57 ID:SfSBcX3z
apacheのpublic_htmlにindex.jspを置いてディレクトリアクセスすると、 自動でindex.jspが開くには開くんですが、URIの~(チルダ)が%7Eに 置き換わってしまいます。 しかもその状態だとセッションが無効になってしまうようなんですが、 対処方法はないものでしょうか。
104 :
91 :02/07/27 00:07 ID:C2iiEdJi
>>98 com.orailly...の奴って、「開発者はみんな本買え」とか変なライセンスじゃなかったか(w
まあ全然しかとしてもOKっぽいが。俺は客が使うライブラリとして提供しないとだめだったから
com.oraillyのは念のため避けた。
あの実装見てると、とても自作しようという気にはならんな(w
105 :
50 :02/07/29 13:38 ID:???
マシンの負荷が増えてきたので有効期限が明確なページに Expires ヘッダ 付けまくったらアクセス量が激減しちまったよ。
107 :
nobodyさん :02/08/01 00:58 ID:obwMsnIv
/WEB-INF/classes/ ディレクトリ以下におかれた 普通のJavaプログラムクラスをサーブレットから 呼び出して使うとします。MVCでいうModelに あたるものです。 そのクラスから/WEB-INF/classes/ディレクトリ内に あるファイルを読み込みたいのですが、ServletConfig は使わない、絶対パスでの指定も無し、という条件の 場合、そのファイルのパスを取得する方法はあるのでしょうか?
>>107 classes 直下の foo.txt を読むとして:
ClassLoader loader = this.getClass().getClassLoader();
InputStream in = loader.getResourceAsStream("foo.txt");
または
ServletContext context = getServletContext();
InputStream in = context.getResourceAsStream("foo.txt");
または
ServletContext context = getServletContext();
String path = context.getRealPath("/WEB-INF/classes/foo.txt");
2 個目は実際にやったことがないので本当に出来るか分からん。
俺はいつもリソースバンドルを使うか /WEB-INF/conf とかに置いて
getRealPath() でやってる。
109 :
age :02/08/01 09:13 ID:VxoEhz+q
>>90 アップローダーのソースいただけないでしょうか!?
お願いします!
110 :
107 :02/08/01 11:53 ID:???
>>108 Servletなら3つ目の方法を使えばスマートなんだけど、
Servletから呼び出されるクラス内での処理だから
getServletContext()はできないよね。
Servletでfilepathまで取得して、その呼び出すクラスに
渡してあげるしかないのかな。
112 :
nobodyさん :02/08/02 10:46 ID:KliK+F7e
>>86 の便乗質問だが、
>>93 の方法でやっても駄目で、
>>96 の方法はTomcat4なので駄目(当方Tomcat3.3.1)です。
さて、WEB上であっちこっちで調べたのだが分かりません。
皆さん、どーしているのですか?!
113 :
nobodyさん :02/08/02 12:44 ID:hNq5//MC
>>111 どうもありがとうございました。
これから見てみます。
115 :
112 :02/08/02 16:00 ID:KliK+F7e
>>114 Apache2.0.39
Tomcat3.3.1
の組み合わせです。
<Directory "D:/Tomcat/webapps/hoge">
Options -Indexes
</Directory>
と遣っているのだが駄目です。
一体どーやったら出来るのでしょうか??
>>112 とりあえず、httpd.conf を教えてくれんと、原因はわからん。
117 :
112 :02/08/02 18:46 ID:KliK+F7e
>>116 <pre>
■Apache2.0.39のhttpd.confで修正した箇所は以下の通りです。
(1).jaを先頭に持ってきた。
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw
(2).コメントアウトした。
#AddDefaultCharset ISO-8859-1
(3).最後尾に追加した。
Include "D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf"
<Directory "D:/jakarta-tomcat-3.3.1/webapps/hoge">
Options -Indexes
AllowOverride None
</Directory>
</pre>
つづく。。。
118 :
112 :02/08/02 18:48 ID:KliK+F7e
>>117 つづき、、、
■Tomcat3.3.1の修正したファイル、箇所は以下の通りです。
(1).D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf
JkWorkersFile "D:/jakarta-tomcat-3.3.1/conf/jk/workers.properties"
以下追加した。
JkMount /hoge ajp13
JkMount /hoge/* ajp13
(2).D:/jakarta-tomcat-3.3.1/conf/jk/wrapper.properties
wrapper.tomcat_home=d:\jakarta-tomcat-3.3.1
wrapper.java_home=d:\j2sdk1.4.0
(3).D:/jakarta-tomcat-3.3.1/conf/server.xml
<!-- コメントアウトした。
<Http10Connector port="8080"
secure="false"
maxThreads="100"
maxSpareThreads="50"
minSpareThreads="10" />
-->
119 :
112 :02/08/02 18:48 ID:KliK+F7e
>>118 順調にservlet/jspは動いています。
しかしWebブラウザのアドレスに例えば
http://server/hoge/jsp/ と入れると
ディレクトリのリストが表示されてしまう。
表示しないようにしたいのです。
しかし、ApacheやTomcatのサイトに行ったり、Googleなんかで検索して色々と
調べたのだが駄目でした。
多分設定漏れがあると思うのだが、さっぱり判らないのが現状です。
お願いいたします。
JkMount /hoge ajp13 JkMount /hoge/* ajp13 を JkMount /hoge/*.jsp ajp13 JkMount /hoge/servlet/* ajp13 かな。 リクエストを丸投げしてしまっているのを止めればいけるはず。
>>119 デフォルトのファイルサーブレットを使わないようにするとか、
ディレクトリリストを表示しない版を自作して入れ替えれば?
ふつーにサーブレット登録するのと同じようにファイルサーブ
レットも差し替え出来るけど。
122 :
112 :02/08/05 09:53 ID:skGy3+Xd
>>120 の方法でも駄目でした。
>>96 の方法はTomcat4みたいだし
>>121 の方法はちょっとわかりません。
申し訳ありませんがサンプルとかを紹介しているサイトを
教えていただけるとありがたいです。
123 :
nobodyさん :02/08/05 10:50 ID:7tZAuiIw
>>111 パッケージbiz.moyo.leaflet.toolkit.net.http
を使うにはどうすればよいのでしょうか?
何かダウンロードする必要がありますか?
サーブレットファイルをコンパイルしてもうまくいきません。
>>122 表示されるディレクトリ一覧は Apacheの? それとも Tomcatの?
125 :
112 :02/08/05 13:25 ID:skGy3+Xd
>>124 Tomcat Web Server v3.3.1 Finalと表示されている。
Tomcatみたい。
>>125 http://server/hoge/jsp/ のリクエストを Tomcat に投げているので、
httpd.conf、mod_jk.conf に問題がある。中身見れんとこれ以上は・
たしか、mod_jk.conf は自動生成させるから、こいつは修正せんほうがいい。
ser.verxml に Context を設定するだけどよかったはず。
# いっそのこと、Tom4 にすれば。
127 :
112 :02/08/05 16:18 ID:skGy3+Xd
>>126 Tomcat4は色々と問題があるような(?)報告を読んだことがあるので
ちょっと不安なのです。また研究用、学習用とあるみたいで、
またServletAPI/JSP APIも上位だし、何となくですが未だ避けたい。
で、httpd.confとかmod_jk.conf等は殆どデフォルトで使用しています。
触った場所は
>>117 、
>>118 程度です。
mod_jk.confはファイル名を変更して使用しています。
httpd.confには
Include "D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf.Apache2"
としています。
何時でもApache1に戻れるようにmod_jk.conf.Apache1を用意しています。
この辺の逃げ腰が駄目なのかなぁ?!
実際のところTomcat4でも構わないのですが、安定性など如何なものですか?
>>122 うちは Tomcat-4.0.3 で問題なく稼動してます。
129 :
112 :02/08/05 17:48 ID:skGy3+Xd
>>128 安定稼動ですか。。。
確かに、Googleで検索してもTomcat3.3.1とTomcat4.0.3のヒット数が
全然違うのだし、そろそろTomcat4.0.3に移行しますか。
今回は閉じたネットワークだからこのまま納品して
Tomcat4.0.3への導入を検討します。
今までありがとうございました。
>>123 コンパイルに必要なのは zip ファイルの中の WEB-INF/lib に置いてある leaflet-http.jar って奴。
まずこれをクラスパスに入れる (か WEB-INF/lib を -extdirs に指定する)。コードの書き方は
WEB-INF/classes にある FileUploadServlet.java か WEB-INF/doc のパッケージドキュメントを参考に
してくれ。
結局俺は Linux + Tomcat 4 + mod_webapp.so の組み合わせで起動できなくて、 Tomcat 3.3 + mod_jk.so の組み合わせに戻してしまった。mod_webapp の問題って 言うより必要な glibc のバージョンを満たせなかったんだけど (アプライアンス 鯖なもんで)。
サーブレットを使えるようにしたいのですが、 ゼロからインストールの仕方が載っているHPってないでしょうか? いろいろ検索してんですが、どうもよくわかりません。 JDKとApacheとTomcatはインストールしたんですが、 ぜんぜんわかりません。 よかったらお願いします。
134 :
nobodyさん :02/08/08 10:30 ID:YE9LQNzW
Tomcat 4.0.1 って Win2k/XP のサービス起動出来なくなってね? 家の VAIO, 仕事場の ThinkPad, NetVista の 3 台とも全滅。 > C:\localhost\home>net start "Apache Tomcat" > Apache Tomcat サービスを開始します. > Apache Tomcat サービスを開始できませんでした。 > > サービスはエラーを報告しませんでした。 > > NET HELPMSG 3534 と入力すると、より詳しい説明が得られます。 イベントビューアーを見ると > The LoadLibrary function failed for the following reason: 指定された > モジュールが見つかりません。 どこかに PATH でも通す必要があるのか?
JNDIを使って、JAVAとLDAPを繋げようとしているのだが、うまくいかない。 java.lang.ClassCastException:com.sum.jndi.ldap.LdapCtx というエラーが出る。 意味わかる人がいたら何が悪いか教えてください。 もしスレ違いでしたら、適当なスレを教えていただけると幸いです。
ホームページみてやるより、初めて挑戦するならごくごく初心者用の 本が最近はたくさん出てるから1冊参考に買ってみるといいですよ。 その方が必要最低限の事はザーっと見れると思うし。
138 :
135 :02/08/09 02:43 ID:???
>>137 長いものは出ていません。
java.lang.ClassCastException:com.sum.jndi.ldap.LdapCtx
at ×××.main(×××.java:50)
と出ています。(×××はプログラム名です。)
>>138 じゃ、その ×××.java の 50 行目で Context のキャストに失敗してるだけ。
>>139 ありがとうございます。
javaのプログラムは問題ないと思うので、
キャストが失敗しているということはldapの問題かな、やっぱり。
>>140 ちげーよ、オイ! とりあえず 50 行目のコード出してみろ。
大方↓こんなことでもやってるんじゃないのか?
InitialContext ctx = (InitialContext)hashtable.get("hoge");
142 :
140 :02/08/09 16:56 ID:???
>>141 さん
ありがとうございます。
いろいろと試してみたのですが同じエラーが出たり、別のエラーが出たりといった状態で
相変わらず繋がりません。基本的なことがわかっていないのかも・・・。
JAVAのプログラムは
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://localhost:389/");
InitialContext ctx = new InitialContext(env);
topicConnectionFactory=(TopicConnectionFactory)ctx.lookup("dc=sample,dc=jp");←これが50行目
です。
ちなみにLDAPファイルの中身が下記のような形です。
dn:dc=sample,dc=jp
objectclass: dcObject
objectclass:organization
o:Factory00
dc:sample
lookupの部分はldapのどの部分を指定すれば良いのでしょうか?
わかりましたらよろしくお願いします。
143 :
nobodyさん :02/08/09 17:17 ID:uYc6rPBJ
サーブレットで呼び元を知るにはどうしたらいのでしょうか?
>>142 じつは LDAP は使ったことが無いので詳しくは分からないのだが、ctx.lookup()
が返しているものは Topic〜じゃなくて com.sum.jndi.ldap.LdapCtx のイン
スタンスだ。だから多分↓こう書かなきゃいけない。そこから Topic〜 の取得
方法は知らない。
Context ldapCtx = (Context)ctx.lookup("dc=sample,dc=jp");
>>143 String yobimotoURL = request.getHeader("Referer");
// ↑不明なときは null になるので注意
145 :
143 :02/08/09 19:29 ID:uYc6rPBJ
146 :
142 :02/08/09 21:09 ID:???
>>144 さん
ありがとうございます。ややこしくて頭混乱気味です。一度整理しないと。
それとTopicConnectionFactoryの所得方法を知っている方がいましたら
教えてください。お願いします。
しかしよぅ、多少プログラミング言語ができるとどんなプログラムでも
作れると周りから思われるのは何とかならんかい
Tomcat4.0.4のWin用って、servlet.jar無いんですか? 厨房質問で申し訳ないのですが・・・
大それた質問なのですが、お願いします。 jsp:forward って「他のサーバ」のリソースにフォワード出来たりしますか?
150 :
nobodyさん :02/08/15 07:11 ID:nluYDw9h
151 :
147 :02/08/15 23:15 ID:???
148>> 遅くなってしまった。148さんレスありがとうございます。 自宅でTomcat4.0.4をDLしてみたらありました。 今更ですが無いわけ無いですよね。すみません!
152 :
まつ :02/08/20 02:17 ID:yjCVey5W
テキストフォームに文字を入力して表示されている文字にマッチすると 赤く置換されるサンプルのJSPを作ってみた。 \を入れてもエラーを回避してヒットする方法を誰かしってる? (\\を入れるとヒットします。) JSPってなんで String tuka = "\"; って\を""で囲ってエラーになるんだろ? <!-------- moji.jsp --------------------------> <%@ page contentType="text/html; charset=SJIS"%> <% String inputMoji = request.getParameter("inputMoji"); String moji = "ABCDEFG\\HIJKLMN\\OPQRSTU\\VWXYZ"; //文字置換 moji = moji.replaceFirst("("+ inputMoji +")","<font color='red'><B>$1<\\/B><\\/font>"); %> <HTML> <FORM METHOD=POST ACTION="./moji.jsp"> <%=moji%><BR> <input type="text" name="inputMoji"> <input type="submit"> </FORM> </HTML>
153 :
v :02/08/20 06:25 ID:FJl0QgGS
Apache1.3.26 Tomcat4.0.4 mod_jk.dll j2sdk1.4.0_01 WinXP で組んでみました。するとHTMLファイルは問題なく表示されるのですが JSPだとstatus500 Internal Server Error がでます。それから参照先の フォルダの中身がリストになって表示されてしまいます。 こういう時は何処からチェックしていけばいいのでしょうか? 見よう見まねでチャレンジしてます。どなたかご助言をお願いします。
155 :
nobodyさん :02/08/20 20:39 ID:RuSa0Yqx
Apache1.3.22 Tomcat4.04 で連携させるため mod_webapp.soをビルドしようとしていますが失敗します。 ./support/buildconf.shの実行まではうまくいく のですが次のconfigureで失敗します。 ./configure --enable-docs --with-PACKAGE=yes --with-apxs=/usr/sbin/apxs --with-apr=./apr 途中で checking for apr CC variable... error configure: error: cannot find APRVARS file in /home/test/webapp/apr のようになってしまいます。なにかご助言があればお願いいたします。
156 :
nobodyさん :02/08/21 19:48 ID:wTMM6SK6
PHPで言うところの、連想配列って作ること可能ですか?
あぼーん
>>155 cp ./apr/apr-config ./apr/APRVARS
160 :
nobodyさん :02/08/24 00:32 ID:/szaZI0N
>>154 Apacheのmod_jkの設定内容と、Tomcatのworkers.properties、server.xmlの内容。
そこらへん掲示してもらえればもうちょっと具体的にいえるかも?
161 :
nobodyさん :02/08/24 03:20 ID:utJTQwUG
JSPからの入力値をServletで受け取って、別のJSPを返す処理をやっています。 このとき、ブラウザのURL欄にServletのURLが出てしまうのですが、これを JSPのURLにすることは可能でしょうか。。。 サーバ:Tomcat3.3.2(単体)、Solaris8 クライアント:IE、Operaともにだめでした、Windows2000 --- 最初のJSPの一部 <form method="GET" action="ServletのURL"> <input type="submit" name="Submit" value="Submit"> </form> --- Servletの一部 public void doGet( .....) throws ....{ //途中の処理 RequestDispatcher rd = context.getRequestDispatcher("次のJSP"); //この"次のJSP"のURLを出したい rd.forward(request,response); } ----
162 :
nobodyさん :02/08/24 03:29 ID:V0UGUmX8
JSPの勉強をし始めたところなんですが、 JSP上で「Vector ary = new Vector();」を実行すると、 Class org.apache.jsp.Vector not found. と言われてしまいます。 何かインポートしなければいけないんでしょうか。
163 :
nobodyさん :02/08/24 11:29 ID:/szaZI0N
>162 <%@ page import="java.util.*" %> を追加。
164 :
nobodyさん :02/08/24 14:43 ID:H7leyWd6
>>161 sendRedirectにしたらどう?
ところで、なぜそこまでしてブラウザにJSPファイル名出したいのですか?
>>160 レスありがとうございます。
私が行ったのは
Apache\modulesにmod_jk.dllを入れる。
Apache\confの中のhttpd.confの末尾にInclude "C:\tomcat\conf\mod_jk.conf-auto"を追加。
tomcat\confのなかにmod_jk.conf-autoを入れる。
(以前tom3.2.x系で試したのをバックアップしていてそれからコピー。)
最初のJkWorkersFile・・・に"C:/tomcat/conf/jk/workers.properties"に書き換え。
mod_jk.conf-auto内のajp12をajp13に置換。
workers.propertiesもtom3系のを流用。
途中のworker.tomcat_homeとworker.java_homeにそれぞれのパスを記入。
ajp12をajp13に置換。
server.xmlは
<Server port="8005" shutdown="SHUTDOWN" debug="0">の下に
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" modJk="C:\Apache\modules\mod_jk.dll" />
を追記。
<Host name="localhost" debug="0" appBase="webapps" ・・・> の下に
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />
を追記しています。
ちなみにJSPは動きました。ですがリスト表示されるのは相変わらずです。
Apacheのhttpd.confのDocumentrootにtomcat\webapps内の使っているフォルダ名までパスを記述して
ブラウザ上でlocalhostでアクセスすると404エラーになり、パスを全部記述しないと
表示できない状況です。
何だかレベルの低い質問で恐縮の限りですがアドバイスをいただければ嬉しいです。
166 :
nobodyさん :02/08/24 23:34 ID:/szaZI0N
>165
>ちなみにJSPは動きました。ですがリスト表示されるのは相変わらずです。
??。JSPが動かなかったんじゃないの?>154
リスト表示?されるのは
>>96 ではないかと。
JSP・Servletの何れかが正常動作しないのは現在の情報ではmod_jk.conf-autoに問題があるような。。。
167 :
161 :02/08/25 01:07 ID:???
>>164 レスありがとうございます。
sendRedirect()ではできました。。。
>ところで、なぜそこまでしてブラウザにJSPファイル名出したいのですか?
たいした理由じゃないんですが、クライアントにとっては表示しているのは
2枚目のJSPの内容なので、URL欄もそうじゃなきゃおかしいと思ったからです。。。
JSP/Servletの開発がはじめてなので、Servletの名前がでるのが普通かどうか
判断できなかったですう。。。
>>166 レスありがとうございます。
mod_jk.conf-autoですね、もう少し勉強して色々やってみます。
169 :
nobodyさん :02/08/28 06:31 ID:r028kWh6
神聖銀行がソフトバンクの会社更生申立を損に通告!! 又、預保に瑕疵担保条項に基づく買い戻し請求!! 神聖銀行がソフトバンクの会社更生申立を損に通告!! 又、預保に瑕疵担保条項に基づく買い戻し請求!! 神聖銀行がソフトバンクの会社更生申立を損に通告!! 又、預保に瑕疵担保条項に基づく買い戻し請求!! 神聖銀行がソフトバンクの会社更生申立を損に通告!! 又、預保に瑕疵担保条項に基づく買い戻し請求!!
170 :
nobodyさん :02/08/28 13:29 ID:tGW5fHH2
Servletかじりたてなんですが、サーバ側でイベントが発生したらリアルタイムで 情報をPushさせたい場合は、素直にAppletを勉強すべきなんでしょうか? 制御システムとWebをくっつけるものを作ってて、ふと ユーザが手を出さないとイベントもへったくれもない気がして・・・無知ゴメソ・・・。
171 :
nobodyさん :02/08/31 22:57 ID:mJeuMnFZ
JSPはソースコンパイルしなくてイイし便利なんだけどServletっていちいちコンパイルした後にtomcat再起動しなくちゃダメじゃん あれってどうにかならないの? サーバが別マシンなんだけど激しくめんどくさいんだよね。特にtomcatは再起動に時間がかかる・・ classファイル変更したときにtomcat再起動せずにすむ方法ってないかな? 環境はapache+tomcatっす
173 :
73へ :02/09/01 22:52 ID:NNPDCqX6
jdkを1.4にしたらどうですかな? 私も同じ症状だったけど、いけましたぞ
174 :
nobodyさん :02/09/02 02:15 ID:2oT4bP/+
>>171 Tomcatだったらmanagerアプリが入ってるだろ?
/manager/reload?path=/YOUR_CONTEXT_PATH
を呼べばリロードできる。
tomcat-users.xmlにmanager権限を持つユーザを追加する必要があるが。
上の方で話題になってたmultipart/form-dataのパースクラス、 漏れも欲しいんだけどもう1度うpしてもらえませんか? オライリーのはいきなり保存されちゃってなんか好かん。
>>177 JakartaのCommonsプロジェクトに、マルチパート解析用のユーティリティ出てたよ
今後はこれがいいかも。
俺のは一時ファイルに保存しないでパート単位で (名前付き) ストリームを取り 出す感じだから、余分なオーバーヘッドが発生しない代わりにプログラマ的に 面倒かも。 ↓いままでこう書いてた奴が String value1 = request.getParameter("value1"); String value2 = request.getParameter("value2"); ↓こういう感じになる。 String value1 = null; while(true){ FormData part = multipart.getNextFormData(); if(part == null) break; if(part.getName().equals("value1")){ value1 = part.getValue("Shift_JIS"); } else if(part.getName().equals("file1")){ InputStream in = part.getInputStream(); … } }
181 :
ふぉ :02/09/06 09:36 ID:sFTL/UD4
↑一連のFileUpLoad参考にしちゃってます。 フォルダごとアップロードってできんのかな?
182 :
180 :02/09/06 12:01 ID:???
>>181 フォルダごとは無理かな。いくつかのファイルをまとめてってんだったら
クライアント側で ZIP か LZH に固めてもらってる。イントラ開発なら
アプレットのセキュリティレベル下げて、フォルダごと ZIP に固めて POST
するようなアプレット作る。
183 :
nobodyさん :02/09/07 00:27 ID:41V0KowW
>>177 > 今後はこれがいいかも。
オライリのとくらべて格段にメンドクセー気がすんだけど、どんなメリットがあんの?
>>177 オライリーのと
>>180 の悪いとこ取りみたいな感じが…
オライリーのはプログラマ的に楽だし、
>>180 のは完全にストリームベースで
できるので効率最優先の時に良いんだけど。
185 :
nobodyさん :02/09/08 08:25 ID:+tHMOokM
JSPと言えど、ある程度のものを書くにはそれなりのJavaの知識が必要なんだ ね。最初、JSPにデータベースの処理書いたら、先輩にBeansで3層にしろ、っ て言われちゃったよ。Java初心者にとってBeansはちょっと壁が高いです..
186 :
nobodyさん :02/09/08 09:08 ID:+tHMOokM
JSP書くときソフトは何使っていますか? メモ帳は使いにくいです。
>>186 秀丸。マクロと強調表示をうまく作ると使いやすい。
macromedia の Ultra Developer で JSP は使いにくかったが、サイト管理系のところ
だけなら結構良い。
188 :
nobodyさん :02/09/10 22:26 ID:SB/7i5JH
JSPにはHTML::Templateみたいなクロスサイトスクリプティング脆弱性を 事前に防止するために役に立ちそうな機構はありますか?
189 :
177 :02/09/10 23:47 ID:???
Jakarataで作ったものなら皆結構使うからいいかなぁ、と思って脊髄反射で書き込んだだけですた
漏れだめぽ・・・
>>178 JavaDoc見てると、ストリームベースで扱えるっぽいよ。
FileItem#getInputStreamでストリームが取れそうな感じ。
190 :
180 :02/09/11 01:50 ID:???
>>189 ふっふっふ
俺のはメモリや一時ファイルにデータを保管してからあらためて取り出す
ようなことはやらんのだよ。でかい CSV ファイルを先頭から DB にぶち
込んだり、馬鹿でかい XML ファイルを SAX に食わせたりするときに
有利かな。
アップしてたソースがまた落ちたので、アップロードのページにリンク
貼っときますた。
191 :
nobodyさん :02/09/11 18:40 ID:KsAJ6jkE
javax.servlet.http.HttpSession を invalidate で無効化できるとどこかで見たんだけど、本当に消えるの?
>>191 「消える」の定義がよく分からんが、次回のリクエスト時に request.getSession(false) を
やると null が返ってくる。getSession(true) なら何も入っていないセッションが取れる。
また、invalidate() を呼び出したときに HttpSessionBindingListener#unbound() も
呼び出される。これを「消えた」というなら消える。
実を言うと鯖をクラスタ化して DB でセッション管理している時のそこらへんの動きは
禿しく微妙なんだけどね。
193 :
nobodyさん :02/09/12 20:15 ID:EiytWMDM
クッキーを使ったセッションって、通常のHTMLファイルのリンクでも 維持されるものなのでしょうか? クッキーをブラウザが送ってるのは当たり前として、サーバー側で そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか? こちら、Tomcat4.04 + JDK1.4です。
194 :
nobodyさん :02/09/12 20:40 ID:EiytWMDM
すいません、アップローダ、さらにもう一度アップしていただけませんでしょうか? 数日も経たない間にお願いして申し訳ございませんが。お願いします。 オライリーのは開発チームみんなで本買ってねってのに加え、 基本的に商用利用不可って書いてるし。
>>193 > そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか?
普通は HTML などのような静的なファイルへのアクセスでセッションの LastAccess
は変わりません。ただし大抵の環境は FileServlet を自作版と置き換えられる
ので、アクセスごとにセッションに触るサーブレットを自作して置き換えれば良い。
フルコーディングしなくてもオーバーライドすれば楽。
import java.io.*;
import javax.servlet.http.*;
import org.apache.catalina.servlets.*;
public clas OresamaServlet extends DefaultServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
request.getSession(true);
super.doGet(req, res);
return;
}
}
$TOMCAT_HOME/conf/web.xml にある org.apache.catalina.servlets.DefaultServlet
というのをこのサーブレットクラスの名前に置き換えれ。
ただし HTML ファイルなどが Apache へマッピングされてたらどうしようもない。
196 :
180 :02/09/12 20:43 ID:???
Beansを作る場合ってpackage化しないといけないのですか?
198 :
194 :02/09/13 01:19 ID:rrE5hfdS
>196 ありがとうございます。 ukのHPとかオライリーって、ソース公開しておいて商用不可かよっ! って感じで、Javaの世界はなんだかなーと思ってたので、すごい 助かります。
199 :
193(=194) :02/09/13 01:27 ID:rrE5hfdS
>195 なるほど。そういう仕組みになってるんですねぇ。 全然Servletコンテナの仕組みしらないので参考にします。
200 :
nobodyさん :02/09/13 02:51 ID:N8mYZ7Nv
>>197 Beanに限らず、JavaプログラムはPackage化するのが普通。
無名Packageはあくまでも特殊なケース。
linux+tomcat+apacheでアプリ作ってると、下のような現象に陥ることがある。 ・ソースを書き変えてコンパイルしてクラスを更新しても、クライアント側に反映されない。 理由がさっぱりなので誰か教えてください。
javamailで設定するsmtpホストのアドレスって自マシンのIPでいいの? vine2.5+apache1.3.24+tomcat4.0でやってるんだけど、自マシンのIP設定するとメールおくれるんだよね。これってなんで?
203 :
nobodyさん :02/09/15 13:41 ID:hcAsMafz
>>202 defaultでsendmailかPostfixがたちあがっているからじゃん?
rootになってntsysvコマンドでしらべてみな。
まぁ、psで調べてもいいけどさ。
204 :
nobodyさん :02/09/15 23:27 ID:4RjfenHM
205 :
201 :02/09/16 18:54 ID:???
>>204 reloadableっていうのは、更新できるかってことですか?
エラーもなく更新はできてるよ。
206 :
nobodyさん :02/09/16 18:59 ID:Fc5JTIXQ
servletでフォーム認証する方法知ってる人いる? ちなみにユーザーは百人前後を予定してるんだけれども。
208 :
177 :02/09/16 19:57 ID:???
>>206 Servlet2.2で、Form認証に関する仕様が定められてるので、それ見れ。
209 :
nobodyさん :02/09/16 21:47 ID:2vuqixrP
Apache 1.3.26 + Tomcat 3.3.1 + PostgreSQL 7.2.1 を使っています。 あるDBのコネクションプーリングをするクラス(ConnectionPool)を作成して、 下のような感じにしているのですが、 pubilc class TheDB { private static TheDB instance = null; private ConnectionPool pool = null; private TheDB { // serverの設定読み込み pool = new ConnectionPool(上で読み込んだ設定); } public static TheDB getInstance() { if (instance == null) instance = TheDB(); return instance; } : } これを使っていると、(この部分とは別の)classを変更したときに 新しいTheDBインスタンスが作られて、DBへのコネクションがどんどん増える、 という状態になってしまいました。(古いインスタンスが残っているのだと思いますが…) 仕方ないので今はTomcatを再起動しています。 Javaは始めて日が浅いのでよく分からないのですが、参照されなくなった インスタンスはGCに回収されないのでしょうか?
>>209 Singletonで設計したTheDBが複数インスタンス化されてしまうこと自体、
おかしくないですか?
ひょっとして、似たようなクラスをコピペで大量生産してますか?
ちなみに上記のような設計にした場合、TheDBのインスタンスはGCに回収されません。
(TheDBのstatic属性として参照されつづけてますからね)
211 :
209 :02/09/17 00:19 ID:elworjfu
>>210 作ったクラスはTheDBだけです。
既存サーブレットを書き換えて、Tomcatが下記のメッセージを
吐いてリロード(?)したときに新たにインスタンス化されています。
2002-09-17 XX:XX:XX - ContextManager: Removing context DEFAULT:/hogehoge
2002-09-17 XX:XX:XX - ContextManager: Adding context DEFAULT:/hogehoge
古いインスタンスの方は、DBのコネクションが張られたままになって
いるので残っているようです。
>>211 それは Tomcat のオートリロードが利いてるだけ。Java の static オブジェクトは
JavaVM に一つじゃなくて Class インスタンスに一つ。Tomcat のオートリロードは
Class インスタンスの入れ替えを行うので、同じ JVM 上に複数の static オブジェ
クトができるわけ。どっかのサーブレットの destroy() に TheDB インスタンスを
クリーンアップするようなコード書いとけ。
>>211 すまん、クラスのオートリロード時にサーブレットの destroy() が呼び出されるかは
不明 (WebSphere だと destroy() 呼ばないで Web アプリケーションが再起動しちまう)。
まぁーそうだなぁ。$JAVA_HOME/lib/ext にその TheDB ってクラスの入った jar を放り
込んでおくか、環境系の変なトラブル出したくなかったら毎回ちゃんと再起動するかかな。
インスタンス内でサーバソケット開いて、新しいインスタンス生成する前に localhost
接続して前のに終了命令を出すってのもあるけどめんどくさい。
サーバサイドでリソースやスレッドを Singleton で管理するクラスを作った人間が大抵
ハマる罠。
214 :
210 :02/09/17 01:05 ID:???
>>213 Tomcatのオートリロードって、設定ファイルか何かではずせないものなんですか?
AppServerでクラスのリロードされると、はまることが多いですよね。
HttpSessionにいれたインスタンスのキャストに失敗したりしません?
>>214 たしか $TOMCAT_HOME/conf/server.xml と apps-xxx.xml にオートリロードの
設定があったはず (3.3.1)。触ったことが無いのでよく知らんけど。
そう、オートリロードが走ると、既にセッションに入っているオブジェクトの
Class と新しいクラスローダー上での Class のインスタンスが違うからキャ
ストに失敗したりする。まぁ今さら起きても「あ〜再起動忘れた〜」で済んでる
けど、最初の頃は謎だった。よく考えたらなるほどね〜って感じ。
>>209 GC で消えないのは、どこかにリロード前のそのオブジェクト (か参照たどった
別のオブジェクト) を見てるスレッドが生き残ってるから。まぁコネクション
プールなら内部に「監視スレッド」持ってても不思議じゃないから、多分そいつが
生き残って古い TheDB を参照してるので GC の対象にならない。
と見たがどうか。
ごめん、参照しているスレッドが居なくてもコンテキストが握ってれば GC は走らないな。それから getInstance() には synchronized 修飾子 付けとけ。
217 :
210 :02/09/17 23:18 ID:???
servletから別のクラスを利用するときって、-classpathを付けなくてもコンパイルできるよね。なぜなのか誰かおせーて
Error: No match was found for method "addElement(long)". Error: No match was found for method "copyInto(long[])".
220 :
219 :02/09/18 17:09 ID:???
途中でカキコしちまった。スマソ Vectorて何でも良いんじゃないの? Stringじゃないとエラー出るんですけど何故?
>>220 byte, int, long なんかのプリミティブ型じゃだめですな。
v.addElement(new Long(value)) みたいにせんと。
222 :
219 :02/09/18 18:29 ID:???
>>221 すんません。アホでした。
オブジェクトって書いてあったんで
・Longにして格納(220氏のご指摘どおり)
・l=(Long[])v.toArray();で配列化
・long=(long)l[i];
そしたら、type "Long" cannot be cast into type "long".
えーん(T_T)l[i].longValue()だと、java.lang.ClassCastException
どうやったらlongの値が取れますか?!
223 :
219 :02/09/18 18:41 ID:???
と、思ったら l=(Long[])v.toArray(); が、java.lang.ClassCastException でした。 ふ〜む?
224 :
219 :02/09/18 18:56 ID:???
Vector v = new Vector(); v.add(new Long(0)); ... Long[] longArray = (Long[])(v.toArray(new Long[0])); for(int i=0;i<longArray.length;i++){ long l = longArray[i].longValue(); System.out.println(l); }
先に解答を書かれたのでこれだけ言っとく 板 違 い で つ
227 :
nobodyさん :02/09/19 10:10 ID:3f2LBbrr
ブラウザで動くActiveXクライアントと UnixのServletでHTTPを使ってやり取りできますか? Servletで掲示板システムを作って ActiveXクライアントから投稿したいんですけど。
>>227 SOAPまたはSOAPモドキを使いたいということなのかもしれ
んが、そうでなきゃ、HTTPを扱うActiveXコントロールだけの
問題と思われ。
それなら、板違い。
>228 ありがとうございました。 プログラム板でたずねて見ます。
230 :
nobodyさん :02/09/19 22:57 ID:/RwVyOp1
組み込みブラウザ相手のWebアプリなんで、Servlet/JSP の出力に Filter かまして Content-Length: を強制的に付けるようにしてるのだけど、doFilter() の中で response の OutputStream を close() してしまうとストリームが既に閉じてる旨の エラーをTomcatが時々出してくる。 ので close() しないようにしたんだけどこれは正しい? モノの本のサンプルではclose()してるんだけど... Tomcat 4.1.10 / RedHat7.3
>>230 close() しなくても良い。とりあえずそのバカ本晒せ。
232 :
219 :02/09/19 23:33 ID:???
>>225-226 すんまへん。
有り難うございました。
でも、意外とこういう型変換は本にもサイトにも載ってないんですよね。
助かりました。次回はマ板などに行きますです。
233 :
pan :02/09/20 10:38 ID:???
Win2K Pro + Apache2.0.4 + Tomcat4.0.4 という環境です。 連携には"mod_jk"を利用しようと思っています。 さて、本題ですが、 他のどこのサイトを参照しても、 「ソースからコンパイルして、DLLを作成しましょう。」となっています。 jakarta本家サイトもそう書いてあるので、それが正解なのはわかりますが、 私にはコンパイル環境がありません。 本家に3.3.x用の"mod_jk.dll"はあるのですが、 4.0.x用の"mod_jk.dll"はありませんので困っています。 どこか、ダウンロード出来る所とかないでしょうか? 以上、よろしくお願いします。
> AgentInfo agent_info=(AgentInfo)session.getAttribute("AGENT_INFO"); で、ClassCastExceptionを吐きます。 入れる時は、 > AgentInfo agent_info=new AgentInfo(); > session.setAttribute("AGENT_INFO", agent_info); で、エラーは出てないのですが。 AgentInfoは、 > <%@ include file="agent_info.jsp"%> で指定してるんですが、これじゃあかんのでしょうか?
235 :
230 :02/09/20 22:23 ID:???
236 :
nobodyさん :02/09/24 21:15 ID:CcL7X+71
クライアントから送られてきたデータをDBに格納する際、DBの外部参照等 の制約はみなさんどうしていますか?わざとSQLExceptionを発生させて、 データ不正とクライアントに返すのが一般的ですか?それともあらかじめ INSERT(UPDATE)する前に対象DBを検索しServlet(Java)側でそのデータの 整合性を検証するのが一般的なのでしょうか?
DB 更新前にデータの整合性を検証する (ストアドとかでやっても良いけど)。 SQLException の発生を期待すると、本当の DB 障害と区別をつけるために SQLState や Error Code を見る羽目になる。DB の制約は (外部バッチ等も 考慮して) 保険と思え。
>>233 mod_jk.dllはTomcat4.xと3.x両対応じゃないの?
workers.propertiesとかの設定で動くと思うが。
win環境ならそのdllそのまま使えるでしょ。
239 :
pan :02/09/25 13:52 ID:???
>>238 最初はそう思って動作させたのですが、"mod_jk無いよ"みたいなメッセージがでてしまい、
上手い事動作しませんでした。
ってことでWEBを調べたら、>233のような感じだったんですよ。
ちなみにApache1.3.x+Tomcat4.0.xの場合は238さんのおっしゃる通り、
本家で配布しているdllがそのまま利用できるようです。
Apache2.0.x+Tomcat4.0.xの場合はTomcat4.0.xの配布場所から、
mod_jkのソースをダウソ、コンパイルしてdllを作成し、
それを利用しないとダメなんだそうです。
スレ違いかもしれんけど、自動負荷ツールでフリーな奴のおすすめないっすかね.. 某JMeterのうんこUIは正直耐えられな..
241 :
nobodyさん :02/09/27 21:39 ID:RwP/8UIK
よく見かける、n個の接続を使いまわす「コネクションプーリング」と、 JDBC2.0で定義されている接続プーリングって全然違うものですか? 前者は、単純にDBの接続を使いまわすもの。後者は、ResultSetなどを 保持しつつ、他のクエリーを実行したあとに、また元の状態に復帰できる ものという解釈で良いでしょうか?
コネクション、和訳をすれば、接続よ。575
243 :
241 :02/09/28 18:32 ID:JW6zvc4Y
>242 そそ、だから謎なの。 わざわざJDBCで用意されてるのに、なんで商用Servletコンテナ では用意されてたりするのかなーとかが、謎で。
>>243 JDBC 2.0 で提供されてるのはインターフェースだけ。中身はない。
その実装を商用アプリケーションサーバのメーカーが行っている。
と、それが聞きたかったのか?
245 :
241 :02/09/29 00:45 ID:SRhsLTZc
>244 すいません。最も聞きたいことは、 OracleのJDBCドライバに実装されているConnectionPoolDataSource を使うならば、Tomcat4.0.4でコネクションプーリングのクラスを作らなくて も良いのでしょうか?ということです。 というか、Webアプリの視点から見たときに、本来、アプリケーションサーバが 実装してるものを、Oracleは、JDBCドライバで実装してくれていると考えても 良いのでしょうか。
>>245 そういうこと。
完全なコネクションプールは接続対象のデータベース製品の特性を
熟知しているところでないと実装が難しい。
247 :
nobodyさん :02/09/29 11:10 ID:SRhsLTZc
>246 なるほど、ありがとうございます。 アプリケーションサーバも、Oracle JDBC2.0のドライバも 同じインターフェースに実装してるということを知って、 驚きでした。早速、Oracleのドライバを使って、実現することにします。
>>247 多分 Oracle にしてみれば、アプリケーションサーバみたいなコネクションプールを
デフォルト装備した環境だけじゃなく、普通の Java アプリケーションでもコネク
ションプールを使えるように用意してくれていると思う。蔵鯖でプールが必要かと
いわれれば激しく疑問なので、用途が特化された (Web じゃない) 鯖とかゲート
ウェイ鯖開発用に。
249 :
238 :02/10/01 23:11 ID:???
>>239 レス遅れた。スマソ。
最近発売されたサーバーサイドJAVA系の本にApache2.0.x+Tomcat4.0.xの
設定例が載っているそうだよ。
本の種類はそんな多い方じゃないと思うから、本屋さんで立ち読みしてみたらどうでしょう?
>>249 mod_jk2 がちゃんと出るまで待った方がいいような気がする。
EJB と JavaBeans の違いがよく分かりません。 簡単なサンプル・ソースとかが載っている書籍、ホームページがあれば教えていただけませんでしょうか?
252 :
nobodyさん :02/10/03 14:07 ID:KDvau4q1
253 :
nobodyさん :02/10/03 14:33 ID:5xq1UjDr
254 :
pan :02/10/03 15:25 ID:???
>>249 有難うございます。
色々と調査した結果、Apache2.0.x用のmod_jkを発見できました。
コレを利用して立ち上げた所、正常に起動し、
exmaples以下のサーブレット&JSPが正常に動作するのを確認できました。
色々とアドバイス有難うございました。
ちなみにmod_jkの場所は、
ttp://www.acg-gmbh.de/mod_jk/ です。
tomcat-users MLにPOSTされていたのを発見しました。
256 :
nobodyさん :02/10/04 11:33 ID:gpSssjjt
JSPからServletのクラスを参照するにはどうすればいいのですか。 JSPファイルを表示させるときに「シンボルが解決できません」になります。 一緒に動かすServletの方はコンパイルできているのですが…。
JSP やサーブレットから他のサーブレットを参照するなんてことは普通やらない。 どうせデータの受け渡しをしたいだけだろ? ServletContext, HttpSession, HttpServletRequest の setAttribute()/getAttribute() 使え。
258 :
:02/10/04 19:29 ID:???
Staticallyにtomcatとapacheを連係させる方法しらべてるんですけど、 なかなかインターネットに情報がないですぅ。 どこもDSOをつかったインストール方法ばかりです。 どなたかStaticにApacheにインストールしてる方はいませんでしょうか? ちなみに、mod_perlとPHPはDSOなしでApacheに組み込んでます。
259 :
254 :02/10/04 21:35 ID:???
>>255 なるほど。
ということは、ServletにNikki classを作って、JSPファイル内に
NIkki nikki = new Nikki(引数)
みたいな書き方はおかしいですか?
>>259 JSP のコンパイルが通らないんだろ? import でちゃんとパッケージを指定
してる?
262 :
nobodyさん :02/10/05 13:16 ID:2e8trTi8
JDK1.4 + Oracle JDBC経由で Oracle9iに接続しています。 transaction内で、複数のデータをINSERTをしたいのですが、 1つ目のINSERTするレコードがないと、2個目以降のINSERT(別テーブル)は 成功しないテーブル構造になっているのですが、 1つ目のINSERT成功後、2個目のINSERT処理の、executeUpdate() で、処理が止まってしまいます。(ロックされてる?) 特徴としては、関数呼び出しの構造上、以下のように動作します。 setAutoCommit(false) createStatement 1つ目のexecute Statementを開放 createStatement 2つ目のexecute <〜ここで止まる〜> Statementを開放 以降n回繰り返し comit これは、transactionのアイソレーションとかと関係あるのでしょうか? executeをexecuteUpdateにしても同じ動きをしました。
263 :
nobodyさん :02/10/05 16:43 ID:/Ylxg1h6
264 :
nobodyさん :02/10/05 19:06 ID:2e8trTi8
>263 ほんとだ、同じことで悩んでる。 SQL文自体は、単体ごとにUPDATEすると実行されます。 (ちなみに、バッチ処理にして、executeBatchすると登録は成功します。) 各文ごとに、違うStatementを使うことが問題なんじゃないのかと いう気がしてきました。世の中のサンプル見ても、Statementを開放 してることと、テーブルのリレーションの問題以外は問題がなさそう。 そもそも、1つめのレコードを予めDBに書いておいて、 2番目移行のUPDATEを実行すると、最後にUPDATEした奴 しかDBに書き込まれてないんですよね。 うーん。
>>261 してるけど、通らないっす。
でも、指定の仕方が間違ってるのかも。
jspファイルが
USR_ROOT/###.jsp
にあって、参照したいServletは
USR_ROOT/WEB-INF/classes/###.class
にあります。
classpathはUSR_ROOT/WEB-INF/classes
で指定してあるのですが、
jspにimportを書く場合
<%@ import ### %>
であってますか?
>>265 デフォルトパッケージのクラスか? ちゃんとパッケージ名付けれ。
// USR_ROOT/WEB-INF/classes/jp/co/hoge/HageServlet.java
package jp.co.hoge;
...
public class HageServlet extends HttpServlet{
...
こういうサーブレットがあったとき、下のような使い方が出来なくも無い。
<%@ page import="jp.co.hoge.*" %>
<%
HageServlet s = new HageServlet();
%>
普通はこんなことしないけど。
267 :
265 :02/10/07 21:51 ID:???
>>266 うおおっ!ようやくできました!!本当にありがとうございました!!
えっと、行った手順としては、
USR_ROOT/WEB-INF/classes/
268 :
265 :02/10/07 22:08 ID:???
途中で送ってしまった… えっと、行った手順は USR_ROOT/###.jsp ←問題のコンパイルできなかったファイル USR_ROOT/WEB-INF/classes/index.class ←このファイルを最初に読み込んで、###.jspに処理を飛ばす USR_ROOT/WEB-INF/classes/sansyou1.class ←###.jspにimportしたかったclass USR_ROOT/WEB-INF/classes/sansyou2.class ←その他の外部クラス という風なファイル構成だったのですが、 USR_ROOT/WEB-INF/classes/pack/sansyou1.class USR_ROOT/WEB-INF/classes/pack/sansyou2.class という風にpackageにして、###.jspは言われたように <%@ page import="pack.*" %> とすると、コンパイルできました。 ただ、どうしてデフォルトの場所では読み込んでくれないのか という疑問も残りましたが。 ともかくコンパイルできて良かったです。ありがとうございました。 ところで、普通はデータを利用するのに外部クラスのメソッドをそのまま読み込まずに setAttribute()/getAttribute()を使うのですか? そうした方がメリットがあるのでしょうか。 もしよかったらもう少し教えて下さい。
とりあえずクラス名の先頭は大文字にしてくれ 話はそれから
>>111 送られるファイルのサイズを制限しているようなのですが、その処理を行っている実装部分はどこなのでしょうか?
web.xml に書かれている内容がどこで使われているのか、私の能力不足により解析できなかったので…。
271 :
265 :02/10/08 21:20 ID:???
>>269 なるほど。。。すみません。
そういった暗黙のルールが色々とあるのですね。
勉強します。
272 :
266 :02/10/09 12:16 ID:???
>>268 後からメンテナンスしやすい設計にするためだよ。サーブレットが作るデータが
必要なら setAttribute()/getAttribute() で受け渡せばいいし、サーブレットの
メソッドが呼び出したいなら、そのメソッドは Bean 化して別クラスにするのが
いい。そうすることによってクラス間の関係が疎になるので再利用しやすく後の
メンテナンス性が上がる。
273 :
265 :02/10/09 21:46 ID:???
なるほど。 クラスを直接importしなくてもデータのやりとりとか 特に問題なくできるのですね。 クラス同士はあまり密接に関わらせない方が良いのですか。 勉強になりました。 ありがとうございます。
274 :
nobodyさん :02/10/11 22:13 ID:4dmb/Mff
CompsitViewパターンにしてやろーと思っていて。 Strutsを使ってるのでTemplateタグで実現したいのですが テンプレートから呼び出されるJSPのページにパラメータを渡すには どうやればよいのでしょう?旨いやり方ありますか? 要はincludeならば <jsp:include ...> <jsp:param .../> </jsp:include> みたいなことがStrutsのTemplateタグで出来ないかと思案しているわけです。 template:insertをするPageのスコープにパラメータを埋め込んではみたんだけど どーやらPageスコープってjsp:includeやらtemplateやら使ってもそれぞれのページ内 みたいで…まーあたりまえか(w requestやらapplicationやらsessionに埋め込めばいいのだろうけど、なんとなく イメージ的に違うって感じ。でもそれっきゃないのかなぁ? 誰かグルになってくださいませ。
<template:put> と <template:get> じゃダメなのか?
276 :
274 :02/10/11 22:35 ID:???
>275 ダメやっちゅーに。 ページコンポーネントの組み込みはでけるけど、その組み込むページに どやってパラメータを渡すかってことが知りたいのです。
277 :
nobodyさん :02/10/12 01:01 ID:xShHXVsw
サーバー側に固有の数字をランダムに当てたディレクトリを 自動的に作成したいのですが、そのようなことができるメソッドってありますでしょうか? ランダムな数字を作るのはわかっています。 ディレクトリを自動的に作成するメソッドがありましたらご教授ください。 おながいします。
>>277 File#mkdir(), File#mkdirs() の API リファレンス嫁
279 :
277 :02/10/12 01:58 ID:xShHXVsw
ホント馬鹿ですみませんがもう少しヒントをくらはい・・・。 String dirname = "場所"; boolean a = mkdir(dirname); ってやると シンボルを解釈できません。 シンボル:メソッドmkdir(java.lang.String) ってでます。import java.lang.*;は書いてあります。
File directory = new File("C:\\あほ\\氏ね"); directory.mkdirs();
281 :
277 :02/10/12 03:34 ID:???
あほです。できましたです。 本当にありがとうございます。 氏ぬ前にもっと勉強します。
>276 だから渡したい値は<template:put>で<template:include>時に渡して、 組み込まれたページ側で<template:get>使って受け取ったら後は好きにすれば?
283 :
nobodyさん :02/10/12 16:09 ID:6y7+FqP1
>282 そっかそーゆ意味ね。 言葉足りなかったなぁ。それでもダメっす。 パラメータとして渡したいってのは受け取ったパラメータをlogicタグなどで表示切替 に使いたいって意味だす。 ん?もしかしてbean:defineの中でvalue="<template:get ...>"みたいなことができるってこと? 無理だとは思うが一応試してみるか…。ちょっと待っててな。
284 :
nobodyさん :02/10/12 20:35 ID:8Xp20As7
eWave使ったことある人、います? 今、JSPページのコンパイルエラー直そうと思ったんだけど、コンパイル一度も通ってないJSP→Servletのソースが何処にも保存されてないのね、eWaveって(^^; おそらく何かしらの設定があるんだろうけど、たぶんオイラの英語力が不足してるせいで(T_T)、よくわかりません。 「ここを見れ」でいいので、何か情報をお持ちの方がいらっしゃればアドバイスをお願いします(拝)
285 :
M :02/10/14 00:27 ID:a3rDJN9b
JSPで掲示板を作ったのですが、TEXTAREAフィールドに入力されたコメント の改行コードを<BR>に変換するにはどうすれば良いのでしょうか? <PRE>入力コメント</PRE>で表示すると改行なしの長いコメントの場合 にページが横に伸びてしまうのです。どなたかお願いします。m(_ _)m
J2SE 1.4以降なら正規表現使って置換でいいんじゃないでしょうか。 1.3ならjakrta oroですか?
ガイシュツならすみません。 動的に作成したinputタグのnameを拾う方法はあるのでしょうか? <form method="POST"> <input name="<%= temp[i][j] %>" type=text> </form> で、たとえばこの入力フィールドに"10"が 入っているか確認する場合、 if(temp[i][j].equals("10")) とはできないですよね? (変数名は、temp[i][j]の値そのものなので) たとえば、POSTで投げられてくる値を Iteratorとかで順番に拾えないのでしょうか?
>>285 書き込みフォームに WRAP="HARD" +鯖側 <PRE> で良いんでない? まぁ
普通は 1 文字づつ評価して <BR> に書き換えるわな。どうせ < → < の処理とか
やってるでしょ。
>>287 何言ってるかぜんぜんわかんねーんだけど request.getParameter(temp[i][i]).equals("10") の
事か? request.getParameterNames() か? request.getParameterValues(temp[i][i]) か?
日本語勉強してこいよ。
289 :
287 :02/10/14 08:10 ID:???
>>288 言いたいことがうまく伝わらなかったようですが、
どの辺を調べればよいかはよくわかりました。
ありがとうございました。
290 :
M :02/10/14 09:39 ID:a3rDJN9b
>>288 返答ありがとです。
WRAP="HARD" +鯖側 <PRE> では<PRE>が優先されるようです。
ページが横に伸びてしまいました。
< → < の処理は次のようにやっててうまく処理されます。
でも改行の処理のやりかたがわかりません。
'\n','\r\n'はchar変数じゃないのです。
/** HTMLエンコードが必要な文字 **/
static char[] htmlEncChar = {'&', '"', '<', '>'};
/** HTMLエンコードした文字列 **/
static String[] htmlEncStr = {"&", "gg"", "<", ">"};
>>290 入力側で <TEXTAREA ... WRAP="HARD"> でって意味なんだけど、ちゃんと伝わってる?
それから鯖側で <BR> 変換やるなら↓でいいんでないの。
static char[] htmlEncChar = {'&', '"', '<', '>', '\n', '\r'};
static String[] htmlEncStr = {"&", """, "<", ">", "<BR>", ""};
292 :
M :02/10/14 23:38 ID:a3rDJN9b
>>291 そうですよねー。
でも何回やっても<BR>に変換されない。。。。
もう少し頑張ってみます。ありがとうございました。
293 :
:02/10/14 23:55 ID:???
>>292 ちゃんと htmlEncChar.length とか htmlEncStr.length 分のループ
してるか? 「4 回固定回数ループ」やってるんじゃねーだろーな。
てか、説明すんのめんどくせー
public static String escapeHTML(String text){
StringBuffer content = new StringBuffer(text.length());
for(int i=0; i<text.length; i++){
for(int j=0; j<htmlEncChar.length){
if(text.charAt(i) == htmlEncChar[j]){
buffer.append(htmlEncStr);
} else {
buffer.append(text.charAt(i);
}
}
}
return buffer.toString();
}
294 :
M :02/10/16 04:04 ID:icD2I6vX
http://www.atmarkit.co.jp/fjava/rensai/jsp2_03/jsp2_03_1.html ↑このソースを変えてみた。
static public String HTMLEscape(String input) {
input = substitute(input, "&", "&;");
input = substitute(input, "<", "<;");
input = substitute(input, ">", ">;");
input = substitute(input, "\"", "";");
input = substitute(input, "\n", "<BR>");//追加
input = substitute(input, "\r", "");//追加
return input;
}
でもだめぽ。(′д`⊂)
>>294 のサイトだが…
すげぇ! こんな無駄な再帰を使うソースは初めて見た。しかもサーバサイド
想定なのに無駄な String/StringBuffer インスタンス作りまくりと来た
もんだ。まぁ表題見れば書いた人間のレベルが分かるか。
296 :
nobodyさん :02/10/16 13:48 ID:jmKbXjPs
Java で作成しているアプリがあるんですが、みなさんのお知恵をお貸しください。 管理者が ServerSide に生成した Session の中身を全て調べて、特定のセッションに対して値を更新/削除/追加する、って事をしたいんですけど、これを実現するためにはどうすれば良いのでしょうか? サーバ・サイドのセッション・オブジェクトを全てリストとかで取得できるんでしょうか?
>>296 できません。データベースでやってください。
298 :
x :02/10/16 15:08 ID:0vsiXYHc
>>297 やっぱり無理ですか…。
ありがとうございました。
>>299 無理っつーか、普通そゆことsessionでやらんだろ、ということ。
>>297 の指摘通りDB使いなよ
301 :
nobodyさん :02/10/16 23:19 ID:R5uZ9QcZ
毎日使ってるPC(Windows)からTelnetしてLinuxのサーバに接続してます。 そこでサーバのTomcatやResinを立ち上げると Telnetの画面がそのままコンソールになるようで Telnetを閉じるとともにTomcatやResinまで落ちてしまいます。 Telnetを閉じても起動したままにできませんか? (cronの1回だけバージョンとかあればよいのだろうか・・)
nohup でも使っとけ
304 :
nobodyさん :02/10/17 00:15 ID:7NQKU9UN
>296 SessionFacade使え。
>>301 その Tomcat や Resin を立ち上げるコマンドの後ろに & を付けれ。
RPM で入れたんなら /etc/rc.d/init.d/tomcat ってコマンド無いか?
って俺それしか知らんのやけど
>>302-304 のやり方って何すか?
306 :
nobodyさん :02/10/17 01:43 ID:Xvd1/r7V
サーブレットでHTMLのボタンを押して クライアント側でサーバ内にあるGUIアプリケーション(Javaのクラスファイル) を実行させることってできるんでしょうか。 例えば クライアントがボタンを押す ↓ Javaで作ったサーバ内にある オリジナルの音楽再生プレイヤーが呼び出されて実行される というようなことってできますか? 気になってしょうがないのでよろしくお願いします。
>306 気にすんな。
308 :
301 :02/10/17 02:10 ID:bSTwbaaG
>>305 &つけたらいけました。コンソールにやはり起動メッセージ出ますが
閉じても起動しっぱなし。感謝です!
>>302 の方法ではTelnet終了したら落ちてしまった。
>>303 は調べたけどzsh?
ちなみにこの現象はResinのみ。
Tomcatはコンソール支配されないです。嘘ついてゴメン
>>306 出来る。
>>308 激しく疑問なんだが Resin ってシェルから叩ける start/stop 用のコマンド
って付いてないのか? 止めるとき ps aux でプロセス見て PID で kill して…
と激しく面倒だぞ。
310 :
306 :02/10/17 02:43 ID:???
>309 Appletで作ったゲームはよく見るんですけど GUIアプリケーションを実行させるサイトに出くわしたことがないので 気になってました。ありがとうございました。 でも、実行するクライアントはちょっと勇気がいりそうですね。
>>310 ちょっとまて、クライアントのボタンを押すとサーバ側でウィンドウが
立ち上がるような動きをするんだよな?
ちょっと自信が無いが Unix なら DISPLAY 変数をちゃんと設定しておいて
やれば大丈夫だと思う。Windows はどうなんだろう。サービス起動じゃな
ければ大丈夫かな。
>>311 Vectorに登録されているようなGUIアプリケーションが
あたかもブラウザ上で呼び出して実行されている、
というような動作をさせることができるかな、と…
安易に大それた質問をしてしまってすいませんでした。
自分はまだあまり知識が無いので、できるとわかっただけで十分です。
ありがとうございました。
例えば動画ファイルをクリックしてRealPlayerが起動するのは クライアント側のGUIアプリケーションが起動するってことですよね。 そうじゃなくてサーバ側のRealPlayer(Java仕様)をブラウザ上で実行させる ことができるかどうか気になったんです。 自分でも少しパニックになってきたので、放置していただいて結構です。
314 :
nobodyさん :02/10/17 11:50 ID:6ucWf4YE
んと、
>>294 の逆で、<TEXTAREA>タグとかから改行込みで入力された文字列の改行を<BR>に置換するのって、どーやればいいのでしょう?
単純に\nを<BR>で置き換える、ぢゃだめぽ。
315 :
hmk :02/10/17 12:34 ID:???
>>314 ドザから送られてきた改行は\r\nになってるっぽ?
>>313 それは無理。
>>314 \r\n を <BR> に置き換えれば良いんと違うか? 何が問題やねん。
>>313 HTTP上でX-WINDOW類似の仮想ターミナルやりたいってことね。
探せばそんな製品あるかもよ。まずはぐぐってみたら。
ひょっとして作ろうっての?
無理。
少なくとも
>>313 には絶対無理。
>>317 ああ、その手の奴なら VNC のアプレット版があるよ。鯖側で VNC 鯖起動しておいて
アプレット版の VNC クライアントでブラウザ上に鯖画面を丸ごと表示する奴が。
多分
>>313 が考えてるのとは違うだろうけど。
319 :
303 :02/10/17 22:28 ID:???
>>308 Linuxって言うから、bashだと思ったのだが。
disownはbashとか、zshの組み込みコマンド。
320 :
301 :02/10/18 00:35 ID:y14T4jTt
>>309 うむぅ、そうですねぇ、自分もResinはkillで止めてます。
>>319 bash: disown: /opt/resin-2.1.5/bin/httpd.sh: no such job
こういったメッセージが出てしまうのであきらめていたのです。。。
321 :
314 :02/10/18 10:22 ID:AgYFvi+M
>>315 >>316 ……Unicodeにした後は\nだけ置換すればいいと信じきっていた自分が激しく鬱だ(T_T)
アドバイスありがとうございました(拝)
>>321 \n を <BR> に変換、\r を削除、が良いと思うが対 Mac でどうなるか分からん。
323 :
nobodyさん :02/10/22 23:14 ID:3vYtKYtk
MVCモデルで開発する時ってさぁ、ServletとJSPとBeanはそれぞれ別のチームで開発するでしょ? で、Beanチームは単体起動での確認とか比較的簡単にできそうだけど、 JSPやServletチームはどうやって単体で稼動確認取ればいいのかなぁ? JSPはBeanがないと動かないでしょ? Servletに至ってはBeanとJSP(ダミーでもいいけど)がないとまともに動かない。 みんなはこういう問題ってどうやって解決してるの?
324 :
303 :02/10/22 23:30 ID:???
>>320 おおっそんな勘違いしてたんか!!
disownは、既に実行中のジョブに対して使うんだよ。
例えば、($で始まるのは、コマンド入力)
$./httpd.sh&
$jobs
[1] +running httpd.sh
$disown
$jobs
(何も出力されない)
ってなるの。disownに%1とか%2とかジョブ番号を指定すること
もきる。例えば、disown %2なら、jobsで[2]って表示されてる
プロセスを切り離しできる。
>>323 そればっかはダミーと言うかスタブ作るしかないな。後で差し替えが利くように
インターフェース切ってファクトリパターン使ったり、リフレクション使ったり
なるべく MVC 間の結合度を下げるようにする。
326 :
nobodyさん :02/10/25 18:13 ID:VrJoiV/x
JavaMail使ってPOSTする方法を教えて
>>326 そんなことできんの?
つーか URLConnection で十分じゃん。
つーか HTTP の POST の話?
■DOMAPIを使ってXMLを読み込んで、適当に変換処理を行った後 JSP等でHTML出力する ■TransformerオブジェクトでXML+XSLT変換処理を行った後 JSP等でHTML出力する XMLの内容(量)によるとこもあるだろうが、どちらが高速に変換させて 出力処理をさせることが出来るんでしょう? ※あくまで出力処理の範囲で、コーディングの開発は無視
329 :
... :02/10/29 02:39 ID:???
ApacheとTomcatの連携がうまくいかず困っております。 Tomcatを startup.sh で起動すると mod_jk.conf-auto が作成されるとあるのですが、 これが作成されません。何か条件があるのでしょうか? #それぞれ独立しての稼動はできております #server.xmlのPort8080の部分はコメントアウトしております #Apache1.3.26 Tomcat3.x Debian
>>329 Tomcatのバージョンは?
Tomcat4ならmod_webappを使ったほうが簡単
331 :
... :02/10/29 19:54 ID:???
Tomcat3.3.1で不可能でしたので3.2.1にしたところあっさり解決してしまいました。 数々のモジュールを組み込んでおり、自分自身が混乱してました。 お騒がせいたしました。
332 :
nobodyさん :02/10/29 20:40 ID:2+2rI4fz
333 :
nobodyさん :02/10/30 13:03 ID:3yGzF2Oi
Connectionクラスをinit()で作成して使いまわそうしたんですけど、うまくいきません。 いまはdoGet()が呼ばれる毎に作成しています。これってコスト高い?
>>333 コストが高いかどうかは使われ方しだい。ちゃんと負荷テストやれ。
商用 AP サーバなら普通はコネクションプールを使う。
商用じゃなくても使う
336 :
ジョン・プレーヤ・スペシャル :02/10/31 19:41 ID:FYPcLGlN
質問といううかグチ。 仕事でJSPでメール送るプログラム組むなんて事を安請け合い したんだけどさぁ、まぁ、sendmailでちょちょいでしょうなんて perlライクに考えていたわけですよ。 テストサーバにjavaやらtomcat入れてとりあえずJSPが動くようにする この頃からperlとは違いすぎるなぁと不安になる。 えーとメールを送るのは・・・・どうやらjavaMAILとJRFという ライブラリを使うことがわかる。 JSPハンドブックを買ってサンプルプログラムを打ち込んで(ソース付け炉や!) 動かしてみる、、、エラーの嵐、、まるでベーマガの頃に戻ったかの ように本を見ながらデバック、デバッグ、デバッグ、文法エラーはなく なってコンパイルまでは出来ているみたいだが、変なエラーがドバっと 出る。どうやらSMTPサーバが「Could not connect」らすぃ。 サーバの事はよくわからんのだよ、JSPくん! SMTPサーバってそのサーバのIPじゃいけないのか?sendmailの設定 が問題なのか?さっぱりわけワカメ。ギャーーー!誰か変わってぇぇ!
337 :
nobodyさん :02/10/31 21:24 ID:D/zYL1kU
>>337 sama
ありがとうございます。でも、SMTPが通ってなかったわけでは
なくて、実はもっと、、、もっと初歩的なスペルマミスでっすた。
はぁぁぁ
でも、遠回りしてイロイロ調べたせいでJSP/サーブレットの事が
なんとなくわかってきたぞ。なんか言語覚えるのってココまでが
大変で、これからはけっこう楽なんだよな(楽観)。
339 :
nobodyさん :02/11/05 22:01 ID:R2YenpcU
Tomcat4.1でサーブレットのお勉強をしようと思い、導入してみたのですが・・・ 動きません・・・ Tomcatはjakarta-tomcat-4.1.12-LE-jdk14.exe JAVAはSDK1.4.1 OS Win2000 を使っています。webappsの下にaというフォルダをつくり、web.xmlやclassesなどの ディレクトリをつくって、server.xmlを編集しました。フォルダaにあるindex.htmなど は見れるのですが、サーブレットが動きません。サーブレット自体は以前のヴァージョンの Tomcatで動作確認済みです。プリーズヘルプミー!
とりあえずserver.xmlは元に戻してみたら。書かなくても動くし。 てゆうかwebappsの直下に前バージョンで動いていたヤツをjarで固めて置いて置けばいいじゃん。 Tomcatが起動時に勝手に解凍して配置してくれるんだから。
341 :
nobodyさん :02/11/05 22:23 ID:R2YenpcU
>>340 レスありがとうございます。server.xmlをもとにもどしてやってみます。
以前のヴァージョンはアンインストしちまいました。
手元にはclassファイルしかないのでとりあえずserver.xmlをもとにもどし
てみます。
342 :
339 :02/11/05 22:39 ID:R2YenpcU
server.xmlをもとにもどしてやってみたら404でした。 exampleフォルダのclassesにクラスファイルを入れた動いたのですが・・・ どうしたら任意のフォルダからサーブレットを動かせるのでしょうか?
そもそもそのディレクトリはTomcatが起動時に正しくコンテキスト化してくれてるかな? localhost_log.YYYY-MM-DD.txtみたいなログファイルで起動時に例外が発生してないかどうか 確認したほうがいいかも。(コンソールには起動時例外は表示されなかっちょうな気がする) Tomcatは起動時に、webappsの下にフォルダがあり、かつその下のweb-infディレクトリに web.xmlがあるものを自分のコンテキストだと認識するらしいから、まずweb.xmlを疑った ほうがいいかも。
表示されなかっちょうな気がする ↓ 表示されなかったような気がする
345 :
339 :02/11/05 23:14 ID:R2YenpcU
>>343 コンテキスト化とはなんでしょう?
ログファイルを確認したところ起動時に例外が発生したような形跡はないように
思います。普通に「Webアプリケーションディレクトリ a を配備します」というような
感じになってました。
web.xmlの内容は以下の通りなのですが・・・まずいところありますか?
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"
http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
</web-app>
web.xmlが空やねん・・・。
web.xmlには普通Servletのマッピング情報を書くんだよ。
例えばこんな感じ。(うろ覚えなので間違っているかも)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "
http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>sample.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>
</web-app>
これで、WEB-INF/classesの下にあるsample.test.TestServletという名前のServletが
http://localhost:8080/xxxxx/servlet/TestServletで呼び出せるようになるはず 。
(微妙にミスってたらごめん)
J2EEではアプリケーション単位でxmlファイルに構成情報を記述して、自己完結性の高い
パッケージ配布方式を実現しようとしているから、web.xmlはしっかり勉強しておいたほうがいいよ。
だっていちいちWebアプリをインストールする度にserver.xmlみたいなミドルウエアの根幹に
手を入れるのは面倒くさいし危険でしょ?
ここら辺を抑えておくと、やがてEJBのような高度なものをやることになっても、
デプロイの仕組みがちゃーんと理解できるようになる。基本は一緒だから。
>>344 土佐弁みたいでカコイイぞ。>なかっちょう
348 :
339 :02/11/06 00:34 ID:brJh6AGy
>>346 動きました! ありがとうございます。
しかし、新しいアプリの度にweb.xmlを更新しなくてはならないのでしょうか? exampleフォルダにいれた場合はweb.xml
を更新せずともサーブレットが動作しました。
また、以前のヴァージョンのときもweb.xmlは345に書き込んだ通りで動きました。
そのあたりをご教授願います。
349 :
nobodyさん :02/11/06 00:38 ID:QtBZH+Bh
質問なのですが、 Javaの開発でIISって使えるのでしょうか? それともアプリケーションサーバーはWASとかでないと 無理なのでしょうか?
>>349 IIS は Java の動くアプリケーションサーバではありません。
WAS 以外にも Tomcat, WebLogic, iPlanet, JRun などもありますので要件に
あったものをどうぞ。
>>348 examples はあらかじめ出来上がった web.xml が入ってたから。
前バージョンで web.xml に記述が無くてもサーブレットが動いていたのは
Servlet Invoker という、サーブレットを起動するサーブレットがデフォ
ルトで server.xml に設定されていたから。
352 :
339 :02/11/06 03:10 ID:brJh6AGy
>>351 さん
なるほど。よくわかりました。ありがとうございます。
しつこくてすいませんがまだ質問があります・・・
しかしもってexamplesにあるweb.xmlに追記せずに動いたということはexamplesにあるweb.xmlには
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>sample.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>
というような一つのクラスファイルのみにむけた記述以外にも何か他に特別な記述があったのでしょうか?
>>352 そういう記述があったか、もしくは Servlet Invoker が有効になってて /servlet/org.hoge.SampleServlet
というクラス名指定の呼び出しをしていたかのどちらかだろう。
354 :
nobodyさん :02/11/07 01:38 ID:+oMkddUQ
アプリケーションAのWEB-INF/classes/packageName/ 以下にクラスが あって、アプリケーションBのServletも、アプリケーションAのクラスと 同じパッケージ下に置きたい場合は、どこに、アプリケーションB用の サーブレット等のクラスを構築したら良いでしょうか? やはり、アプリA/WEB-INF/classes/packageName/ 以下に アプリBのサーブレットを置かなくてはダメなのでしょうか? ポイントは、アプリBから、現状、アプリAのフォルダに配置してある 共通クラスを利用する必要があるのと、会社のドメインのTLDから パッケージ名をつけているので、共通化したいです。
アプリA/WEB-INF/classes/net/2ch/hiroyuko/umaibou.class アプリB/WEB-INF/classes/net/2ch/hiroyuko/umaibou.class これじゃダメ? ソースだけは一括管理しておいてコンパイルは2回行う javac -d アプリA/WEB-INF/classes net\2ch\hiroyuko\*.java javac -d アプリB/WEB-INF/classes net\2ch\hiroyuko\*.java
ln -s アプリA/WEB-INF/classes アプリB/WEB-INF/classes classes まるごとじゃなくてもサブパッケージごとでリンク張れ。 Windows だと? 2000 以降ならパーティション丸ごとディレクトリにマウント できるだろ。
パーティションのマウントでは無理だな、スマソ
>>354 共通部分のクラスを jar にまとめて $JAVA_HOME/lib/ext に入れとくとか
CLASSPATH に設定しておくとか。
359 :
354 :02/11/08 01:18 ID:uREFPWAh
ありがとうございます。 大体の方針はわかりました。 ところで、InvokerServletはOffにして、ServletMapping経由で サーブレットにアクセスさせるなら、classes以下にサーブレットクラスを 配置しなくても動くんでしょうか?これできるならクラスパス設定すれば 解決しますね。あとは、共通領域に置くか、否かという話になりますね。 (ちなみに、Tomcat4.1.12(? 最新を利用)です。)
>>359 実運用時は Web アプリケーション jar にまとめて WEB-INF/lib にぶち込んで
おくのが普通。この場合 CLASSPATH を通す必要がなく、Web アプリケーション
コンテキストでクラスローダーが分けられる。WEB-INF/classes 以下のクラスは
オートリロード対象なので、(オートリロードがオンになってるなら) 開発時に
チョコチョコ修正するところだと思っておけば良い。システムの CLASSPATH 環境
変数にサーブレットやそれを含む jar を通すのはあまり一般的ではない。
> Web アプリケーション jar にまとめて ↓ Web アプリケーションで使うクラスを jar にまとめて
362 :
354 :02/11/08 11:18 ID:JbsLZRZL
うーん。Winで開発して、Linuxが本番なので、やはり共通部分は jar化してサーバースコープで共有化しておいて、サーブレットは、 WEB-INF/lib以下にjar化しろってのが正解ですか。 開発がWinであることと、数ヵ月後の保守を考えたら、各Webアプリの サーブレットには、共通モジュールとは違うパッケージ名をつけた方が 良さそうですね。jp.co.companyを頭につけちゃうと、jpのフォルダが クラスパスの最初に見つかってしまう場所に置かなきゃいけないんですよね? ショートカットなどのOS固有の方法は、扱いが複雑になるので避けたいです。
363 :
354 :02/11/08 11:45 ID:JbsLZRZL
自己レスですが、カレントも含め、ちゃんと全部のクラスパスを指定しておけば、 パッケージ階層以下の構造が複数のフォルダに分かれても、クラスの検索が 可能なんですね。 サンプル作って確認しました。スマソです。 ということで、パッケージ名は今のまま、本番運用時には共通モジュールを jar化して切り出すことにします。 結局、時間をかけて、358さんの内容を理解したって感じです。 ありがとうございました。
364 :
nobodyさん :02/11/08 17:23 ID:B5HgIdqz
invokerをoffにした場合、WEB-INF配下にweb.xmlがないと動きませんよね。 その場合のもっとも簡単なweb.xmlの記述の仕方を教えてください。 要するに、サーブレットが起動すれば(classファイルを認識してくれれば) いいレベルです。
365 :
nobodyさん :02/11/10 20:02 ID:ykyYofKk
jspで扱ってるrequestオブジェクトの中身を、JAVAクラス内で使うには、 public void proc(HttpServletRequest req) {} と記述する他方法は無いのでしょうか。
>>365 requestオブジェクトは、jspの場合、何も宣言しなくても使えるか
ら、そんな訳の分らん錯覚に陥ってるんだろう。
jspファイルから生成されたjavaのソースファイルを見れば分るが、
jspのページを生成する_jspServiceメソッドは、コンテナが、
(予め生成した)requestやresponseオブジェクトへの参照を渡してる
から、requestとかがjsp内で使えるんだよ。
要するにjavaの基本と同じで、参照を何らかの形で渡さないと使えない。
最も、customタグのように、ハンドラ作って、jspcに組み込めば、引数に
渡さなくてもいいようにできるけど、だったらcustomタグ使うか、
requestオブジェクト渡した方がまし。
TomcatでIP制限する方法ってありますか? それと、Apache+Tomcatでクラスファイルをオートリロードする方法。 知ってる方がいたら是非教えてください!
>>367 フィルタ使うか、OS側で制限するしかない。
>>367 Apache と連携してるなら Apache 側で出来ないのか?
オートリロードの設定は $TOMCAT_HOME/conf/server.xml の中で。
認証をtomcatに任せたいんです。 ユーザ管理はmysqlでやってます。 JDBCRealm使ってる方居ますか? 検索しても引っかからないんです。
>>370 英語だが付属のユーザマニュアルか何かに付いてなかったか?
372 :
370 :02/11/16 14:02 ID:???
>>371 英語しか無いですか?
頑張って読んでみます。
やりたいことはアクセス制限とログの取得です。
373 :
367 :02/11/16 15:52 ID:???
>>369 apachedと連携してると、server.xmlのcontextでreloadable="true"にしててもservletクラスのアンロード、リロードがされないんですよ...
tomcatオンリーならOKなんですが。
374 :
367 :02/11/16 16:11 ID:???
>>368 フィルタによるプログラムセキュリティのレベルはどのくらいなものでしょう?外部からフィルタを通さずにプログラムを実行されてしまう、なんてことはあり得ないのでしょうか?
>374 368ではないが、バグと設定ミスがなければ、おき得ない。
376 :
nobodyさん :02/11/17 17:58 ID:dnX2K2BK
377 :
370 :02/11/18 22:28 ID:???
JDBCRealm動きました。テスト用DBですけど。 server.xmlとweb.xmlに書き足すだけで動くんですね。 認証部分の実装は一切してません。
378 :
371 :02/11/19 00:38 ID:???
>>377 俺が言うのもナンだが後学のためにおせーて (w
Apacheでのhttd.confのIndexesを削除するとディレクトリ構造が見れなくできますが、 webapps以下には適応されません。 どのようにしたら良いかお教えください。
Tomcat のバージョンはいくつだ。
お騒がせしました。 listingsとmod_jk.conf-autoに手を加えて解決しました。
382 :
370 :02/11/19 23:48 ID:???
383 :
370 :02/11/19 23:58 ID:???
384 :
370 :02/11/20 00:10 ID:???
上の2つ参照先が違った。
>>378 が正解。
apacheと連動させる場合はserver.xmlのapache-tomcat部分も
書きかえる必要があります。
385 :
nobodyさん :02/11/20 14:49 ID:B0p7tRKQ
tomcatでIEからxxxx.lzhファイルをダウンロードさせようとすると文字バケ表示になってしまいます。 web.xmlにmime-typeを追加すれば出来るのですが、あらゆる拡張子をダウンロードさせたいため、 mime-typeに指定なしのファイルをダウンロードさせるなにか良い方法はあるでしょうか?
386 :
nobodyさん :02/11/20 15:12 ID:dpW8VNzd
JavaBean からデータベースに SQL を投げる際に、 DB Server 自体が落ちているとかっていう情報を 拾うことは出来るんでしょうか? DB は Oracle なんですが。
388 :
m :02/11/21 23:59 ID:2Ed6O/dE
∩ ∩ | つ 「,"| .!,'っ_ ⊂_,! ∩ ∩ / ・ ヽつ ミ | つ 「,"| ギュッ ▼,__ | .!,'っ_ ⊂_,! (゚Д゚ ,)・| ミ / ・ ヽつ ∩ ∩ (| 、)|  ̄ ̄ ̄ ̄ ̄ ̄\ ▼,__ | | つ 「,"| | ・・| ミ しかばねだYO!> (゚Д゚ ,)・| !,'っ_ ⊂_,! ヽ.._人 ______/ (| 、)| / ・ ヽつ ⊂二⊃ ミ | ・・| ▼,__ | .⊂二⊃ ヽ.._人 (゚Д゚ ,)・| ⊂二⊃ ミ ⊂二⊃ (| 、)| ⊂二⊃ ⊂二⊃ | ・・| ⊂二⊃ ミ ⊂二⊃ ヽ.._人 ⊂二⊃ ヾ⊆≡⊇ ″ みょーん _________ ⊂二⊃____ ヾ⊆≡⊇ ″__________
389 :
nobodyさん :02/11/22 18:06 ID:b/1bts2b
地図と連動したiアプリ出会い掲示板を java言語で制作したいです 手伝って下さい 実際に稼動し売上の50%あげます
391 :
nobodyさん :02/11/23 17:05 ID:fnU7YKt0
jspとjavabeansについて質問です。 JavaBeansのオブジェクトを転送してjspファイルで使用したいのですが、 この場合、2行めのrequestオブジェクトに設定した名前と8行目に設定した id="obj"のとこは一致させないといけないのでしょうか? 自分はforwardで呼び出されたjspが8行目で値が取り出され使用されていると思っているのですが。 0:呼び出し元:サーブレット部(CtrlServlet.java) 1:myJavaBean myObj = new MyJavaBean(); 2:request.setAttribute("obj",myObj); 3: 4:RequestDispatcher rd = getServletContext().getRequestDispacther("/Output.jsp"); 5:rd.forward(request,response); 6: 7:呼び出し先:JSP部(Outout.jsp)/////// 8:<jsp:useBean id = "obj" class="ctrlServlet" scope="request"/>
392 :
nobodyさん :02/11/23 17:57 ID:UbdTqBEx
JBossのServletAPIでコンパイルしてクラスファイルを作成し、 jarでWARファイルを作成してJBossにデプロイしたらエラーがでました。 エラーメッセージは以下の通り [ERROR,AutoDeployer] DeploymentInfo failed:file:/D:/ProgramFiles/JBoss-2.4.6_Tom cat-4.0.3/jboss/deploy/ROOT.war org.jboss.deployment.J2eeDeploymentException: Error while starting ROOT.war: Err or during deploy, Cause: org.jboss.deployment.DeploymentException: Error during deploy, Cause: java.lang.IllegalArgumentException: addChild: Child name '' is n ot unique どなたかヒントください・・・
> この場合、2行めのrequestオブジェクトに設定した名前と8行目に設定した > id="obj"のとこは一致させないといけないのでしょうか? その通り。request、sessionなんてあたりのオブジェクトは 「名前の文字列=関連付けられたオブジェクト」 という形でAtrributeに登録される。
395 :
354 :02/11/26 01:34 ID:2NlroRg/
以前、複数のWebアプリ間で、classes以下の共有をしたいと書いた ものですが、WindowsのTomcat4では、相互のパスをクラスパスに 書くことで、相互参照ができていたのですが、 LinuxのTomcat4に持っていったら動かなくなりました。 具体的には、自分のアプリのWEB-INF/classesの絶対パスをクラスパスに 設定すると(catalina.shに記述)、HttpServletExceptionが出て正常に動作しません。 そのパスを変えると正常に動作します。 Linuxに限りクラスパスに、自己アプリケーションのWEB-INF/classesを書いては いけないなどの話ってあるのでしょうか??? ここでお聞きした話どおり、共通部をjarにまとめることで、目的の動作自体は できてるのですが、WinでできてLinuxでできないというのが、どうも解せないところで。
>>395 >ものですが、WindowsのTomcat4では、相互のパスをクラスパスに
>書くことで、相互参照ができていたのですが、
>LinuxのTomcat4に持っていったら動かなくなりました。
単にclasspathが通ってないだけだろ。
System.out.println(System.getProperty("java.class.path"));
とでもして確かめてみれば?
そんな面倒な事しなくても、CATALINA_HOME/shared/classes or lib に配置するのでは
ダメなのか?試したことないが。
397 :
nobodyさん :02/11/26 07:01 ID:yx5pl41J
mysqlとjdbcの連動がうまく行きません 環境はTURBOLINUXです。 WNINDOWS2000serverの方がTOMCAT+MYSQLの構築は簡単なんですかねぇ?
WindowsもLinuxも変わらん。JDBCドライバコピーするだけ
スラッシュで終わるリクエストが来た場合,(禁止していなければ) ディレクトリの一覧がクライアント返りますよね。この画面をServlet で制御したいのです。実際のディレクトリをみてファイルを一覧を取 得して動的にページを作ればいいわけすが,.warにまとめてしまうと 「実際のディレクトリ」が存在しないので,この手が使えません。 .war内の特定のディレクトリ内にあるリソースの一覧を取得する方法 はないのでしょうか?
400 :
nobodyさん :02/11/30 03:18 ID:N3cPDgWW
JSPの質問でつ。 関数の中でhtmlを吐き出すときこういう↓書き方は無理なんですか? out.printしないとだめぽ? %> <HTML> <HEAD> <TITLE>test</TITLE> <%
401 :
nobodyさん :02/11/30 11:00 ID:q4zNHxed
>400 フラグ検査だけを関数に切り出して、 <%! func定義 %> <% if (func() == true){ %> テキスト情報 <%}%> などとやる。 そうすれば、Servlet翻訳時に自動的にif文の間にout.printlnが挿入される。
402 :
nobodyさん :02/11/30 23:17 ID:VzfGXbBx
>>401 つまり一番外のスコープでしかむりぽってことでつか?
>>402 そんな馬鹿なことはするなってことだ。絶対に後で後悔する。
404 :
nobodyさん :02/12/02 00:31 ID:FZnx/Sv6
たとえばヘッダ部分は(いろんなページで)何回も使うから サブルーチンにしといて…みたいなことはできないんでつか? もちろんout.printすればできるだろうけど、 out.print("<HTML>"); out.print("<HEAD>"); // (ここらへんにTITLEやらMETAやらSTYLEやらSCRIPTやらイパーイ) out.print("</HEAD>"); ↑これじゃ嬉しくないっすよね。 ソースのごちゃごちゃさはPerlでCGI書くときとかわらん… ダブルクォートはいちいちエスケープせなあかんし。 ASPならできるのにな(ぼそっ なんか漏れが激しく勘違いしてるなら指摘してください。
// (ここらへんにTITLEやらMETAやらSTYLEやらSCRIPTやらイパーイ) ↑の部分を別ファイルにして <jsp:include page="そのファイル.jsp" flush="true" /> とやっときませう。 …JSP からじゃないのかな。サーブレットなら request.getRequestDispatcher("そのファイル.jsp").include(request, response) してくれ。
406 :
403 :02/12/02 06:53 ID:???
>>404 >ASPならできるのにな(ぼそっ
何故ASPXで*出来なくなった*のかその無い頭で考えてみてください。
407 :
nobodyさん :02/12/02 08:44 ID:j/3KH6Gx
JSPにしてIncludeすればいいのに。ボソ
408 :
bloom :02/12/02 08:53 ID:Ss+94/LC
409 :
nobodyさん :02/12/03 06:45 ID:Vbwn1Jvx
数行のインクルードファイルいっぱいでuzaaaaaa-----!!!な感じだな。
410 :
nobodyさん :02/12/04 02:12 ID:6EZVQnk9
実際、ウザーーーーなソースが多すぎる
cocoon XSPで、うま〜
412 :
nicebodyさん :02/12/05 22:16 ID:9IL6Ad5C
質問ですが。 サーブレット作ってみたんですが、よく分からんことがあります。 catch(Exception e){}とかだけだと、ちゃんと動くのに、 catch(NullPointerException nullpo){}とかを足すと、動かなくなって しまいます。 どんな時にどんな例外が発生するのか、ほとんど知らんですが、 どの程度catchすればいいんでしょ?トリアエズ今は、知ってる限りのExceptionを 連ねて、コンパイル時にエラーが起きたものだけ削ってます。 ダメ??
412>> 何でもいいのでServletのサンプルを一度見たほうがいいよ。 Exceptionは、 try { : } catch( 自分で定義したException e ) { : } catch( Javaに登録されているException e ) { // NullPointerExceptionとかIOExceptionとか : } catch( Exception e ) { // java.lang.Exception(全ての例外の基底クラス) : } finally { : } という感じに記述する。 とりあえず、「ユーザ定義例外(もしあれば)」→「Javaに登録されている既知の例外(もし必要ならば)」→「Exception(これか必ずつける習慣をつけよう)」→「finally」の順に記述しよう。 知ってる限りのExceptionを並べるというのは意味がない。 NullPointerExceptionを記述するとエラーが出るというのは、try節の中に書いてある君のコードに、NullPointerExceptionを報告するコードが存在しないことを意味する。 「報告」の意味は、throwsでJavaの本を調べれ。てゆうか後は面倒くさいのでJavaの本を読んでくれ。
>>413 ありがとうです。
もっと勉強しなくちゃです。っていうか、
僕の持ってる本にはfinary{}なんて書いてなかった。
> 僕の持ってる本にはfinary{}なんて書いてなかった。 DB接続を行う処理の場合は「必須」です。 てゆうかコネクションの解放にfinallyを使わない厨房ソースが多いこと・・・。
>>415 あ、なるほど。DB接続とかをclose()しないといけないってことですね?
tryの中には書いていたけど、catchの方は気にしてなかったです。
DBのcloseはfinallyで書く。これ常識。むしろそこらへんで厨房度が分かる。 さらにfinallyの中にさらにtry...catchを入れるのが由!(今月号の日経OSでも載ってたNE) ちなみにfinallyは正常ケースだろうがcatch節に飛んだケースだろうが、そのメソッドを抜ける際に必ず実行されるYO!
418 :
miya :02/12/06 03:57 ID:ICF5OpxX
すいません。今壁にぶち当たっているのですが、だれかたすけてください。 Win2k + Tomcat4.1 + Apache2 で連携していて 環境変数 CLASSPATH にC:\classesを追加しています /アプリケーションコンテキスト/WEB-INF/classes/TestServletから CLASSPATHに設定したC:\classesディレクトリ以下のクラスファイル が見えなくなっています。 コンパイル時は何ともないのに実行時に NoClassDefFoundErrorが発生してしまいます。 だれかたすけてください。うぅ。
J2EEではServletコンテナやAPサーバに勝手にclasspathを追加しないのが基本。 Tomcatなら環境変数CATALONA_HOMEを通して、common/libまたはcommon/classに必要なJARまたはclassを置く。 そうすればTomcatが起動時に勝手にこいつらにPathを通してくれる。 また、特定のWebアプリケーションからしか参照しないclassであれば、WEB-INF/classesまたはWEB-INF/libに配置してWAR化すること。
CATALONA_HOME ↓ CATALINA_HOME
421 :
nobodyさん :02/12/06 10:57 ID:Kdf5QYtb
422 :
nobodyさん :02/12/06 20:02 ID:aSWE3JmD
Win2000でtomcat4.0+apache1.3をmod_jk.dllで繋いでいるんですが、少々 困っていると言うか、疑問なんですけれど、web.xmlで設定した<url-pattern>が、 tomcat単体ではちゃんと反映されるのに、apache経由だと404になってしまいます。 これは正常なことなのか、はたまた僕の設定が甘いのか、ググってもイマイチ それらしい答えがありません。はたしてどうなんでしょうか?
>>421 ソースぐちゃぐちゃ。メンテナンス性最悪
424 :
nobodyさん :02/12/07 03:45 ID:6B+N2QJl
425 :
nobodyさん :02/12/07 03:50 ID:NfROD7dM
>>407 結局、激しくインクルードファイルに分割するってことは
CGIやASPと同じくデザイナーさん泣かせなわけですね。
デザインとプログラムの分離は無理と。
426 :
miya :02/12/07 08:42 ID:dCIzefcY
>>419 419番さん、ありがとうございます。なんとか理解できました。これで先に
すすむことができます。近いうちにまた壁にぶつかるとおもうけど・・・。
J2EEも勉強しなくちゃいけないですね。
Linux Apache 1.3.27、tomcat 4.0.4 で mod_webapps.so で連携を 計ってるのですが、やはり、DocumentRootを共有するってのは出来ないん でしょうか? webapps以下に、シンボリックリンクでapacheのDocumentRootを置いて みたのですが、その場合、すべてtomcatに転送されている感じで、phpや cgiが動きません。cgiはplain/textに、phpはmimeを吐かない書類として 実行されません。 上の方にproxyでとか、mod_jkを利用する方法なども見かけたのですが…
マルチポストしていいですか?
429 :
webApp :02/12/09 01:37 ID:6eYifm2a
WebSphereをアプリケーションサーバとしてJAVA開発を行っているものです。 複数端末でのユーザの2重ログインチェックを行いたいのですが。 ある端末Aのログイン画面で「user001」というユーザで ログイン認証を行った場合、端末Aにユーザが ログインしている間はその端末Aや 他の端末Bのログイン画面で「user001」というユーザで ログイン認証を行えないようにしたいのです。 セッション変数を使用するという手もあるとおもうのですが、 1つのブラウザの範囲内でしかセッション変数の格納や取得ができないもの と思っています。 全てのブラウザのセッション変数を管理するようなしくみなどないもので しょうか? なにかいい方法がございましたらご教授お願いします。
普通そういうものこそDBで管理しないだろうか(ログオン管理TBLまたは監査証跡TBLとか作って)。 DB使いたくないならStateful Session Beans。
>>429 俺も以前仕事でそんな処理を書いたことあるけど、
>>430 の言うように、さくっとDBで管理したよ。
つーか 完全にClientが別なのに(端末A,端末B)ステ付Session Beansで、
管理ってできるんだっけ???
432 :
430 :02/12/09 11:39 ID:???
ごめんStateful Session Beanは勘違い。
433 :
webApp :02/12/09 12:20 ID:10t8e7Hw
>>430 ,431
あの後、Stateful SessionBeanを調べてみましたが
どうも、別端末からは出来ないようです。
やはり、DBで管理しないといけないですか。
そうなると、ユーザがログアウトした場合を考えると
ログアウトボタンなどで正しい方法でログアウトして
くれる場合はよいのですが、ブラウザの×ボタンを押さ
れた場合、DBの情報を更新することが出来るのでしょうか。
434 :
workaholic :02/12/09 12:39 ID:rnIhPMMe
>>433 javaScript使って、onUnload(あるいはonBeforeUnload)等のイベント拾って、
「ログアウト」の旨を伝える内容を、自動submit。
それ以外の方法取りたかったら、もっとキっついClientサイドの
処理書かないといけない。ActiveX使うとか。
...っつても、処理内容はjavaScriptでやるのと同じだから、意味無し。
ギャフン。
435 :
430 :02/12/09 13:08 ID:???
タイマー使って定期的にDB調べて、一定期間アクセスがないユーザがいたらログアウト扱いで更新。 監査証跡の場合によく使う手口です。記録に残るのでタイムアウトでログアウトさせたという明確な証拠として残る。 ちなみに監査証跡にするんだったら、ユーザの1つ1つのアクションすべてに対してロギングするよ。 (いつ誰がどのページに遷移してどんな操作を行ったか、とか) ユーザ管理(アクセス権管理やログオン制御も行う)+監査証跡という組み合わせって一般的だと思うんだけど。
>>429 まぁ 1 台構成ならファイルでも出来るわな。File#createNewFile() はアトミック性が
保証されてるし。
1) ログイン時に適当なディレクトリに <userid>.lock ファイルを作る。ファイル
作成に成功すればログイン完了、失敗すれば二重ログイン扱い。
2) ロックファイルの作成に成功した場合、File#deleteOnExit() を仕掛けておく。
さらに一定時間経過したロックファイルを削除しなければならないので以下を処理が
必要。
1) ログインが完了したユーザのセッションに HttpSessionBindingListener を
実装したオブジェクトをぶち込んでおく。このオブジェクトは valueUnbound()
時に自分のロックファイルを削除する。
2) 適当なスレッドを立ててロックファイルの最終更新日から一定時間経過したもの
を消すようなサーブレットを作成 (この場合、リクエストのたびに
File#setLastModified() が必要)。このサーブレットをサーブレットコンテナの
スタートアップに登録。init() でロックファイルをすべて消す処理を入れておくと
良い。
ただ、ブラウザの×ボタンを押した時にはしばらくの間ログインできなくなるがな。
2重ログインを防止しようとすると避けられない問題。さもなくば同一 IP からの
2重ログインを許可するしかない。
437 :
436 :02/12/09 22:36 ID:???
同一 IP からの二重ログインは i-mode みたいなラウンドロビンプロキシ使ってる 端末には無効なのであしからず。
438 :
nobodyさん :02/12/10 01:48 ID:uIXkTSgk
Tomcat4.0.4、PostgreSQL7.3から配列をキャストしたいのですが String[][] my_Array = (String[][])rs.getArray("name"); 等とすると 「この型は declaration には不適合です。 java.lang.String[][] から java.sql.Array には変換できません。」 と言われてしまいます。配列をキャストする、変換する方法ってないのでせうか?
439 :
438 :02/12/10 04:04 ID:???
まだ実装されていない…?
440 :
nobodyさん :02/12/10 04:05 ID:B9fPQtcJ
Tomcat4.1.12での話しなんですけど、 JakartaのOROやLog4jなど利用しよと思うんですけど、 今はstartup.shでCLASSPATHをガツガツ追加して動かしてるんですが、 もっとスマートに導入する方法あると思うんですけど、 教えてください。
>>440 $TOMCAT_HOME/lib/
以下にjarファイルをコピ。
>>438 java.sql.Arrayのドキュメントみれ
443 :
nobodyさん :02/12/10 19:23 ID:B9fPQtcJ
>>441 レスどうも。
rpmでインストールしたせいか、$TOMCAT_HOME/lib/に相当する、
/var/tomcat4/libが存在しないんすよ。
とりあえず、/var/tomcat4/shared/classesに入れてみたんですけど
駄目でした・・・
自分でも怪しいとこ探してみます。
どもでした。
JSTLの式言語で ${ メソッドの呼出し } みたいなことってできないんですか? たとえば ${ java.util.List#get() }みたいなこと。
>>444 できない。というより意味がない。<%= %>でだめな理由は?
ELはJSP記述を補完するものであって完全にリプレースするものではないよ。
ファイルアップロード機能付き掲示板のソースって どこかに落ちていない?
448 :
nobodyさん :02/12/11 17:42 ID:LEQcc0R2
Servlet&JSPの未来は明るいのでしょうか? 来年になったら.NETに押されて過去の遺産になるとかいってるやつが うちの近所にいるのですが、本当でしょうか? この前雑誌で見た、ASP.NETのWEBアプリの開発の容易さは大衆受け間違いなしと思うのですが どうでしょう?
449 :
nobodyさん :02/12/11 20:46 ID:GqIGiZUN
>>448 Javaにも新しい展開が生まれていくと思われ。
少なくともフレームワークやJSP系は徐々に洗練され
始めてるでしょ。好みはそれぞれだと思うけど。
まあ、もし「.NET」が普及するんであれば、その恩恵で
かつてのVBのような展開で、糞みたいなWebアプリが次々
登場するでしょう。
※個人的にはさらに単価が安くなりそうで鬱。
450 :
438 :02/12/12 01:55 ID:???
>>441 Array my_Array = rs.getArray("name");
String[][] my_Values = (String[][])my_Array.getArray("name");
やっぱり分かりません…
451 :
438 :02/12/12 01:58 ID:???
>>450 Array myArray = rs.getArray("name");
Object array = myArray.getArray();
System.out.println(array.getClass());
java.sql.Array#getArray()で返って来る実際の型を調べろ
453 :
438 :02/12/12 17:22 ID:???
>>452 型変換の問題は何とかなりました。アリガトございます。
試しに一次元配列のSQLテーブルを作成し、
Array my_Array = rs.getArray("name");
String[] my_Values = (String[])my_Array.getArray();
と試したところ、問題なく配列を取り出せ、また、二次元配列に
SQLテーブルを作成し直して
Array my_Array = rs.getArray("name");
String[][] my_Values = (String[][])my_Array.getArray();
を試すとやはり
This method is not yet implemented.
となります…postgres.jdbc2ドライバーのせいなのかなぁ…
454 :
438 :02/12/12 17:32 ID:???
そだ String[] my_Values = (String[])my_Array.getArray(); から for (int i=0; i< my_Values.length; i++) { for (int j=0; i< 4; j++) { ma_Values2[i][j] = (String[])(my_Values[i]); } } これならいけ…るかな…と思ったのですが、SQLテーブルが 多次元な次点で、 This method is not yet implemented. となります…
>>454 自分で実装してcontributeしる!
456 :
webApp :02/12/15 01:50 ID:WeZJArdX
>>436 レスありがとうございます。
ロックファイルの案を参考にさせて頂きました。
EASサーバが3台構成なので、DBを使用して二重ログインチェック
を行うことにしました。
1.ログインが完了したユーザのユーザID(ユニーク)、日付をDBに登録する。
登録に成功すると、ユーザ認証成功、登録に失敗するとユーザ認証失敗。
2.ログイン認証が成功したユーザのセッションにHttpSessionBinding
Listener を実装したオブジェクトを格納しておく。
このオブジェクトは valueUnbound()時にユーザのユーザIDに該当する
DBのデータを削除する。
3.アプリケーションの画面で業務終了ボタン等のイベントで、ユーザIDに
該当するDBのデータを削除する。
4.ブラウザの×ボタンを押された場合は、セッションタイムアウト時に、2.
の処理が実行されるので、しばらく待つことになる。
>>456 業務終了って言葉が出てきたからには社内システムだと思うが、×ボタンを押した
時にしばらくその人の作業が出来なくなるのは業務的にまずくないか? あと、
それだけだと WebSphere の再起動や異常終了時にユーザロックが残ったままに
なる。3台のうち1台が異常終了した場合、その1台のセッションを使っていた
人のロックだけをはずす手順は分かるか? ロードバランサーがラウンドロビンとか
だとさらにややこしくなると思うが。
458 :
nobodyさん :02/12/15 13:22 ID:6PApFmgW
>456 2重ログインの管理については、DBにログイン情報を登録するのは 良いが、セッションオブジェクトを使うのではなく、単純に、普通のクッキーを 使うのはどう? クライアントのイベントに依存する処理は、なんか危険。 要は、再ログインをどう許すか?という話なのだから、 1.ログイン時にユーザーに対してクッキーを発行 期間は、適度に永続的にして、ブラウザを閉じても消えないようにする。 データは、鯖が作成するセッションIDを入れる。 また、DBに画面アクセス日付とセッションIDを登録。 2.次回ログイン時に、このユーザーIDがセッション中かそうでないか?を判断 3.もしも前回ログイン時間の間隔がログイン中と判断されれば、クッキーに 以前のセッションIDが格納されているか?をチェックして、もし持っている なら同一ユーザーと判断し、ログインOK もし、データがないなら、違うマシンからのアクセスなので、ログイン失敗 4.前回ログイン時間との間隔が、セッションの範囲を超えているならば、 新規セッションとみなして、再度、1の処理を行いログインOK 弱点は、セッションの活性化というか、あらゆる画面のセッションチェックで DBに書いてあるユーザーログイン時間を更新しなくてはならないこと。 あと、セッションオブジェクトと連動できないため、セッション変数が使うときに ログイン時に戻してあげる必要があること。セッション変数をシリアライズして、 DBに格納しておく必要ありか?
459 :
nobodyさん :02/12/20 01:51 ID:H52mPG7b
StrutsのフレームワークでActionクラスから別のJSPにForwardする時に、 セッション変数の値を保持することができません。 あるコンテキストAでのセッションIDとForwardしたコンテキストBのセッ ションIDの値は同じなのですが、セッション変数が無効になります。 他のコンテキストへは、セッション変数は引き継げないものでしょうか?
460 :
nobodyさん :02/12/20 01:51 ID:H52mPG7b
コンテキストAのActionクラス public class SampleAction extends org.apache.struts.action.Action { public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ServletContext context = getServlet().getServletContext(); ServletContext forwardContext = context.getContext("/B"); RequestDispatcher dispatcher = forwardContext.getRequestDispatcher("/WEB-INF/jsp/index.jsp"); //セッションIDの出力 ← ID0000WJ3VLHFLPNH11MSIGWW4Y3A:-1が出力される System.out.println("AでのセッションID"+request.getRequestedSessionId()); //セッション変数の格納 request.getSession().setAttribute("test","ok"); //セッション変数の取得 ← okが出力される System.out.println(request.getSession().getAttribute("test")); dispatcher.forward(request,response); return null; } }
461 :
nobodyさん :02/12/20 01:52 ID:H52mPG7b
コンテキストBのJSPから呼ばれるActionクラス public class SampleAction extends org.apache.struts.action.Action { public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ServletContext context = getServlet().getServletContext(); //セッションIDの出力 ← Aと同じID0000WJ3VLHFLPNH11MSIGWW4Y3A:-1が出力 される System.out.println("BでのセッションID"+request.getRequestedSessionId()); //セッション変数の取得 ← okではなく、nullが出力されてしまう System.out.println(request.getSession().getAttribute("test")); } } すみません。459〜461です。
462 :
nobodyさん :02/12/20 13:21 ID:umD3XVVz
servletのsessionidについて質問ですが、stringのsessionidの場合、最大何桁 (何文字?)まで設定できるのですか? なんかわけわからい質問かもしれませんが、回答お願いします。 (いきなり先輩に調べろといわれて途方に暮れてます・・・)
463 :
nobodyさん :02/12/20 15:02 ID:YqeBsIL9
464 :
nobodyさん :02/12/20 15:14 ID:YqeBsIL9
唐突なんですが、EclipseとTomcatで開発する時、 最適なデバッグ環境ってどんな設定したらいいんでしょう。 最初自分は適当にサブレ作ってWAR作ってTomcatに放り込んで再起動し、 とりあえず動かしてSystem.outって感じだったのですが、 あまりにウザいので、デプロイは直接Classの保存先を任意webappの classesに指定し、web.xmlも直で書き換える形にしました。 しかし、デバガとTomcatを連動する方法がわかりません。 やっぱEclipse単体だと、WSADみたいな事はできないのか?
465 :
nobodyさん :02/12/20 16:46 ID:umD3XVVz
>463 設定じゃなくて、取得かな? なんか、sessionIDを取って、取ったIDをDBにInsertするので、 DBのカラムの桁数の設定の参考にしたいそうです。 (DBはOracle9です。) /* 今までASPしかやったことない(しかも数ヶ月)私にはJSPは敷居が高いなぁ・・・(涙 (でも次の仕事でつかわないといけないし・・・) */
466 :
nobodyさん :02/12/21 20:12 ID:R2Psu5PA
459〜461で追加です。 WebSphere AES 4.0で、 あるWebアプリケーションから別のアプリケーションにディスパッチを 行う場合に、セッション情報が失われます。 TomCat4.0.4、3.3系では可能です。 WebSphere AES 4.0でセッション情報を引き継がせる方法はないでしょうか?
>>466 管理コンソールかどこかに設定なかったっけ?
469 :
468 :02/12/22 02:01 ID:???
あ、ちなみにrequestは、JSPの暗黙インスタンスでもいいし、 Servletの doGet (あるいはdoPost) の引数でも良い。
470 :
nobodyさん :02/12/22 14:08 ID:5C2ox88F
Session管理って、もっとも確実でセキュリティの高い方法は、結局 のところHIDDENフィールドなんですかね?コーディング大変だけど・・・ SessionオブジェクトなんかはCookieを無効にされたら一発でアウトだし、 URL Rewriting はセキュリティ的に問題あるし・・・
>>470 Cookie も HIDDEN も URL Rewrite も平文パケットが飛ぶのは同じ
素直に SSL 使いなはれ
>>470 てゆーかHiddenって...。ソース見られたら終わりでは..。
473 :
age :02/12/22 15:13 ID:5C2ox88F
Servlet API のクラスの仕様が乗っている J2EE DOC ってのが あるらしいのですが、見つかりません・・・ どなたか場所をおしえてください・・・
475 :
nobodyさん :02/12/22 16:28 ID:xvh5bsxK
Servlet Specよめ。 べつのServlet Context(別のWAR)では、Sessionは別になるってことは Servlet Spec2.2 からの常識だろ。 Sessionを共有したいのなら、ひとつのWARにしろ。
>>475 IBMのWAS使ってるのなら、WASv4.0.4からはEARワイド(WAR間)でセッション共有できる
独自拡張機能があるでよ。WASv5なら最初から入ってる。
478 :
nobodyさん :02/12/23 13:04 ID:sOBBiOys
destroyメソッドを実行させたいのですが、 もっとも簡単なテストの方法は何ですか? Tomcatを再起動させるしかないのでしょうか?
System.gc(); 運がよければ実行される。 Tomcatの再起動じゃdestroy()は走らないでしょ
480 :
nobodyさん :02/12/24 12:35 ID:SRQOAFB0
>476 WASv4.0.3を使用しています。 WASv4.0.4のEARワイド(WAR間)でセッション共有できる 独自拡張機能の詳しい資料や参考URLとか、ありませんか。
481 :
nobodyさん :02/12/24 18:05 ID:dttvkCa8
>>476 >>480 そんなもの、使うな。
Specじゃないけど、用意されているっていうことは、
そのデメリットを本当に考慮している人だけが後ろめたい気持ちで
コッソリと使うものだ。
素人は、素直にSpecどおりにしておけ。傷が広がらないうちに。
483 :
nobodyさん :02/12/26 16:04 ID:eh9DbOka
>>481 WASを V4.0.4にしました。
どうしてもWebApp間でセッション共有を行う為に独自の拡張機能を使用したいのです。
V4.0.4の新機能に、
@「Enterprise Application内でのWeb Application間のSessionの共有」
というものがあります。
また、拡張機能として、
A「Provide session sharing across Web modules in an enterprise application」
というものがあります。
これは、sessionshare.xml というファイルをWASのproperties配下に配置し、
内容は、セッションを共有したいEnterpriseAppnamesをカンマ区切りで記述する
と、セッションマネージャーがそのファイルを参照し、Enterprise Application内の
複数のWeb modulesでセッションを共有できるようになるそうです。
実際試したのですが、1つのear内に複数のwebAppを作成した場合は、複数のwebApp間
でのセッションの共有はできるようになりました。
しかし、複数のearにまたがるwebAppでは、セッションの共有はできませんでした。
Aの拡張機能としては、正しいと思います。
@の新機能は、V4.0.4をインストールした時点で使用できるのか、
それとも何か設定をしないといけないのかが分かりません。
ご存知の方、どうか教えてもらえないでしょうか。
参考URL:
http://www-6.ibm.com/jp/domino01/software/websphere.nsf/NewsWeb/92 C9F03BD3ADD24849256C210024EFAB?openDocument&&ViewName=NewsWeb
>>481 > しかし、複数のearにまたがるwebAppでは、セッションの共有はできませんでした。
これはできませんよ。設定がどうこうではなく,EAR間の
セッション(HttpSession)共有はありえないのです。
ちょっと考えてみればなぜかはわかると思いますが。
もしそんなことをしたいというのであれば,それはEAR/WARの
パッケージングの粒度を見直すべきです。前提がそもそも
誤っているということですね。そうなるとHttpSessionではなく
アプリ側で独自のセッション引継ぎを実装するしかないでしょう。
485 :
nobodyさん :02/12/27 00:46 ID:JMAqBuKI
Tomcatでjspを使ったのWebアプリを動かしてるんですけど、 そのサーバーがファイヤーウォール内にあるので、 逆プロキシで外部からアクセスするようにしました。 しかし、逆プロキシ経由すると、そこで sessionオブジェクトが消えてしまうみたいなんです。 こういう場合sessionオブジェクトは使えないんでしょうか? なんとか動くようにしたいんですけど、 なにかいい手はありませんか?
486 :
nobodyさん :02/12/27 00:53 ID:GgzWBaJJ
487 :
nobodyさん :02/12/27 01:08 ID:RsSYigkg
>>484 「WASv4.0.4のEARワイド(WAR間)でセッション共有できる
独自拡張機能」というのは、
「EAR内での複数のWAR間でセッション共有できる」
ということなんですね。
EAR間ではセッションは共有できない、またできる
べきものではないのですね。わかりました。
どうもありがとうございました。
1回のPOSTでservletが数回実行されてしまうの ですが対策ありますか?
>>488 どういう状況下でそうなったか、まず書け。
「Servletが」とは「同じServlet」なのか「別のServlet」なのか。
「1回のPOST」は本当に1回なのか。
490 :
488 :02/12/27 12:04 ID:???
>>485 同じような問題に遭遇したことがあるが解決法はしらない
誰かおしえてくれー
>>490 そのonSubmitに書いたコードが間違っている。
にしてもこのページ良くないなぁ。
なんにも考えない奴がこのページ見たらJavaScript挟むだけでだけで安心しちゃうよ。
クライアントサイドスクリプトなんていくらでも改変・悪用が可能なんだから、
サーバー側での対処は必須。
クライアントJavaScriptはユーザーの利便性向上以上の目的で使ってはいけない。
>>485 ,491
そのプロキシがヘッダ弄ってるんじゃない?
494 :
490 :02/12/27 12:42 ID:???
>しかしonSubmitに書いたコードが間違っているとは思えないのです じゃぁネットワーク監視してPOSTが2回飛んでないことを確認したら? アクセスログでも良いけど。 そうでなかったら受け取ったServletが自分自身のdoPostを余分に呼んでる。 >このようなことはJSP&サーブレットでもできるものでござるか? できる。 ていうかサーバーサイドで対処する方法なんていくつもあるんだから、 その中から要求仕様に合ったものを自分で選べばヨシ。
496 :
485 :02/12/27 17:51 ID:pFyW/X+i
>>493 プロキシがセッションidを削ってました。どうもです。
Apacheのmod_proxyを使ってるんですけど、
削らないように設定する方法はわかりませんか?
あと、セッションidが削られるのを直せないとしたら、
sessionの代用は何をつかうのがいいでしょうか?
Stringを1つ保存するくらいなんですけど、
やっぱりクッキーでしょうか?
>>485 sessionidが削られる環境=cookieも削られる、筈。
ていうか、同一。
498 :
497 :02/12/28 12:12 ID:???
499 :
490 :02/12/29 12:07 ID:???
>>497 その場合ユーザー認証はどのようにして
実現します?
500 :
_ :02/12/29 12:12 ID:LE3o8C1x
Cookieでなく URL-rewriting にしたら?
502 :
497 :02/12/29 13:30 ID:TRvxBQ36
>>499 >その場合ユーザー認証はどのようにして
やっぱりDB使うしかないんじゃないかな。
そういうケースとか、"ロードバランサかましてる"時とか、
Session情報を保持できない時の常套手段。
どうしてSessionそのものとSessionを維持する手段を分けて考えられないのかね。 ここの連中はアホばっかり? Cookie使えないならURLリライティング使えばいいだろ DB云々なんてのは全然関係ない、レイヤの違う話。
505 :
497 :02/12/29 15:20 ID:5NDJvXMb
>>503 あのね、漏れは、
>>499 の
>その場合ユーザー認証はどのようにして実現します?
の、問いに対して「自分だったらこういうアプローチを取る」と、
答えただけなんだけど。...ていうか仕事で実際そうしてるし。
501=503 ?? 自分の意見が無視されたのが、そんなにくやしいのかね。
ていうか、「ユーザ認証の処理」に対して「URLリライティング」を適用するっていうのを、
>>499 に具体的に提示してやれよ。それこそ、「レイヤが違うん」じゃないの?
話聞けよ。アホ。
ユーザー認証とSessionをごっちゃにしてる
>>497 の勘違いを指摘せずに
「DB使うしかない」なんて更に見当違いの話持ち出したってそれこそ泥沼だな・・・
Sessionさえ維持できれば497が既に知ってるであろうユーザー認証の手段が使える。
>の、問いに対して「自分だったらこういうアプローチを取る」と、
>答えただけなんだけど。...ていうか仕事で実際そうしてるし。
DBを使うことと認証がどうしてリンクするの?
きちんと理解できてないのならもう少しよく勉強した方がいいよ。
DB?コンテナが用意してくれているセッション管理の機構を自分で再実装してるのかね(笑
それともユーザー名とパスワードをリクエスト毎に持ちまわってるのかね(笑
507 :
497 :02/12/29 20:30 ID:V00Mpbw5
>>506 >DBを使うことと認証がどうしてリンクするの?
確かに話飛び過ぎたかもしれんが、漏れがやった具体的な方法というのは
(
>>506 がシステム屋なら知ってると思うが)一般的に「そのWebシステムを使用するユーザ(例えばその会社の社員)」についての
情報ってのは、普通ソレ専用のDBに溜めてある。
で、単純にAPサーバにあるWebシステムに「ログオン」する時に、そこに保存してあるIDやパスとの比較を
行い、以降の処理を行う。
...っていうか普通のSEだったら、こんなの「何あたりまえの事言ってんの?」って感じだと
思うんだが...。
で、この後、
>Sessionさえ維持できれば497が既に知ってるであろうユーザー認証の手段が使える
これって、要するに「ログオン状態(State)の変遷の保持」の事言いたいんだよな。
で、ここでポイントになるのが漏れが
>>502 で言った、
「ロードバランサとかかましている時」=「Session状態をC/Sで一致させる為の手段が無い時」
に、どうするのか、って事。
いくらURLRewrite使ってもさ、もしロードバランサとかでAPサーバ振り分けられちゃったら、
「そのSessionIDに一致するインスタンスがサーバにない」って事になるよな。
(つーかクラスタ組めばいい感じになるAPサーバも世の中にはあるが)
要するにだ。もう一度
>>502 の漏れの書き込みを読んでみろよ。漏れの経験上の一意見として、
>そういうケースとか、"ロードバランサかましてる"時とか、Session情報を保持できない時の常套手段。
として、DBを使うって、言った、んだよ。
お前、実務経験無いだろ。学生か?
508 :
497 :02/12/29 20:41 ID:V00Mpbw5
>>507 自己レス。すまん。つーか「状態変遷の保持」。つまり、
>>506 が
>>503 で言った
>どうしてSessionそのものとSessionを維持する手段を分けて考えられないのかね。
漏れは「Sessionが維持できない」ケースとして、例を出したんだよ。「こんな事あったな」って。
でその時はログオン後、仕方が無いので、要所要所でDBから読んで処理した。
(全部のWebページ毎、では無いが)
特に、インターネットに接続された外部のユーザがアクセスしてくる
システム(ただしそれほどクリティカルでない)で、かつそれぞれクラ環境がバラバラで、
Cookie使用禁止な所もあれば、プロキシの設定がアレな所もある。
最初は普通にSessionで管理していたんだが、客側の都合で「このままで動くようにしてくれ」
言われてしまった。で、こんな処理を書いた訳だ。
実際Sessionで管理できれば楽なんだけどな。ま、こんなケースもあると。
おちけつ
どうも自分の間違いを素直に認められない方のようで(笑
>>502 >>その場合ユーザー認証はどのようにして
>やっぱりDB使うしかないんじゃないかな。
「その場合」で無い場合(=Cookieが使用できる場合)のユーザー認証に
DBは必須ではないような書き方ですね。
>情報ってのは、普通ソレ専用のDBに溜めてある。
へー「DB」っていうのはそう言う意味で使ってたの。502と矛盾してますよ。
しかしずいぶん程度の低い話になったね。
>で、ここでポイントになるのが漏れが
>>502 で言った、
>「ロードバランサとかかましている時」=「Session状態をC/Sで一致させる為の手段が無い時」
>に、どうするのか、って事。
話がすり替わってるよ。
いつの間にこんな特殊な(※)環境の話になったのかね。
409の環境に関する情報は「Cookieが使えない」ぐらいしか出てないようだけど(笑
※素朴なServletコンテナの実装からすると特殊な、という意味ね。念のため
>お前、実務経験無いだろ。学生か?
実務経験あってもわかってなきゃ意味ね−な。理解してる学生バイトの方が数倍使えるよ(笑
511 :
497 :02/12/30 03:37 ID:5wRLF/Jd
>>510 今このスレ遡って読み返してみた。正直な話、いつの間にか話飛んでたよ。
間違いがあったのは認める。...ムカつくけどな、お前。
ガキの噛み付き方丸出しだし。
(って、それに煽られて興奮気味になんだかわからない事書き込みしてる漏れも相当ガキ丸出しだが....)
つーか元の話ってのは、「Sessionが削られている」から始まって「ユーザ認証ってどうしてます?」
って話だろ?
それで、漏れは
>>508 に書いたような事が勝手に頭によぎってそう書いたんだよ。
つーか「理解してる学生バイト」(ちなみにシステム屋で学生バイトなんているのか?)
ならわかると思うが、
>話がすり替わってるよ。いつの間にこんな特殊な(※)環境の話になったのかね。
と思うなら、
>へー「DB」っていうのはそう言う意味で使ってたの。502と矛盾してますよ。
矛盾なんて無ェだろ。
つーか、もう、なんか元の話と関係無くなってるので、この辺で。
他の方々、アホさらしてすんません。
512 :
初心者 :02/12/30 07:07 ID:UlqXA/Qv
これからJSPを始めようとしているんですが、誰か、
>>34 や
>>55 で紹介されてる、
Apache_1.3.22-Mod_SSL_2.8.5-OpenSSL_0.9.6b-WIN32.zip
OpenSSL-0.9.6c-Windows.zip
jakarta-tomcat-4.0.3.zip
の3点をうぷして頂けないでしょうか?
後、
>>55 さんのページに書かれてた LawWebOffice モジュール とは何ですか?
これも必要なんでしょうか?
よろしくお願いします。
>>512 場を和ませようとしたのか?
まずぐぐれ
>>511 (497?)
オレもSEのはしくれなので言いたい事はわかるんだけど、
相手の環境考えなきゃ。それこそその筋の人間なら、頭の中で話つながるんだけど、
自宅でサーバ立てようって向きには、「何言ってんの?」って思われても仕方が無いと思う。
>>510 Sessionと、Session維持を分けて考えろとか、良いとこ突っ込んでんだけどねー。
君、口悪すぎ(笑)
肩持つ訳じゃないけど、511は本人も言ってる通り、「そういう例」を
ただ何の気無しに言ったんだと思うよ。経験した話として。
たぶん、これってただそれだけの話。
516 :
初心者 :02/12/30 17:42 ID:UlqXA/Qv
いや、マジなんすけど。
直でぐぐってもヒットしないし、
>>514 さんの辺りを見ても中々見つかりません。
518 :
初心者 :02/12/30 22:14 ID:UlqXA/Qv
>>517 バージョンの違う奴なら落として
>>56 のページを真似してみたんですけど、
どうしても上手く起動しません。
Apacheのhttpd.confの継ぎ足した所のSSLについての部分でエラーが起きている
みたいなんですが、ページに書いてあるのと同じバージョンなら上手くいくので
はないかと思いまして。
2ちゃのServlet関係スレってレベル低いね〜 質問者は仕方ないとして、答えてる奴の8割くらいは、ただの素人だな… たまにマトモな奴もいるようだけど…
>>518 Apache2.0系とApache1.3系はモジュールの実装の仕方が違うぞ!
ついでに、Tomcat3.X系と4.X系も違う!
古いバージョンが欲しいのなら、
>>517 のサイトをくまなく探せ!
必ずあるから!
521 :
初心者 :02/12/30 22:48 ID:UlqXA/Qv
>>519 のレベルの高い回答望む。俺ら素人だから。
(・∀・)バカガツレタ
524 :
初心者 :02/12/31 08:15 ID:UeevlrXN
やっぱり、全く同じバージョンのは見つかりませんでした。 OpenSSLを解凍してもbinディレクトリが出来ない場合、作ればいいのでしょうか?
525 :
初心者 :02/12/31 08:31 ID:UeevlrXN
SSLキーの作成って所が全く上手くいかないんですよね。 コマンドプロンプトで、以下のように命令を送ると、 C:\app\openssl\bin>openssl req -config openssl.cnf -new -out my-server.csr 以下のエラーが出ます。 Using configuration from openssl.cnf error on line -1 of openssl.cnf 812:error:02001002:system library:fopen:No such file or directory:.\crypto\bio\bss_file.c:104:fopen('openssl.cnf','rb') 812:error:2006D002:BIO routines:BIO_new_file:system lib:.\crypto\bio\bss_file.c:106: 812:error:0E064002:configuration file routines:CONF_load:system lib:.\crypto\conf\conf_lib.c:91:
>>524 Apach Tomcat OpenSSL
の内、どれが見つからないんだ?
で、お望みのバージョンはいくつなんだ?
Tomcat4.0.3と4.0.6は、セキュホ対策以外は同じ物だぞ!
528 :
nobodyさん :03/01/01 05:43 ID:3/OpWna1
質問なんですが、今ここにAServletとBServletがあるとします。 これらはそれぞれ、本来は別々のリクエストで起動するのですが、 ある時だけ、AServletからBServletにdispatchする事があります。 その際に、getParameterする値を書き換える事はできるでしょうか。 要するに"get"に対して、"setParameter"みたいな...。 ...って、本当はこんな事しなくても、MVCで言えばちゃんとServletが コントローラに徹していて、実際のモデル(ビジネスロジック)をBeanに 分けて実装してあれば、わざわざdispatchなんかしなくても完結できるんですけどね....。
529 :
初心者 :03/01/01 08:10 ID:G2l2vXwo
>>526 >>527 おお、ありがとうございます。
とりあえず、SSLを実装しない形では、他のサイトを探してJSPが走る形には出来ました。
(まだ、さわり程度のサンプルjspしか試していませんが)
>>527 さんの所も読んでみて、SSLの実装にもチャレンジしてみますね。
530 :
nobodyさん :03/01/01 18:31 ID:OtnMrmxA
HttpSessionオブジェクトを使用したセッション管理を行った場合、 SessionIDが付加された形でクライアントのrequestが送信されて きますよね? ってことはセッション管理は各クライアント毎ということになりますから、 クライアントが同一ならブラウザを何個立ち上げてもHttpSessionオブジェクト は共有されるはずですよね? Servletで上記のセッション管理をgetSessionを使用して実現してみると クライアントごとに値が保持されるのですが、 (同一クライアントであれば、ブラウザを何個起動しなおしても値は保持される) JSPの暗黙オブジェクトであるsessionを使用して同一の機能を実現して みると、ブラウザごとに値が保持されてしまいます。 (ブラウザを起動するたびに値が初期化されてしまいます) これはなぜなのでしょうか?
531 :
nobodyさん :03/01/01 19:12 ID:gMpGNAZi
>>530 直接、HttpのRequestとResponseをみてみるのが早いかと。
Requestで、cookie は同一のものが送られている?
Responseで、set cookie は同一のものがセットされている?
それをまず、確認してみたら?
532 :
nobodyさん :03/01/01 20:25 ID:WxVSzOcR
>>530 Sessionの寿命って、どう設定してる?
ていうか、この場合の「クライアント」の定義って、
「その瞬間、サーバにリクエストを投げたヤツ」って思うんだけど。
つまり、「ハード的な台数の別」でなくて、立ち上げたブラウザの個数分、
クライアントなんだと思うが。その辺の認識は、どうか。
533 :
532 :03/01/01 20:36 ID:WxVSzOcR
ちなみに「Session」というのは、1回の「HTTP Request→Response」チェーンの事を言うのであって、 「このクライアントはさっきから接続したままです」っていう「状態」を表すものは、 HTTPにはそもそも存在しない(HTTPはStateless Protocol)。従って、 「Sessionの維持された状態」を表すには、他の、何か別の物を利用して実現するしなければならない。 それが例えばJavaServletの場合、HttpSession(と、その周辺)の機構だったりする。 ..って考えた場合、「クライアント」ってどこを指してる? (いや、話には全然関係無いんだけど、よく混同してる人がいるので、念のため。)
534 :
530 :03/01/01 20:44 ID:OtnMrmxA
>>532 SessionIDってクライアント端末のCookieに保存されるのですよね?
だったらSessionのスコープって「ハード的な台数の別」になるのでは
ないのですか?なんか私アホなこと言ってる?
Sessionの寿命は各セッションオブジェクトの寿命であって
Sessionのスコープとは関係なくないですか?
>>531 Cookieを使用したセッション管理の話ですか?
それこそ各クライアント端末に格納されるのですから
各クライアント端末ごとにセッション管理されるはずですよね?
(何個ブラウザを立ち上げても値は共有されるはず)
ちょっとやってみます。
535 :
530 :03/01/01 20:49 ID:OtnMrmxA
>>533 HTTPがステートレスであることはわかります。
私が使用している「セッション」はHttpSessionオブジェクトを使用して
実現される値保持の状態を指します。
また「Session」という言葉はHttpSessionオブジェクトを指しています。
「クライアント」とはクライアント端末を指します。
536 :
nobodyさん :03/01/01 20:57 ID:RNLf2SvW
★★★★★★★★★★★★★★★★★★★★★★★★
激安を超えた!超激安!
新品アダルトDVDが1本500円から!
個人でも1本から買える!オンラインDVD激安問屋!
GO!GO!DVDドットコム!
http://55dvd.com/ 只今福袋も売り出し中! 売り切れ御免!
★★★★★★★★★★★★★★★★★★★★★★★★
537 :
nobodyさん :03/01/01 21:18 ID:gMpGNAZi
>>534 Cookieは同一PCでブラウザを複数起動しても必ず同じものが送られるとは限らないよ。
IEとネスケでも、違うポリシーだったような。
(ネスケの場合は、同じCookieを、IEの場合は、ブラウザのプロセスごとに違うCookieだったかな?)
メモリー上のみのクッキーの場合は、ブラウザを新たに起動すれば違うCookieを送るときもある。
このへん、最近のIEの場合は、どうなっているかわからないので、
まー、とりあえず確かめて報告してくれると嬉しいなり。
538 :
530 :03/01/01 21:43 ID:OtnMrmxA
>>537 うーん、先入観ってこわいですねぇ・・・
Cookieってクライアント端末に格納されるっていう話だったので
てっきり一端末一Cokkieファイルみたいなイメージに囚われていました。
IEにて試してみたら、CookieおよびHttpSessionによる両セッション管理とも
ブラウザのプロセスごとに異なるセッションとして値を保持しました。
537さんは「違うCookieを送るときもある」と表現していますが、
この実験結果から、IEの場合はブラウザのプロセスごとに必ず異なるセッション管理
を行うと考えてよさそうですね。
ところで、HttpSessionを使用した場合、Cookie情報としてSessionIDのみ
クライアントに送信され、次回のrequestからそのSessionIDが付加されますが、
このSessionIDはメモリに保存されているのですか?
539 :
nobodyさん :03/01/01 22:03 ID:gMpGNAZi
>>538 > このSessionIDはメモリに保存されているのですか?
そうでしょう。
細かいことは、CookieについてのRFCを読んだほうがいいと思うけれど。
(わたしも詳しくは知らないです。)
あた、そこらへんのCookieの寿命・スコープを制御したかったら、
session関係のAPIだけではだめで、
javax.http.Cookie あたり、特に setMaxAge(..)
あたりが参考になるかと。
540 :
nobodyさん :03/01/02 11:46 ID:ovQ10hvA
JSPで、HTMLエスケープてどうやるでしょうか? beanからgetPropertyでとってきたものXSS脆弱性だらけで 私困っています。どうか教えてください。
541 :
nobodyさん :03/01/02 13:49 ID:LuTmMgnD
JSPで <%! public String getName(){ return "Bob"; } %> みたいな感じでpublicでメソッドを宣言できますが publicにすると何かいいことあるのですか? 他のページで使用できるとか?
543 :
nobodyさん :03/01/02 14:07 ID:1txGAB/5
544 :
nobodyさん :03/01/03 13:09 ID:CIudwpGx
サーブレットからjdbcを使いデータベースの内容を出力するプログラムを作っているのですが、 DBから取得している筈のデータが表示されません。(そもそも取得に成功しているかわかりません) コマンドラインから実行する形のプログラムは動作しているのですが、どなたか同様な症状に合われた方がいらっしゃいましたらお教え頂けないでしょうか? 環境は以下の通りです。 redhat inux8 postgres7.3 tomcat4.1.18 j2sdk-1_4_1_01
どこで取得データがロストしてるのか分からなければ答えようもない。 とりあえずSystem.err.printlnしまくって、どこまで上手くいってるのか報告しる! 話はそれからだ。
547 :
544 :03/01/03 15:37 ID:CIudwpGx
>>545 さん546さん
レスありがとうございます。
以下取得部分のソースです。
どこまで上手くいってるかは現在確認中です。
お願いします
Connection conn = null;
try {
String url = "**";
String user = "**";
String password = "***";
conn = DriverManager.getConnection(url, user, password);
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
ResultSet rs = null;
try {
rs = stmt.executeQuery("SELECT name, price FROM test");
while (rs.next()) {
out.println("<tr><td>" + rs.getString(1) +
"</td><td>" + rs.getInt(2) +
"</td></tr>");
}
} finally {
rs.close();
stmt.close();
}
conn.commit();
}
>>540 自分でTablib作って処理する。
またはJSTLを使う。
catch句を作ったほうがいいな。 その中でエラー内容を表示させるようにしる!
551 :
544 :03/01/03 17:15 ID:CIudwpGx
>>550 さん
根本的に理解してませんでした。
JDBCのドライバをCALALINA_HOME/share/libにコピーしたら動作しました。
すいませんでした
552 :
nobodyさん :03/01/03 19:37 ID:xHt5cVHG
JSPを行う場合、J2SEよりJ2EEの方がいいって話だけど、一体何が違うのさ?
553 :
nobodyさん :03/01/03 19:44 ID:nrlj3bO8
554 :
nobodyさん :03/01/04 04:13 ID:Eze7pD0s
複数フレームで構成されている画面があります。 あるフレームAを表示させるためのActionクラス処理で発生したエラー内容 をstruts:errorsにより表示する時に、エラー表示を全画面(_top)に表示さ せることはできないでしょうか? (フレームAには表示させることができますが) Strutsフレームワークでは不可能なのでしょうかね。
555 :
nobodyさん :03/01/04 09:31 ID:U0/Cv6SQ
>>552 >JSPを行う場合、J2SEよりJ2EEの方がいいって話だけど
APIのJavaDoc嫁!
Servlet関連のクラスはどっちにある?
556 :
nobodyさん :03/01/04 09:35 ID:U0/Cv6SQ
>>554 >複数フレームで構成されている画面があります。
「フレームが切られている」のは、クライアント側の都合。HTMLがブラウザにレンダリングされる時に
わかる話。
Struts....というよりサーバ側で処理されるそれらで、どうしてJavaScriptレベルで判定されるような
その「都合」がわかるのさ。
なので、一度クライアント側でターゲットを"_TOP"に指定して、それらを表示する
仕掛けを組む必要がある。
557 :
556 :03/01/04 09:41 ID:U0/Cv6SQ
(続き) それでも無理やりそうしたければ、クライアントからコンテンツをGETする要求を サーバに投げる(Submit等)時に、常に"_TOP"にしておいて、エラーが無いか判定し エラーが無ければ"_TOP"からコンテンツを全て再描画するつもりで、順次GETしていく しかない。 ...ただしその場合、もし他のフレームに「そのユーザ毎に固有の情報」(例えばDBから取ってきた 値の列挙があったりする、とか)がある場合、それらは再び同じように取得するか、あるいは Sessionにしまっておいて、再描画に取り出す等の工夫が必要。
どんなWebアプリでもフレームを使ったページって非常にやっかいだよな。
559 :
nobodyさん :03/01/04 13:26 ID:KyaSNzBm
servletでHTMLのエスケープする定石のようなメソッドを御教授して下さい。神様!
560 :
nobodyさん :03/01/04 13:45 ID:U0/Cv6SQ
>servletでHTMLのエスケープする定石のようなメソッド 何が言いたいのかわからん。
561 :
557 :03/01/04 14:11 ID:U0/Cv6SQ
562 :
nobodyさん :03/01/04 14:45 ID:KyaSNzBm
>561 サンクス 便乗質問ですが、みなさん画面遷移ってどうやってるんですか? 例えば、フォームからの入力をDBに登録する場合、 画面A → 画面B →DBに登録 → 画面C 入力 入力内容の確認 登録完了 MVCとか考えるといったい何をどこで処理したらいいのかわからんです。
563 :
561 :03/01/04 15:31 ID:U0/Cv6SQ
View .. JSPでHTMLのフォームを使って入力画面、と表示時の処理。 Controller .. ServletはViewから要求された処理を行う為、 Httpで送られたParameter等の下処理や、 適切な処理(ビジネスロジック)を持つBeanにそれらを受け渡す為の 橋渡し的な処理を行う。 Model .. Beanとして実装し、実際に渡ってきた値を使用して、 DBに登録するなりなんなりの固有の処理を行う。 尚この時のBeanは、それがServlet部品である事をなるべく 意識しないで使えるように設計する。(例えばHttpServletRequestとかを 引数に取らないようにする) 俺はいつもこんな感じ。
>>562 strutsでいうと、
入力・・・jsp
入力内容の確認・・・form
登録・・・action
登録完了画面への遷移・・・struts-configで定義したのをactionで指定
てな感じか?
565 :
nobodyさん :03/01/04 20:01 ID:bqVpTHnl
今 resin2.14 と apache1.3.27 でstrutsを勉強してるんだけど struts-configを変更した後って再起動しないと反映されないじゃん javaファイルを変更してリロードするだけでコンパイルしてくれるresinが好きで導入してるんだけどstruts-configの変更を反映されないのはつらい・・ tomcatとかも再起動が必要だと思うけど実際の開発でもstruts-configを変更するたびに再起動してるんかな・・。結構変更するファイルだと思うんだけど 誰か解決策知ってる人いたら教えて・・
>>565 <action path="/admin/reload" type="org.apache.struts.actions.ReloadAction"/>
567 :
565 :03/01/04 21:25 ID:???
>>566 できたよママン!!
正直、ありがとう!
JSPで <%! public String get2ch() { return "2ch" } %> っていうふうにpublicでメソッドを宣言すると何かいいことあるの?
569 :
nobodyさん :03/01/05 16:08 ID:9NlMJwkI
>>568 特にないよ。
JSPでメソッド宣言しても、他のクラスからそのメソッド普通は使わないだろ?
だとしたら、特にpublicにする意味はないよ。
.jar、.war、.earまではわかりますが、 .sarはどういう目的で使われるアーカイブなんですか? ご存知の方いらっしゃいましたらご教授ください m(_ _)m
571 :
nobodyさん :03/01/10 15:02 ID:hclMuHjE
JavaMailを使って、IMAPサーバと通信するアプリを作ることになりまして、
とりあえず、SunのサンプルをDLしてインスコしてみたんですが、
ログインの段階でコンパイルエラーになって、さっぱりワヤな状況になってしまって困っています。
どなたかわかる方、ご教授くださいませ。
環境
WinXP Pro + Tomcat 4.1.18 + JavaMail 1.3 + JAF 1.0.2
※ 環境変数TOMCAT_OPTS=-Dmail.smtp.host=127.0.0.1
※ send.jsp・<javamail:sendmail>に host="127.0.0.1" を、追加して、war再作成済み
サンプル
ttp://developer.java.sun.com/developer/technicalArticles/javaserverpages/emailapps/ エラー内容
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\javamail\login_jsp.java:7: '.' がありません。
import MailUserBean;
^
572 :
nobodyさん :03/01/10 15:40 ID:YwMd67k0
573 :
nobodyさん :03/01/12 21:53 ID:3Y4gy70c
jspで質問です。 test.jspでは <jsp:useBean id="bean" scope="session" class="BeanClass" /> bean.putNameMeth("aaa"); としてインスタンス作成。 test2.jspで <jsp:useBean id="bean" scope="session" class="BeanClass" /> String str = bean.getNameMeth(); で、先のインスタンス表示(str)を表示しています。 PCではうまくいきますが、携帯imodeでは、strがnullになってしまいます。 試しにBeanClassでの変数をstaticに変更すると携帯でもstrが表示されますが・・ もちろん、PCでstrを変更すると携帯の方にも影響されます。 なにが悪いのでしょうか?
574 :
nobodyさん :03/01/13 00:14 ID:8zuhdkL/
同一セッションであるかどうかはセッションIDをサーバとクライアントの間でやりとりして判定する。 通常はセッションIDはCookieを使ってやりとりする。 携帯の機種にもよるが、多くの機種ではCookieが扱えないため、セッションの維持ができない。 URL Rewritingを使うべし。
>>574 横やりスマソ。具体的にはどうやるんですか? URL Rewriting。
なんか、サーバによっては出来ないって(あるいはIEのバージョンによっては
受け取らない)って聞いたのですが。
576 :
574 :03/01/13 01:16 ID:8zuhdkL/
>>575 仕組みから考えてブラウザのバージョンとは何の関係もないはずだが。
サーバによってというのも意味わからん。Servlet APIの仕様をきちんと満たしていれば
できなければおかしい。できないサーバがあるとしたらServlet APIの仕様を満たしていないということ。
javax.servlet.http.HttpServletResponseのencodeUrl()メソッドを調べれ。
577 :
574 :03/01/13 01:18 ID:8zuhdkL/
間違えた。 encodeUrl → encodeURL
578 :
ao :03/01/13 01:32 ID:rHsqWeYO
579 :
nobodyさん :03/01/13 11:27 ID:ZPUR27bF
StrutsとTomcatを使ったユーザ認証のやりかた教えてください。
>>579 strutsとは関係なく、tomcatだけで考えていいんでない?
・基本認証
・ダイジェスト認証
・フォームベース認証
・SSLクライアント証明書認証
がtomcat4.0にはあるみたい
やり方はぐぐって調べろい
581 :
nobodyさん :03/01/13 12:39 ID:h0FwT6lD
573です。 ありがとうございます。
582 :
nobodyさん :03/01/13 15:15 ID:hTUoCDQh
TOMCAT5はいつでるのですか? おしえてください
>>582 そろそろじゃないですか?
jakartaでalphaおとせますよ
584 :
nobodyさん :03/01/15 01:05 ID:OyqbLDDB
573です。 たびたびの質問すみません。 リダイレクトの件、うまくいきました。本当にありがとうございます。 今度は、Session間で保持したいアイテム1をputすると もう一つブラウザ立ててSession内容を見るとアイテム1が見えてしまいます。 <jsp:useBean id="bean" scope="session" class="BeanClass" /> bean.putNameMeth(String); bean.getNameMeth(); とすると上記のような事になってしまいます。 スレッドがうまくいっていないと判断して 最初に呼ばれるServlet(仮にServlet1.javaとして)でBeanClassをインスタンス生成し jspのformでSessionにプットしたい項目をゲットするクラス(仮にServlet2.javaとして)を作り これをServlet1.javaを親クラスにしてBeanClassにputして 表示するjspにfowardしてみました。 <jsp:useBean id="bean" scope="session" class="BeanClass" /> bean.getNameMeth(); とするとnullとなってしまいます。 Servlet2.javaでBeanClassの中身をシステムアウトしてるのですが これはうまく表示されるのですが、やはり上記のように違うブラウザで putするとBeanClassの中身が共有されます。 なんとなく同じメモリにアクセスしているからだと思っているのですが・・・ 解決方法、ヒントなどありましたら教えて下さい。
585 :
574 :03/01/15 08:36 ID:???
>>584 もう一つブラウザを立ち上げる=違うセッションになる
と考えるのは危険。
ネスケは同一マシンから(UNIX系だったら同一ユーザから)
立ち上げるとすべて同じセッションとして扱われる。
IEはスタートメニュー等から立ち上げた場合は基本的には
違うセッション、IEのツールバーの「ファイル」→「新規作成」→「ウィンドウ」
から立ち上げると同一セッション、Javascriptのwindow.open()等で立ち上げると
同一セッションになる。スタートメニュー等から立ち上げた場合でも
Win9xでメモリ32MB以下だと同一セッションになることがある。
Operaはわからん。Mozillaはネスケと一緒。
確実に別セッションで試したかったら別のブラウザ(IEとネスケ)とか
別マシンからアクセスするといいかも。
586 :
579 :03/01/15 08:46 ID:9/hA1o8n
>>580 Tomcatの認証とStrutsのexampleにある認証
どちらの方がいいんでしょうか?
587 :
山崎渉 :03/01/15 13:31 ID:???
(^^)
588 :
nobodyさん :03/01/15 18:25 ID:G9qjU2R1
JSPからresponseオブジェクトをカスタムタグに属性として渡す事ってできますか? <sample:test attr1="aaa" response=<%=response %> /> と書いてもダメなのでしょうか? タグハンドラでresponseオブジェクトのメソッドを利用したいのです。
589 :
588 :03/01/15 18:42 ID:???
解決しました。 属性として渡すのではないのですね。 お騒がせしますた。
590 :
nobodyさん :03/01/16 00:08 ID:2wtS4rFD
584です。 585さんありがとうございます。
591 :
nobodyさん :03/01/16 17:28 ID:8i13LRiG
doPostメソッドの中で, 受け取ったリクエストを別のHTML文書に転送すると, Webページとして表示された HTML文書の内容が文字化けしてしまいます. この問題を解決する方法は無いのでしょうか?
response.setContentType(にょろにょろ);
>>591 >>592 と併せて
javax.servlet.http.HttpServletRequest の setCharactorEncoding() メソッド調べれ。
594 :
nobodyさん :03/01/16 23:16 ID:urGD7E1O
システム上のファイル、例えばc:\hoge\piyo.jpgとかを Webアプリケーション内のファイルに出来ますか? 外部アプリが生成した画像ファイルをブラウザで表示できるように したいのです。
595 :
nobodyさん :03/01/17 10:20 ID:3dWcV5Qw
>594 テキストファイルなら作成したことあるけど たぶん 同じだろ
596 :
nobodyさん :03/01/17 14:33 ID:UaUqkD3z
問題は作成後の処理ですが、
作成したファイルはWebアプリケーションの存在するディレクトリ以下には
存在しないので、これをそのままブラウザに見せることは出来ないでしょうか?
c:\hoge\piyo.jpg
のファイルをブラウザに対しては
http://tekitou.com/app/piyo.jpg としたいのです。
597 :
nobodyさん :03/01/18 12:25 ID:9sBN/GPY
>>596 HTMLでは画像はリンクになっているだけだということを考えると、アプレット
などを使わないとだめだと思うよ。
598 :
nobodyさん :03/01/18 17:27 ID:vZxmpRsf
Tomcat3.2で動いているサーブレットから、別サーバのファイル (.aspxか.asmxの予定)にデータをPOSTして画面遷移を行わせたい のですが、そういうことは可能でしょうか?
599 :
nobodyさん :03/01/18 18:47 ID:qsDjdXoL
>>598 リダイレクトすればできる。
でも、POSTはブラウザがきちんと対応していればという条件付になるので、
GETでやるのが無難かな。
600 :
598 :03/01/18 20:06 ID:vZxmpRsf
>>599 リダイレクトというのは、sendRedirectメソッドのことでしょうか?
それとも、サーブレットでリダイレクトするためのHTMLを生成する
ということでしょうか?
601 :
nobodyさん :03/01/18 23:08 ID:cm1hFG4Y
<%@ page contentType="text/html;charset=Shift_JIS"%> <%@ include file="/jsp/xxx.jsp"%> でエラーがでるんですけど何ででしょう? Page指示子: contentTypeを複数指定できません こんなエラーメッセージが出てしまいます。 あと<jsp:include page="xxx.jsp">っていう方式でも インクルードできないんですがなぜなのでしょうか?
>>601 <%@ include file="/jsp/xxx.jsp"%>
でインクルードしているxxx.jspにも
pageディレクティブでcontentType 指定してない?
include ディレクティブはソースコードのレベルで
インクルードするからエラーメッセージの通り、
contentTypeを同一ページ内で複数指定することになる。
>あと<jsp:include page="xxx.jsp">っていう方式でも
>インクルードできないんですがなぜなのでしょうか?
どういう風に「できない」の???
603 :
nobodyさん :03/01/18 23:43 ID:cm1hFG4Y
>>601 でインクルードしているxxx.jspにも
pageディレクティブでcontentType 指定してない?
してました・・・
ありがとうございました。
604 :
601 :03/01/19 00:18 ID:???
>>603 ちなみに
<jsp:include page="xxx.jsp">
は インクルードする方、インクルードされる方、双方ともが
Servletに変換→コンパイルされてからクライアントへ出力時に
統合されるから両方にcontentType指定しないと日本語等の
マルチバイト文字が化けるよ。
Strutsとか使っているときは各ファイルで<html:form>等が閉じていないと
実行時にエラーになる。
605 :
599 :03/01/19 02:19 ID:85qOoESn
>>598 そう。sendRedirectのことです。
それじゃ、だめなの?
606 :
598 :03/01/19 02:54 ID:9BvojrAo
sendRedirectだとURLの一部としてデータを渡さないといけないんですよね? できれば(ブラウザのアドレス欄に)表示されてほしくないデータなんで、 それを避ける方法を考えていたのです。しかし、やりかたが回りくどく なるなら、あきらめます(弱)
607 :
598 :03/01/19 04:29 ID:???
って、やってみたら、sendRedirectしても、アドレス欄は変りませんね。
>>606 サーバ間のデータ連携は普通データベースを使ってやる。
それが出来ないならフォームに HIDDEN でデータを埋め込んだページを送り返して
JavaScript で該当サーバに自動 SUBMIT してやる。
609 :
nobodyさん :03/01/20 00:39 ID:CSwEfaTD
jspの<% %>ないで普通のjavaのコメントを書くとエラーになるんですけど、 どうしてなんでしょうか。 //とか/**/とかなんですけど。
610 :
nobodyさん :03/01/20 02:08 ID:wtFGMR/w
Strutsの存在を昨日知ったよ。 奥が深いなと思っている俺は厨房ですか?
611 :
nobodyさん :03/01/20 04:29 ID:2QtXoTIi
612 :
609 :03/01/20 04:34 ID:CSwEfaTD
はい、タグが閉じられていません。とかいうエラーです。
>>610 で、おもしろがっていろいろ使ってると
すぐにStrutsの限界にも気づきはじめるよ。
614 :
nobodyさん :03/01/20 22:36 ID:HyBmfMqO
LinuxにJ2SEとMySQL入れて、Win機からアクセスしてJSPの勉強とかしてるんですけど JSPからMySQLにアクセスできないです。 javax.servlet.ServletException: Server configuration denies access to data source こんなエラーが出てしまいます。 どんな原因が考えられるでしょう? jdbcドライバがmm.mysql-2.0.12.bin.jarっていうのです。 これが$JAVA_HOME/jre/lib/extというフォルダに入ってます。 でCLASSPATH=.$JAVA_HOME/jre/lib/ext/mm.mysql-2.0.12.bin.jar としているのですが合っていますか? とりあえずLinux上でmysqlとコマンド打てば直接データベース見れるみたいなので JDBCに問題があるのかなと思っているのですが誰かヒントお願いします。
615 :
nobodyさん :03/01/21 02:03 ID:KOUyYvuO
>>614 肝心のアプリケーションサーバのことが書いてないな。
Tomcatでも使ってるの?
とりあえず、アプリサーバの設定が問題らしいというメッセージかな。
>これが$JAVA_HOME/jre/lib/extというフォルダに入ってます。 これがダメダメ
617 :
nobodyさん :03/01/21 08:06 ID:O+rCOe5r
618 :
nobodyさん :03/01/21 09:10 ID:NlhgIcgx
>617 Tomcat から JDBCドライバが見えないからです。 その jarファイルを WEB-INF/lib ディレクトリに 入れましょう。
619 :
bloom :03/01/21 09:30 ID:in3+WArT
>>617 またはTomcatのcommon/libディレクトリとか。
621 :
ぁぁぁぁ :03/01/21 12:28 ID:WWJc6xEl
昨日苦労してやっとtomcatができるようになったと思ったら 今日起動してみると↓のような文字がぁぁぁ。・゚・(ノД`) もう手も足も出ないダルマ状態で途方に暮れてます。 誰か助けてくださいお願いしますつД`)
622 :
ぁぁぁぁ :03/01/21 12:29 ID:WWJc6xEl
Catalina.start: LifecycleException: Error creating server socket: java.net.Bin dException: Address already in use: JVM_Bind LifecycleException: Error creating server socket: java.net.BindException: Addr ess already in use: JVM_Bind at org.apache.catalina.connector.warp.WarpConnector.initialize(WarpConne ctor.java:483) at org.apache.catalina.core.StandardService.initialize(StandardService.j ava:454) at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav a:552) at org.apache.catalina.startup.Catalina.start(Catalina.java:775) at org.apache.catalina.startup.Catalina.execute(Catalina.java:681) at org.apache.catalina.startup.Catalina.process(Catalina.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
623 :
ぁぁぁぁ :03/01/21 12:29 ID:WWJc6xEl
----- Root Cause ----- java.net.BindException: Address already in use: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source) at org.apache.catalina.net.DefaultServerSocketFactory.createSocket(Defau ltServerSocketFactory.java:118) at org.apache.catalina.connector.warp.WarpConnector.initialize(WarpConne ctor.java:477) at org.apache.catalina.core.StandardService.initialize(StandardService.j ava:454) at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav a:552) at org.apache.catalina.startup.Catalina.start(Catalina.java:775) at org.apache.catalina.startup.Catalina.execute(Catalina.java:681) at org.apache.catalina.startup.Catalina.process(Catalina.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243) OSはwindows2000で、javaはj2sdk1.4.0_03、tomcatはApache Tomcat 4.0、Apacheはapache_1.3.27-win32-x86-srcです。
624 :
ぁぁぁぁ :03/01/21 12:30 ID:WWJc6xEl
本文が長すぎたので分割しました。゚(゚´Д`゚)゚。
625 :
ぁぁぁぁ :03/01/21 12:31 ID:WWJc6xEl
OSはwindows2000で、javaはj2sdk1.4.0_03、tomcatはApache Tomcat 4.0、Apacheはapache_1.3.27-win32-x86-srcです。
626 :
nobodyさん :03/01/21 13:14 ID:0clAoj0s
サーブレット内でPrintWriterを使ってHTML文書を作っているのですが、 HTMLの中でプログラム内の変数の値を表示させるにはどうすればいいのでしょうか?
>>622 ,623
Address alreadyからすると、すでにTCPのポートが使用されているようです。
>>626 文字列を+を使って、連結させれば良いんじゃないの?
out.println("あいうえお" + string + "かきくけこ");
これじゃだめですか。
629 :
nobodyさん :03/01/21 14:25 ID:0clAoj0s
>>628 ご指摘の方法でできました。ありがとうございます。
630 :
628 :03/01/21 14:47 ID:???
>>629 慣れてきたら、HTMLはJSPして、処理だけServletにするのをお奨めします。
631 :
nobodyさん :03/01/21 15:28 ID:QDooJQKR
WAS3.5でimode用サイトの開発をしているのですが、
SSL対応機種で毎回ハンドシェイクしてしまうという問題に悩まされています。
http://www.nttdocomo.co.jp/p_s/imode/ssl/ssl03.html ↑これによると
「Content-Lengthを返さない場合に、従来機ではKeepAliveが無効になる」
らしいので、いままでセットしていなかったContent-Lengthに5000を固定で入れてみたのですが、
駄目でした。
Content-Lengthが原因かどうかもわかりませんが、正しい値を計る方法はないでしょうか??
632 :
ぁぁぁぁ :03/01/21 16:14 ID:WWJc6xEl
>>627 お答えありがとうございます。
ですが、server.xmlのポート番号を何度変えてもうまくいきません。・゚・(ノД`)
ポート番号の変え方は他にあるのでしょうか?
んでんで仕方ないので、同じtomcatをアンインストールしてからまたインストール
してみたのですが、やっぱりインストールした直後は無事に起動できたんです。
ですが、再起動してからもう一度起動してみると前と同じエラーが。゜(゜´Д`゜)゜。
ド素人な僕にはもうどうしたらいいかわかりません。
誰かわかる方アドバイスお願いします。
633 :
ぁぁぁぁ :03/01/21 16:16 ID:WWJc6xEl
>>632 既に、立ち上がっているのに立ち上げようとしてないか?
>>632 Windows使ってるならDOS上げてnetstat -aと打ってみれ。
使用されているポート一覧がでるから、そこで8080が既に存在していたら
他の何かしらのプロセスが8080を使っているということだ。
まぁ考えられることとしては、Tomcatインストール時にWindowsサービスとして
登録してしまってバックグラウンドでTomcatが起動しているんだろう。
636 :
635 :03/01/21 20:54 ID:???
ちなみにWindowsのサービスって知ってるよな? 「プログラム」−「管理ツール」−「サービス」を開いて、 Apache Tomcatっていうのがいないかどうか見てみな? Tomcatを全部デフォルト指定でインストールした場合はあるはずだ。 で、そこの「スタートアップの種類」が「自動」になっていると、 Windowsを再起動した時点でバックグラウンドでTomcatが自動的に起動してしまう。 その状態で自分でまたTomcatを起動しようとすると、 目出度くキミのエラーが発生するというわけだ。 もしビンゴだったら、スタートアップを「手動」にするか、 自分でTomcatを起動しないようにするか、どっちかで解決しる。
637 :
ぁぁぁぁ :03/01/22 11:16 ID:naL49yJH
ありがとうございましたー!!まさにその通りでしたー!自動になってました(;・∀・) 本当に感謝(TдT)の気持ちでいっぱいです。 本当にありがとうございました。 これからがんばってJSP勉強しようと思います!
すいません、質問なんですが フォームなどから受け取った文字列の半角カナを全角カナに 変換するには、どうすればよいのでしょうか? 環境はTomcat/4.0.6, SUN Java 1.4.0_02 です。
>>638 文字列をcharの配列にしてループさせるとかして
文字を一つ一つ置き換えていくしかない。
>>638 >>639 VBのStrConvのノリを知っていると辛いよね。>日本語関係
こういうのはstaticメソッド作ってからパッケージ化していろんなところで使いまわせるようにしておくが吉。
641 :
ぁぁぁぁ :03/01/23 02:26 ID:wnXMlhsv
むぅぅぅ、早速勉強に取りかかりましたが文字化けが多々起こります・・・。・゚・(ノД`)・゚・。 なんだか文字コードがややこしいですね。 参考書に String name = request.getParameter("name"); name = new String(name.getBytes("8859_1"),"EUC_JP"); と出てきましたが「8859_1」という数字が何を意味するのやら(;・∀・) APIドキュメントを見ても何がなんだか┐(´∀`)┌ もう早くも投げ出してしまいそう(´ヘ`;)
642 :
ぁぁぁぁ :03/01/23 02:27 ID:wnXMlhsv
8859_1は数字じゃなくて文字列ですね・・・(;・∀・)
>>641 そんな本は破り捨ててしまえ
request.setCharactorEncoding("EUC_JP");
String name = request.getParameter("name");
WindowsなんだからEUC_JPじゃなくて String name = new String( request.getParameter("name").getBytes("8859_1"), "JISAutoDetect") でいいじゃん?
>>644 Servletコンテナが2.2にしか対応していない場合はそれでいいが、
今時2.2まで(Tomcatだったら3.x)で勉強しているとも思えないので、
もし641がTomcat4.x以降を使っているのだったら
request.setCharactorEncoding("JISAutoDetect");
String name = request.getParameter("name");
がいいんじゃないの?
ちなみに、8859-1は文字コードの一種ね。この文字コードセットには
日本語等のマルチバイト文字は含まれていない。
日本語であることが決まっていれば"JISAutoDetect"がおすすめ。
Shift_JISでもeuc-jpでもJIS(ISO-2022-JP)でも自動認識してくれる。
646 :
nobodyさん :03/01/24 00:42 ID:vBd5rKCZ
public class AAA { private static String getErrorMessage = null; private final static String MSGID_ERROR ="エラー"; private AAA() { } public final static String getSeireki(String pDate ) throws ZXY { try { pDate ="20030101"; return pSeireki; } catch (Exception e) { } public static void namaCheck( String pName) throws throws ZXY { try { if(Name == NULL){ //チェック結果 getErrorMessage = MSGID_ERROR; } } catch (Exception e) { } public final String Message() { return Message; }
647 :
nobodyさん :03/01/24 00:43 ID:vBd5rKCZ
<%@ page contentType="text/html; charset=shift_jis" %> <%@ page import="jp.co.AAA*" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <% String message = null; /* メッセージ文字列 */ AAA aaa = null; /* 追加情報チェック */ String date = null; String name = null; String seireki = null; try { date = (String)request.getParameter("date"); name = (String)request.getParameter("name"); seireki = aaa.getSeireki(date); aaa.getSeireki(name); /* 【メッセージ取得】をコールする */ errorMessage = aaa.Message if (errorMessage.equals != null){ jspName = "next.jsp"; } } catch (Exception e) { %> callDisplay('<%= jspName %>'); Messageメソッドが取得できなくて困っています。どなたか教えてくださいませんか?
648 :
nobodyさん :03/01/24 01:00 ID:6jYskYhY
>>646 まず、クラスAAAだけど、デフォルトコンストラクタがprivateで宣言して
いるから、インスタンスが作れない。
ということは、staticではないメソッドMessage()は実行できない。
JSPではインスタンスを作成していない(newしていない、というより
できない)ので、Message()メソッドが実行できない。
requestの返り値はStringなので、キャストする必要はない。
649 :
638 :03/01/24 01:22 ID:???
>>639-640 お返事ありがとうございます。
一文字のカナに関しては、↓のように処理できそうなのですが、
「ガ」などの場合、元の半角だと2文字になるため、同じように処理できません。
2文字の場合はどのように処理するのが良いのでしょうか?
public String strHankaku(String strHan){
StringBuffer strResult=new StringBuffer();
for(int i=0;i<strHan.length();i++){
switch(strHan.charAt(i)){
case 'ヲ' : strResult.append("ヲ"); break;
case 'ァ' : strResult.append("ァ"); break;
default : strResult.append(strHan.charAt(i)); break;
}
}
return strResult.toString();
}
こんなもの↓も見つけましたが、使えるのでしょうか?
http://www-6.ibm.com/jp/developerworks/opensource/000728/j_icu4j-index.html
650 :
f :03/01/24 01:38 ID:bqIcSHxX
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
651 :
nobodyさん :03/01/24 01:51 ID:vBd5rKCZ
>>649 ということは
デフォルトコンストラクタがpublicで宣言して
JSP で new すればよいんですか??
652 :
649 :03/01/24 02:00 ID:6jYskYhY
>>651 あのソースじゃ、それだけじゃ無理です。
653 :
ぁぁぁぁ :03/01/24 11:37 ID:xVaFOUtv
みなさんお答えありがとうございました。
>>644 さんの言うやり方でやったらできました。
ですが、
>>645 さんの言うやり方だとなぜかエラーが出てしまいます。
生成されたサーブレットのエラーです:
setCharactorEncoding(java.lang.String) は interface javax.servlet.http.HttpServletRequest で見つかりません。
てな感じのエラーです。むぅぅぅ。
どうやらこの参考書はリナックス環境で書かれてるみたいです(´ヘ`;)
やっぱり自動認識できるのがあるんですね。よかたよかた。
654 :
nobodyさん :03/01/24 18:41 ID:56yOuBZ8
暗黙オブジェクトをmethodの引数で渡すときってどういう理由でクラス決めてる? うちはweblogicなんで session.getClass() で class weblogic.servlet.internal.session.MemorySession が帰ってくるんだけど 一般的にsessionてHttpSessionクラス使うよね ↓のメソッドはどういう違いがあるんでしょ? public void setUserData( weblogic.servlet.internal.session.MemorySession session ) { ・・・ と public void setUserData( HttpSession ) { ・・・
655 :
nobodyさん :03/01/24 23:52 ID:W9H/DsUV
むりですか。。。。 ご教授してください。お願いします
656 :
nobodyさん :03/01/24 23:53 ID:6jYskYhY
>>654 HttpSessionはインターフェースです。
HttpSessionのWebLogicでの実装がweblogic.servlet.internal.session.MemorySession
だと思われるので、HttpSessionを使うのが良いですよ。
657 :
ぁぁぁぁ :03/01/25 01:50 ID:rgWLNR9L
CharactorではなくCharacterだったんですね・・・(;・∀・)
658 :
nobody :03/01/25 03:25 ID:LiaTHzWg
はじめまして。いつも参考にさせてもらっています。 ちょっとお伺いしたいのですが、Tomcat+PostgreSQLという環境を構築することになりました。 ただ、Tomcat(AP)とPostgreSQL(DB)間にはFWがあり、AP-DB間でプールしてあるはずのコネクションを切断してしまうというらしいのです。 H/W要件が変更できないので(しかもアプリ側では無理らしい。) @FWでコネクションを切断しないように設定する。 ATomcatで再接続するような設定をする。 BOS(RedHat7.3です)でダミーのパケットを送ってコネクションを維持する。 なんて手があるらしいのですが A、Bについて何かヒントいただけないでしょうか? ちょっと八方塞状態です。 良かったらアドバイスいただけますでしょうか?
659 :
nobodyさん :03/01/25 10:59 ID:SRxd5RzK
>>658 Aに関しては、そんなことするくらいなら、コネクションプールなんて
使用しない方がいいと思う。
Bに関しては、多分FWはセッションごとに管理しているので、そのセッ
ション内でパケットを飛ばす必要があると思う。
ということは、既にアプリサーバがポートをつかんでいるからOSから
パケットを飛ばすのは難しいのでは?
FWの設定を変えるしかないと思いますよ。
660 :
nobodyさん :03/01/25 17:49 ID:9WV/0U1f
Vectorの変数にVectorの変数って格納できるのか?
>>658 コネクションプールの設定は開発側でできるんだな?
1. コネクションを取得する。
2. 接続確認のため簡単な SQL を発行する。
3. 例外が発生したら 1 へ戻る。
これをコネクションプール数 + 1 回繰り返してやれば、最悪プール内の
コネクションがすべて切断されていても再接続してくれるだろう。最後の
一回で取れなければ本物の接続障害だ (切り分けとして毎回 SQL コード
見ても良いが)。現在時刻を取ってくる程度の SQL ならディスク I/O が
発生しないので、プール使わないで毎回接続に行くより遥かに速い。
ちなみに Tomcat でコネクションプール使うときのソフトウェア要件と
web.xml のサンプル教えてくだちい (今度自宅で組もうと思ってるんで)。
>>660 できるよ。変数つうかオブジェクト (インスタンス) だが。
662 :
nobodyさん :03/01/25 22:10 ID:8ocJ7akI
>>654 他のサーバで使うのにコードの修正が必要になる
ってんでHttpSessionにするべきかな
663 :
nobodyさん :03/01/25 22:36 ID:SRxd5RzK
664 :
nobodyさん :03/01/26 13:30 ID:nck0ClEc
秀和システムの「はじめてのJSP&サーブレットプログラミング」 Tomcat4+MySQL3対応 アイティーブースト著 で、本の通りにインストール行ったのですが、最後のTomcat4のとこ ろでlocalhost:8080とやっても、本のようにThe Jakarta Projectの 画面が出てくれません。Tomcat version3.2.4の画面が出てしまうの ですが? これで問題ないのですか?
>>664 問題ありますよ。
Tomcat3.2.4をとめてください。
666 :
nobodyさん :03/01/26 19:02 ID:MU9JCDZB
667 :
nobodyさん :03/01/26 19:59 ID:INUYZKhE
>>664 ありがとう。Tomcat3.2.4を止めても、Tomcat4を起動すると、
Tomcat3.2.4が動いてしまいます。
この本はダメなので、「10日でおぼえるJSPサーブレット入門教室」
SE SHOEISYAを買ってきました。これだと、アパッチをインストールして、
Tomcatもジャカルタだけをインストールするように書いてあるからです。
Xpを再インストールして、また1からトライしてみることにいたします。
668 :
nobodyさん :03/01/26 20:02 ID:hfzgm8Bu
669 :
nobodyさん :03/01/27 12:51 ID:GS9rQNkk
MVCの実装って、人によって違ったりして M、V、C、それぞれの定義があいまいな気がするんだけど もっともよい構成って、どんな感じなんですかね? (たとえば今悩んでるのは、MをJavaBeansで実装して、JavaBeansクラス のなかでDBにアクセスしてデータを格納しておきたいんだけど コネクションプールの参照がServletContextに格納されているから ServletContextオブジェクトにアクセスする必要がある。 でもJavaBeanでServletContextにアクセスするのになんか違和感が ある・・・)
670 :
nobodyさん :03/01/27 14:03 ID:WT1ShOwi
672 :
nobodyさん :03/01/28 02:05 ID:neXie+Qg
>>669 コネクションプールってJNDIで取ってくるんじゃないの?
673 :
たけそ〜 :03/01/28 02:17 ID:2mY/q7Z6
今ColdFusionのプログラミングをくんでいるのですが、データベースの連携を使って全文検索機能が使いたいのですがどのような形になるのでしょうか?
>>672 べつにコネクションプールはDataSourceとJNDI使わなければならないわけじゃない。
>>669 Strutsとかそんな設計だよね。
俺はStruts使ってもStrutsのコネクションプールフレームワークは使わない。
気持ち悪いから。
>>669 ServletContextとJabaBeanを受け取って、DBとごにょごにょするクラスを
別につくればよいとかそういう話ではなくて?
俗にヘルパーClassっていうのかな。
677 :
nobodyさん :03/01/29 23:46 ID:D8ZQc5hA
動的にテーブルを作成するにはどうすればいいのでしょうか? よろしくお願いします。
679 :
nobodyさん :03/01/30 00:26 ID:I+zAWRkN
>>678 レスありがとうございます。
EJBは初心者なもので
具体的な方法、又は参照ドキュメント教えてもらえないでしょうか
>>677 Connection con = DriverManager.getConnection("jdbc:db:HOGE");
Statement stmt = con.createStatement();
stmt.executeUpdate("CREATE TABLE HOGE(ID INTEGER NOT NULL PRIMARY KEY)");
つうか、動的にテーブルを作るようなシステムは (要件しだいだが) 根本的な
設計が間違っている。
681 :
nobodyさん :03/01/30 02:41 ID:I+zAWRkN
>>680 ありがとうございます。
設計に関しても考え直してみます。
682 :
681 :03/01/30 02:43 ID:I+zAWRkN
SQL文を記述せずに作成する方法はないのでしょうか?
WebObjectsでも使え
686 :
nobodyさん :03/01/31 02:20 ID:mtgy7+Pq
EJBにてORACLEのDBを検索するときの不具合があります。 検索結果の Number型を BigDecimal として取得する際、不正な 値として返ってきます。対策を御存知の方がいらしたらお教えくださ い。過去ログに既にありましたら申し訳ありません. 【環境】 ・Linux RedHat 7.1(x86) ・Oracle9i ・WebSphere4.0 AE ・JDK1.3.1 【状況】 NUMBER(8)型のカラム1つ、その他は全てvarchar2のテーブルの 検索結果を ResultSet.getBigDecimal(...) で取得した際、 1回目は正しく値を取得できるのですが、同じ検索条件で2回目 以降は不正な値が帰ってきます。sqlplus などでは正しく 表示されるのですが、例えば 1434 なる値が -10110000000000.....0000000 (128桁) として取得されてしまいます. getInt(), getDouble(),... にしても変わりませんでした. sqlを変えて、to_char(..)して getString() としても 正しい値は取得できませんでした. 情報をお持ちの方、お教えください。
687 :
nobodyさん :03/01/31 15:09 ID:GqbYQhQy
WebSphere4.0.4をアプリケーションサーバとして開発しているものです。 WebSphereを停止させることなくサーブレットコンテナーで管理している 全てのセッションを破棄させる方法はないでしょうか?
688 :
nobodyさん :03/01/31 15:40 ID:iS05n2/F
jsp:include アクションを使って、外部ファイルを取り込んで表示させたい
のですが、文字コードの問題で困っています。
環境は、以下です。
・TurboLinux 8
・Tomcat4.1
・JDK1.4.1
最終的な出力が、SJISになるように、インクルードする側のファイルで、
<%@page contentType="text/html; charset=SJIS"%>と指定しています。
そして、取り込まれるファイルがJSPファイルの場合は、
そのファイルに<%@page contentType="text/html; charset=SJIS"%>
と記述して、このファイルからの出力をSJISに指定してあげれば問題はないのですが、
取り込まれるファイルがHTMLなどの静的なファイルの場合、
取り込まれるファイルからの出力の文字コードの指定ができず、
システムのデフォルトの文字コード(この場合はEUC)でエン
コードされるからか、文字化けしてしまいます。
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html ↑このページの jsp:include アクションの項を参考にすると、
Tomcat 3.2では,jsp:includeで取り込む静的なファイルの
文字エンコーディングは,Javaのデフォルトエンコーディング
と一致していないと正しく処理できないバグがあるということ
なのですが、Tomcat4.1でも同様なのでしょうか?
Javaのデフォルトエンコーディングで保存していない
静的なファイルを、jsp:include アクションでインクルードして
正しく表示させる方法はないのでしょうか?
(パッチを当てるしかないのでしょうか?)
サーブレットからJSPへのフォワード後のURLを、JSPのURLすることはできないでしょうか?
>>688 HTMLファイルに手を加えてもいいなら
<%@page pageEncoding="Shift_JIS" %>
が使えたような気がする。気のせいかもしれん
>>688 静的ファイルなら、<jsp:include>じゃなくて<%@ include %>使えば?
<jsp:include>は別々に処理されて、クライアントへ出力する段階でインクルードされるが、
<%@ include %>ならソースコードがマージされるだけだよ。
>>690 気のせいです。
HTMLファイルに<%@page pageEncoding="Shift_JIS" %>って書いても
何も起こりません。
>>689 フォワードの仕組みを考えたらそれは無理。
リダイレクト使うべし。
693 :
nobodyさん :03/02/01 22:53 ID:BuJmI9p/
Apache1.3.27+Tomcat/4.1.18
の環境でサーバを立てたのですが、
http://localhost/examples/にアクセスするとservlet/ jsp/のリストが出るのですが、
そのリンクを踏むと、404エラーになってしまいます。エラーログにはただFile does not existしか書かれていません。
対処法を教えて下さい。設定は下の通りです。
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
あ、エラーログはこんな感じでした。 File does not exist: /examples/jsp/index.html
695 :
nobodyさん :03/02/03 12:47 ID:Om6JyMaE
>>690 やってみましたが、
<%@page pageEncoding="Shift_JIS" %>
がそのまま出力されてしまいました。
>>691 <%@ include %> だと、インクルードされる側の
ファイルを更新したときに、インクルードしている
ファイルも更新しないと、更新が反映されなくなっ
てしまいますよね?
多数のファイルからインクルードされるファイル
の更新などを考えると、なるべく<jsp:include>で
インクルードしたいな〜とか思ってるのです。
更新後、まとめてtouchでタイムスタンプを更新しちゃう
という手があるかもしれませんが・・・。
696 :
691 :03/02/03 13:07 ID:???
>>695 インクルードされる側のファイルは静的でも、拡張子だけ.jspに変える
ってのはだめ?
そうすれば
<jsp:include>使って、インクルードされる側のファイルに
<%@ page contentType="text/html; charset=Shift_JIS"%>
とか書けるけど。
697 :
nobodyさん :03/02/03 13:24 ID:Om6JyMaE
>>696 > インクルードされる側のファイルは静的でも、
> 拡張子だけ.jspに変える ってのはだめ?
最初はそれで解決と思ったのですが、
インクルードされるファイルをメンテする
デザイナの話だと、HTMLエディタの関係なのか、
拡張子がJSPよりもHTMLの方がいいらしいのです。
拡張子がJSPよりもHTMLの方が、どういう理由で
どれくらい嬉しいのか、もう一度デザイナに確認して、
大きな問題がないようだったら、拡張子をJSPにして
もらおうかな〜とか今は思ってます。
>>697 HTMLファイルを読み込んで出力するだけのメソッド一つ作れば?
<%= xxx.includeTextFile("hoge.html") %>
みたいに。必要ならメモリ上にキャッシュしてもいいし。
または、x.htmlが更新されたらすぐにx.jspにコピーするようなスクリプト書いておくとか。
cp x.html x.jsp
ServletやJSPを学ぶのに良い本を教えてください。 インストールの方法などはどうでもいいので、Servletやbeans,jspを どのように連携させると良いのか、などのノウハウを学べるものはないでしょうか?
700 :
438 :03/02/04 22:09 ID:REZtK6Vr
>>697 ローカルで拡張子が.htmlだとブラウザでの確認が楽だからじゃないですか?
さて…apache側でErrorDocumentを 404.jspなんてしてるんですが
forward?されてる事から、getRequestURL()ではエラー元のURLが
取得できないです。
また、getHeader("Referer")ではエラーページのURLになってしまいます。
どうすれば取得できるんでしょうか…
702 :
701 :03/02/05 01:27 ID:???
>>700 ぬ、Apache のエラーページ設定で、か。じゃ多分無理ぽ。
>>701 menu.jsp の中に悪金になってるリモホがハードコードされてて笑える
InputStreamと、OutputStreamを使って、 バイナリファイルをクライアントへ送信しているのですが、 ファイル送信後に、別ページへリンクを使ってジャンプしようとすると、 ページが切り替わらない事象が発生して困っています。 webページはフレームで分割されており、リンクを行う際には、 指定フレームのURIを切り替えるような形になっています。 IEで「新しいウィンドウを開く」を行うと、正しくページが開くので、 Servletが落ちているわけでもないようなのです どなたか、この事象のヒントなどご存知でないでしょうか?
>>704 MS のサイトにソレらしいバグが報告されていた。最新の SP あててみれ。
706 :
704 :03/02/05 11:53 ID:???
Σ(゚Д゚; この二日は何だったんだ(´・ω・`)
>>706 いや、まだそれと確信したわけじゃないから、ダメもとで試してみれ。
708 :
704 :03/02/05 12:59 ID:???
(´・ω・`)ダメデツタ・・・ IE6 sp1の最新にしたんでつが・・・
Servletでファイルのダウンロードを行いたいのですが、 ファイル名に日本語を使用すると化けてしまいます。 対処法知ってる人いませんか? response.setHeader("Content-Disposition", "attachment; filename=\"日本語.txt\""); # ファイル名に日本語なんか使うんじゃねーよ (つД`)
710 :
nobodyさん :03/02/05 16:09 ID:HskkGycj
インターネットを使って無料でできるお金儲けの方法を紹介します。
基本的な仕組みは、広告を見ることによって報酬をもらえるというものです。
メールなどでスポンサーの広告を見ることにより広告費が視聴者に渡るようになっているのです。
お金儲けサイトはたくさんあるので、どれから始めればいいか迷うと思います。
そこで、すぐに収入がもらえるサイトを紹介します。
僕も4日で900円ほど稼ぎました
下からどうぞ
http://www.chobirich.com/intorduce/?10653
ちゃんとRFC読んでないから知らないけどMIMEエンコードとかいらんの?
712 :
438 :03/02/05 19:24 ID:???
>>701-702 レスサンキューです。やはり無理そうですか。
perlだと出来たりするのは、やはりapacheで処理されてるからですかね…
tomcatに飛んだ時点で、ダメみたいです。
ちなみに自分の
>>700 、getRequestURL()はgetRequestURI()の間違いです。
713 :
438 :03/02/05 20:25 ID:???
>>712 ちなみにphpだと出るんですよね。
$_SERVER['REDIRECT_URL']
とか。
714 :
701 :03/02/05 21:15 ID:???
>>712-713 正直 Apache 管轄の URL から Tomcat 管轄のエラーページ JSP へ
処理が渡されたときの元 URL がどうなっているかは実装依存なので
よく分からない。request#getAttributeNames() や request#getHeaders()
とかで調べてみたほうが良いと思われ。
すんません。ちょっと質問。 どなたかピンと来る方アドバイス下さい。 「WinXP Pro + Apache1.3.27 + tocat4.0.6 mod_jk.dll」の環境を 「WinXP Pro + Apache2.0.43 + tomcat4.1.18 mod_jk2.dll」に変えてみました。 ApacheとTomcatの連携は何とか成功しました。 が、テストにごく簡単なHTMLファイルの表示をさせたらものの見事に文字化けです。 メニューバーの「表示」→「エンコード」を見ると「西ヨーロッパ言語(ISO)」になってます。 何処が原因になってるのか検討が付けられないほど初心者です。 とりあえず、何処を疑えばいいんでしょうか?
apache2 iso-8859-1 でぐぐれ
>>715 拡張子を.jspに直して1行目に
<%@page contentType="text/html; charset=Shift_JIS"%>
を記述。
どうしてもHTMLファイルがいいなら<head></head>に
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
を記述。
だれかがブラウザに文字コードを教えてあげないと。
718 :
nobodyさん :03/02/06 18:20 ID:uPbgsKYm
質問でつ。ServletでHTMLを出力する際に、出力部分を独立したメソッドで作成し、 パラメータによって出力順を変える事は可能ですか? <HTML> <BODY> モナー モナー ギコ ギコ しぃ しぃ </BODY> </HTML> モナーの部分の表示と、ギコの部分の表示を別メソッドにして、パラメータによって表従順を上下させたい のですが、単純に別メソッドにして、元メソッドの途中から呼ぶと呼出先が最初に出力されます。 モナー モナー ギコ ギコ <HTML> <BODY> しぃ しぃ </BODY> </HTML> とりあえず回避策として別メソッドにせずに、ひとつのメソッドの中で、2通りの表示内容を作って条件分けしてますが、 もっとスマートな方法がないでつか?
719 :
nobodyさん :03/02/06 18:36 ID:kfFPimv5
720 :
438 :03/02/06 19:05 ID:???
>>641-645 もし tomcat4.Xならフィルタを使うと良いかも。
今日初めて、恥ずかしながら、自分もフィルタ、使ってみました。
今まではいちいち、
String formVal = fields[i+1];
formVal = new String(fields[i+1].getBytes("iso-8859-1"), "Shift_JIS");
なんてことしてました。
SetCharacterEncodingFilter.java
参考。
http://hp.vector.co.jp/authors/VA017148/java/tomcat_enc_4_0_3.html ついでにgzipのフィルタも動かしてみた。
いずれも格納場所は
$CATALINA_HOME/shared/classes/filters
全てのwebappsに反映させたければ、ここでいいんですよね??
721 :
718 :03/02/06 19:51 ID:???
別メソッドの引数までHttpServletRequest request, HttpServletResponse response にしていたオイラがバカですた。BufferedWriter outにして解決しますた。
722 :
438 :03/02/06 20:48 ID:???
>>720 > $CATALINA_HOME/shared/classes/filters
> 全てのwebappsに反映させたければ、ここでいいんですよね??
すいません、動いてなかった…いい加減な事書いちゃった。
>>717 >だれかがブラウザに文字コードを教えてあげないと。
JSPのpageディレクティブで<%@page contentType="text/html; charset=Shift_JIS"%>
を書いてもブラウザに教えてあげることにはならないよ。
Servletコンテナがクライアントへ出力する文字コードセットの指定をしているだけだから。
JSPのソースが.javaファイルに展開されたときに
HtteServletResponse::setContentType()メソッドに変換される。
ブラウザに教えてあげられるのは
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
こっちだけね。
>ブラウザに教えてあげられるのは ><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> >こっちだけね。 激しく無知。嘘教えんなよ(藁
>>724 へ?javax.servlet.jsp.JspWriterが実際に何の文字コードセットを使って出力するかを設定するための指定じゃないの?
ブラウザに教えてるんじゃなくてわたってきた文字コードセットをブラウザが勝手に自動認識してるだけじゃなくて?
>>725 >>724 じゃないけど、ブラウザは HTTP の Content-Type ヘッダを見て
文字コードを決定している。もちろんそれで解決できなければ <META>
タグも見るけど。
Content-Type の charset 指定はクライアントが受信する文字コードで
あり、同時にサーバ側で出力する文字コードだから、サーブレットは
setContentType() の設定値を見て出力文字コードを決定しているだけ。
ちなみに WebSphere の開発では setContentType() で Shift_JIS を
指定すると「−」「〜」などが文字化けするので、変わりに Cp943C
(Shift_JIS の IBM 版) を指定する。ただしこれはブラウザ側が知ら
ない文字コードなので、このままだと自動認識が走ってたまに化けて
しまう。なので、<META> タグに Shift_JIS を宣言して、サーバ側で
は Cp943C、クライアント側では Shift_JIS で認識させてやらないと
いけない。
ちなみに <META> タグの HTTP-EQUIV 属性のもともとの意味が「HTTP ヘッダと同意に扱え」という事を考えれば、<META> タグによる Content-Type 指定が setContentType() によってもたらされる Content-Type ヘッダと 同じ動きをするということになる。 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> ≒ Content-Type: text/html; charset=Shift_JIS 今のブラウザはどうだか知らないけど、昔 HTTP-EQUIV に Location を指定して やったらちゃんとリダイレクトと同じ動きをした記憶がある。そのほかにも <META> タグを使用して Cache-Control や Pragma に no-cache を指定する こともできる (IE しか知らんけど)。
>>726-727 お勉強になりまつた。
>ちなみに WebSphere の開発では setContentType() で Shift_JIS を
>指定すると「−」「〜」などが文字化けするので、
これ、
・Windows2000pro
・Java2SDK1.4.1_01
でnative2acciiコマンドでも化けました。
だからResourceBandleとかStrutsのリソースファイルに
「−」「〜」が使えなくて困ったことがありまつ。
729 :
nobodyさん :03/02/07 11:23 ID:Uodii1t/
サーブレット環境を整えたばかりの初心者です。 Webアプリケーション名をsampleとして、セッションが存在する時に sample/pagesフォルダの中のページにアクセスされた場合、 「アクセスされた」ことを認識する方法と、 そのファイル名を取得する方法を教えていただけないでしょうか。
>>729 何をもって「認識」とするかはわからないし
どんな環境かも書いてないけど、
Tomcat決め打ちで答えると
$CATLINA_HOME/logs/localhost_access_log.yyyy-mm-dd.txt
をみればよいんじゃない?
※$CATLINA_HOME=Tomcatがインストールされているディレクトリ
(例)C:\Java\jakarta-tomcat-4.0.3\logs\localhost_access_log.2003-02-07.txt
731 :
nobodyさん :03/02/07 17:34 ID:Uodii1t/
>>730 すみません、Tomcat4.1です。
認識というのは…たとえばフォルダ内のページにアクセスされたら
そのページの<TITLE>要素を取得する、というように、アクセスされた場合の
処理を書きたいのです。分かりにくくて済みません。
732 :
715 :03/02/07 23:50 ID:???
レスくれた方々、どうもありがとうございます。 初心者にレスの数々、申し訳ない。 TOMCAT単体で起動してHTMLを見ると正常に表示されるのが、 Apacheを経由すると文字化けを起こしてます。 ちなみに、METAは書いてます。↓ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
何故完璧に答えている
>>716 を無視するのだろうか?
734 :
715 :03/02/07 23:55 ID:???
すいません。追加ネタでApache経由でも、 HTMLからJSPにフォーム使って値を飛ばし、それを元にDBにアクセス。 結果を表示させると正常に表示されます。 どうやら静的なドキュメントだけ化けるようです。 てことはApacheが何かやらかしてるという事でしょうか?
何故完璧に答えている
>>716 を無視するのだろうか?
736 :
715 :03/02/08 00:49 ID:???
737 :
nobodyさん :03/02/08 12:45 ID:9B0qUJ8h
>>731 うーん、まだやりたいことがイマイチわからん
たとえばJSPで
<%
String title = "とっぷぺーじ";
//ログに吐かれる→任意のファイルに書いてもよし
System.out.println( title );
%>
<html><head><title><%=title%></title></head>
<body>トップページだゴルァ</body><html>
とかってのはどう?
JSP、Servlet、EJBの組み合わせはコーディング量が多くてちょっとな。
コーディング量が割に合わないような規模の案件なら、無理にその構成にしなくても可。 JSPしか使わなきゃPHPと同等。
分岐点はどの辺なのだろうね。
>>735 おれもオモタ
Apacheのデフォルトエンコードの問題なのにね。
742 :
nobodyさん :03/02/11 08:55 ID:JR8ddDUL
Apache1.3.27+Tomcat3.2.4+Windows2000pro環境でJSPサーバを起動しています。 その状態でIISも起動してASPを使用したいのですが(IISは最初にインストールしてあって Apacheをインストールした時から、サービスを停止させていました。)、Apache側のポートを80 のままで、IIS側のポートを変更してサービスを起動しましたが、Apche側WEBは繋がるのに、 IIS側は繋がりません。ポート番号をずらせば同時に使用できると聞いていたのですが... IIS側のポートは、IISのサービスマネージャでTCPポートの所を、88や20や28等の 適当な番号に変更して(これが悪いのでしょうか?)試しました。 どなたか、どうやったら同時に使用出来るようになるのか教えて下さい。 お願いします。
ポート番号
745 :
742 :03/02/11 14:08 ID:JR8ddDUL
>>743 すみません。
解決しました。
デフォルトのポート番号と変更したポート番号は別だってのは当たり前の事でしたね(恥
ありがとうございました。
jsp xml syntax + jstl + xhtml で完全 XML 形式のJSPをつくりたいんですが、 <a href="<c:out var="${url}" />">リンク</a> のところでエラーになります. なにか良い方法はないでしょうか?
747 :
nobodyさん :03/02/13 13:43 ID:rGWdrtCQ
MVCのサンプルでグッチものがあったら教えてくれ。 HPでも本でもかまいまそん。 データエントリー編集削除系のがあればなおグッチ。
748 :
nobodyさん :03/02/14 02:46 ID:ehmUiT7Y
>>747 J2EEパターンでも読んどけ。
本も出てるし、Sunのページにもあるぞ。
ついでに、EJBデザインパターンというのもいいかも。
EJBデザインパターン、最近読んだけど、良いなこれ。 てか、こういうのも読んでない状態で、EJB案件任されて 誰も保守したくないコード書いちまったよ。 反省。責任とる気はないけど。
750 :
nobodyさん :03/02/19 15:42 ID:m0zTyLSq
Servlet上からhhtpコネクションの切断指示の出し方を教えてください。 具体的にはServletの判断でリプライ時にTCPコネクションのClose、 KeepAliveの制御ができるか、ということです。 ServletからConnection: Closeを付加したりもしましたが、Closeは できませんでした。 iPlanet 6を使用しています。
>>750 サーブレット API でできる方法は Connection: close を送り返すこと
だけだが、それでも TCP/IP の切断が起きないなら、それはサーブレット
コンテナが悪い。
752 :
nobodyさん :03/02/21 12:10 ID:05q4TO88
>>751 やっぱりそうですか。
マニュアル読んでもRFC読んでもなかなかはっきりしなくて
困ってました。
#読みこみがたりないのか(^^;;
ではやっぱりコンテナ屋さんに確認してみます。
ありがとうございました。
>>752 とりあえず Keep-Alive じゃいけない理由を聞きたい。もしユーザエージェント
が Keep-Alive に対応していないという理由で、HTTP サーバに Apache を
使用しているなら、BrowserMatch "Mozilla/2" nokeepalive オプションが
使える。
754 :
nobodyさん :03/02/21 21:38 ID:rAS4mJEL
画面内のボタンをクリックしたときにページ移動させていのですが、 テキストボックスの条件で飛ぶ先のページを変更させたいのですが どうすればいいのですか?
755 :
nobodyさん :03/02/21 21:51 ID:rAS4mJEL
すいません、質問ですがJDBCでPostgreSQLに接続しようとしてもgetConnection で失敗してしまいます。 url は「jdbc:postgresql:hellodb」(hellodbは存在するDBです)で usr = "postgres"で pwd は linux上のpostgresユーザのパスワードで いいのでしょうか? 教えてください。お願いします。
756 :
754,755 :03/02/21 21:53 ID:rAS4mJEL
すいません、上記を実行すると下記のエラーが表示されます。 Connection refused. Check that the hostname and port is correct, and that the postmaster is running with the -i flag, which enables TCP/IP networking. at org.postgresql.Connection.openConnection(Connection.java:136) 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 HelloWorldJDBCPostgreSQL.main(HelloWorldJDBCPostgreSQL.java:16)
Connection refused. Check that the hostname and port is correct, and that the postmaster is running with the -i flag, which enables TCP/IP networking. ↑答書いてある。パスワード以前の問題
>>756 netstat -a と打ったのを貼ってみ
>>758 どこで打つんですか?
というレスがあるのに1000ぬるぽ
760 :
nobodyさん :03/02/22 15:42 ID:lURRR9Am
754,755,756ですが、土日は会社にいないので月曜日に改めて 返事させていただきます。 どうもすいませんでした。
761 :
nobodyさん :03/02/22 19:24 ID:YJnZNS05
ServletのdoGetメソッド(doPostでもいいけど)の中でインスタンス化した Beanのプロパティの値をJspで読み込むってのは、ちゃんと スレッドセーフになってんでしょうか??
request.setAttribute() で渡す → どんな莫迦が作ってもスレッドセーフ session.setAttribute() で渡す → 同一ブラウザからの同時リクエストはスレッドセーフでない context.setAttribute() で渡す → 鯖にアクセスする奴全員がスレッドセーフでない ※サーブレットのインスタンス変数やクラス変数に Bean をぶち込んでる 莫迦は居ないと想定 まぁ普通は synchronized 使えばちゃんと自前で同期化できるけどな。 クラスタ化されとると DB 必要だけど。
>>762 あ、なるほど。request.setAttribute()ってのは
そんな意味があったんですか。
useBeanのscope="request"と同じような感じですか?
>>763 そういうこと。scope="request" の「リクエスト」は、個々の
リクエストで独立したスコープ、という意味。ただセッションで共有
したい Bean やサーブレット全体で共有したい Bean は HttpSession
や ServletContext に設定する。
766 :
nobodyさん :03/02/23 10:14 ID:N8ofo5be
Apache1+Tomcat+Solaris環境でJSPサーバを起動しています。 Excelイメージの画面を製作したく、JSPにとても大きなTABLE を作成したらServletでエラーとなりました。 TABLEを分割したらでるようになったけど、画面表示が遅いと。。 table-layout:fixed;以外で画面表示が速くなる方法を 教えてください。
767 :
nobodyさん :03/02/23 10:55 ID:xXiR0DG3
Tomcatのバージョンは? 4.0.xよりも4.1.xが速いぞ。Jasper2のおかげ。
768 :
nobodyさん :03/02/23 11:15 ID:N8ofo5be
今はわかりませんが、 4.1じゃないのは確かなので、 Varあげてみます。
769 :
nobodyさん :03/02/23 21:00 ID:N8ofo5be
Varあげてみましたが、わずかながらはやくなった程度です。 今回30列×300行くらいのデータなのですが、 やっぱり無理なのかな。。。 ページわける以外で、どなたかよいアドバイスがある方教え てください。
770 :
nobodyさん :03/02/23 21:22 ID:xXiR0DG3
>>769 JSPの画面生成速度じゃなくてブラウザの描画速度の問題じゃないの?
一旦画面に表示して、ブラウザ上で右クリック→ソースの表示 で
表示されたソースを拡張子.htmlで保存して静的HTMLにして表示させても
もしかしたら同じぐらい時間がかかるんじゃない?
テーブルは一旦全部読み込んでからレイアウトを計算してから表示するから
列や行が多いと静的画面でも表示に時間がかかるよ。
771 :
nobodyさん :03/02/23 21:28 ID:6ylrslID
772 :
nobodyさん :03/02/23 23:37 ID:N8ofo5be
確かに、静的にしても遅い(20秒:ちなみに動的は1分)。 こりやだめですね、、、 1回画面がでたら早いのであんまり気にしてなかったけど こんな作りにするのが悪いのかな。。 もともとは、EXCELのレイアウト枠固定(上下左右)みたいな 感じのを実現したかったんですが、上下だけとかならoverflow とかでできたけど+左右では厳しかったんでがんばっていたん ですが、、、
773 :
nobodyさん :03/02/23 23:48 ID:xXiR0DG3
>>772 このあたりの性能はクライアントのマシンスペックやブラウザによっても
左右されるからね。
ちなみに、IE4→IE5になったときはテーブルの描画やJavaScriptの実行速度が
劇的に速くなってビクーリした経験があるよ。
774 :
nobodyさん :03/02/24 07:52 ID:Y3ZrCvpi
IE5と最近のスペックではいけるとふんでいたん ですが、まだまだですね。
775 :
754,755 :03/02/24 10:23 ID:+mnrMKCa
755ですが、netstat -a をうつとこんな表示がでます。 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:1024 *:* LISTEN tcp 0 0 *:wnn4_Kr *:* LISTEN tcp 0 0 *:wnn4 *:* LISTEN tcp 0 0 george:1025 *:* LISTEN tcp 0 0 *:1026 *:* LISTEN tcp 0 0 george:8005 *:* LISTEN tcp 0 0 *:swat *:* LISTEN tcp 0 0 *:1030 *:* LISTEN
776 :
754,755 :03/02/24 10:23 ID:+mnrMKCa
tcp 0 0 *:8009 *:* LISTEN tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 *:x11 *:* LISTEN tcp 0 0 *:canna *:* LISTEN tcp 0 0 *:wnn4_Tw *:* LISTEN tcp 0 0 *:wnn4_Cn *:* LISTEN tcp 0 0 *:979 *:* LISTEN
777 :
nobodyさん :03/02/24 10:36 ID:+mnrMKCa
tcp 0 0 *:ssh *:* LISTEN tcp 0 0 george:smtp *:* LISTEN tcp 0 0 *:https *:* LISTEN tcp 0 0 george:canna george:1028 ESTABLISHED tcp 0 0 george:1028 george:canna ESTABLISHED tcp 0 0 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1048 ESTABLISHED tcp 0 0 dhcp-167-21:netbios-ssn dhcp-167-136.sra.c:1029 ESTABLISHED tcp 0 20 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1047 ESTABLISHED tcp 0 0 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1046 ESTABLISHED udp 0 0 *:1024 *:* udp 0 0 *:nfs *:* udp 0 0 *:1025 *:* udp 0 0 *:1026 *:* udp 0 0 dhcp-167-213:netbios-ns *:* udp 0 0 *:netbios-ns *:* udp 0 0 *:777 *:* udp 0 0 dhcp-167-21:netbios-dgm *:* udp 0 0 *:netbios-dgm *:* udp 0 0 *:976 *:* udp 0 0 george:1245 *:*
778 :
nobodyさん :03/02/24 10:36 ID:+mnrMKCa
udp 0 0 *:sunrpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 11 [ ] DGRAM 956 /dev/log unix 2 [ ACC ] STREAM LISTENING 2375 /tmp/cd_sockV4 unix 2 [ ACC ] STREAM LISTENING 2432 /tmp/kd_sockV4 unix 2 [ ACC ] STREAM LISTENING 2452 /tmp/td_sockV4 unix 2 [ ACC ] STREAM LISTENING 406988 /tmp/.s.PGSQL.5432 unix 2 [ ACC ] STREAM LISTENING 2506 /tmp/.font-unix/fs7100 unix 2 [ ACC ] STREAM LISTENING 2787 /tmp/.ICE-unix/1318 unix 2 [ ACC ] STREAM LISTENING 2845 /tmp/.sawfish-root/dhcp-167-213.sra.co.jp:0.0 unix 2 [ ACC ] STREAM LISTENING 2398 /tmp/.iroha_unix/IROHA unix 2 [ ACC ] STREAM LISTENING 3002 /tmp/orbit-root/orb-2103496451692509985 unix 2 [ ACC ] STREAM LISTENING 1357 /dev/gpmctl unix 2 [ ACC ] STREAM LISTENING 2773 /tmp/.ki2-unix/_0-ja_JP unix 2 [ ACC ] STREAM LISTENING 3014 /tmp/orbit-root/orb-671462465985127294 unix 2 [ ACC ] STREAM LISTENING 3026 /tmp/orbit-root/orb-17311820941160383040 unix 2 [ ACC ] STREAM LISTENING 3042 /tmp/orbit-root/orb-9753567871211721486 unix 2 [ ACC ] STREAM LISTENING 9560 /tmp/orbit-root/orb-1063676766754052866 unix 2 [ ACC ] STREAM LISTENING 9601 /tmp/orbit-root/orb-15733166171989257032
779 :
nobodyさん :03/02/24 10:37 ID:+mnrMKCa
unix 2 [ ACC ] STREAM LISTENING 3190 /tmp/orbit-root/orb-51948622566233352 unix 2 [ ACC ] STREAM LISTENING 3066 /tmp/orbit-root/orb-15418712031925838664 unix 2 [ ACC ] STREAM LISTENING 3084 /tmp/orbit-root/orb-18616830281776418934 unix 2 [ ACC ] STREAM LISTENING 2355 /tmp/jd_sockV4 unix 2 [ ACC ] STREAM LISTENING 3201 /tmp/orbit-root/orb-17879512951690367770 unix 2 [ ACC ] STREAM LISTENING 9613 /tmp/orbit-root/orb-583928400806063845 unix 2 [ ACC ] STREAM LISTENING 9618 /tmp/orbit-root/orb-535165786396305085 unix 2 [ ACC ] STREAM LISTENING 9629 /tmp/orbit-root/orb-1451426672597925551 unix 2 [ ACC ] STREAM LISTENING 2629 /tmp/.X11-unix/X0 unix 3 [ ] STREAM CONNECTED 9845 /tmp/orbit-root/orb-9753567871211721486 unix 3 [ ] STREAM CONNECTED 9844 unix 3 [ ] STREAM CONNECTED 9843 /tmp/orbit-root/orb-15733166171989257032 unix 3 [ ] STREAM CONNECTED 9842 unix 3 [ ] STREAM CONNECTED 9828 /tmp/orbit-root/orb-9753567871211721486 unix 3 [ ] STREAM CONNECTED 9827 unix 3 [ ] STREAM CONNECTED 9826 /tmp/orbit-root/orb-583928400806063845 unix 3 [ ] STREAM CONNECTED 9825 unix 3 [ ] STREAM CONNECTED 9824 /tmp/orbit-root/orb-15733166171989257032 unix 3 [ ] STREAM CONNECTED 9823 unix 3 [ ] STREAM CONNECTED 9822 /tmp/orbit-root/orb-9753567871211721486
780 :
nobodyさん :03/02/24 10:38 ID:+mnrMKCa
こういった内容なんですが。。。ホスト名とポート番号をきちんと指定しないとだめなのかと思っています。 よろしくお願いします。
unix 2 [ ACC ] STREAM LISTENING 3190 /tmp/orbit-root/orb-51948622566233352 unix 2 [ ACC ] STREAM LISTENING 3066 /tmp/orbit-root/orb-15418712031925838664 unix 2 [ ACC ] STREAM LISTENING 3084 /tmp/orbit-root/orb-18616830281776418934 unix 2 [ ACC ] STREAM LISTENING 2355 /tmp/jd_sockV4 unix 2 [ ACC ] STREAM LISTENING 3201 /tmp/orbit-root/orb-17879512951690367770 unix 2 [ ACC ] STREAM LISTENING 9613 /tmp/orbit-root/orb-583928400806063845 unix 2 [ ACC ] STREAM LISTENING 9618 /tmp/orbit-root/orb-535165786396305085 unix 2 [ ACC ] STREAM LISTENING 9629 /tmp/orbit-root/orb-1451426672597925551 unix 2 [ ACC ] STREAM LISTENING 2629 /tmp/.X11-unix/X0 unix 3 [ ] STREAM CONNECTED 9845 /tmp/orbit-root/orb-9753567871211721486 unix 3 [ ] STREAM CONNECTED 9844 unix 3 [ ] STREAM CONNECTED 9843 /tmp/orbit-root/orb-15733166171989257032 unix 3 [ ] STREAM CONNECTED 9842 unix 3 [ ] STREAM CONNECTED 9828 /tmp/orbit-root/orb-9753567871211721486 unix 3 [ ] STREAM CONNECTED 9827 unix 3 [ ] STREAM CONNECTED 9826 /tmp/orbit-root/orb-583928400806063845 unix 3 [ ] STREAM CONNECTED 9825 unix 3 [ ] STREAM CONNECTED 9824 /tmp/orbit-root/orb-15733166171989257032 unix 3 [ ] STREAM CONNECTED 9823 unix 3 [ ] STREAM CONNECTED 9822 /tmp/orbit-root/orb-9753567871211721486
tcp 0 0 *:ssh *:* LISTEN tcp 0 0 george:smtp *:* LISTEN tcp 0 0 *:https *:* LISTEN tcp 0 0 george:canna george:1028 ESTABLISHED tcp 0 0 george:1028 george:canna ESTABLISHED tcp 0 0 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1048 ESTABLISHED tcp 0 0 dhcp-167-21:netbios-ssn dhcp-167-136.sra.c:1029 ESTABLISHED tcp 0 20 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1047 ESTABLISHED tcp 0 0 dhcp-167-213.sra.co:ssh dhcp-167-136.sra.c:1046 ESTABLISHED udp 0 0 *:1024 *:* udp 0 0 *:nfs *:* udp 0 0 *:1025 *:* udp 0 0 *:1026 *:* udp 0 0 dhcp-167-213:netbios-ns *:* udp 0 0 *:netbios-ns *:* udp 0 0 *:777 *:* udp 0 0 dhcp-167-21:netbios-dgm *:* udp 0 0 *:netbios-dgm *:* udp 0 0 *:976 *:* udp 0 0 george:1245 *:*
どうして荒らされてるの?
サーブレットって欠点あるの? あくまでCGIと比べてさ。
785 :
nobodyさん :03/02/26 00:07 ID:RfmBsfFg
>>784 CGIといってもどの言語で作るかで、答えが変わると思うのだが。
786 :
nobodyさん :03/02/26 00:08 ID:i/38bOXC
787 :
nobodyさん :03/02/26 00:56 ID:PbDvmql3
>>787 キャッシュがたまりすぎると微妙に不利。有利な点でもある。
apache2.0.43+tomcat4.1.18で構築しています。 cookie複数食わせるコード書くと最後の1つしか食べてくれないんですが。 Cookie cookie=new Cookie("abc","abcdefg"); cookie.setMaxAge(10000); response.addCookie(cookie); Cookie cookie2=new Cookie("def","hijklmn"); cookie2.setMaxAge(10000); response.addCookie(cookie2); これだとdefしか食べてくれません。 どんな原因が考えられるでしょうか?
JSP(登録フォーム) ↓入力 Servlet(登録処理) ↓RequestDispacther#forward で転送 JSP(登録完了ページ) のような処理をしているのですが、 登録完了ページには転送元のURL(ServletのURL)が表示されるので、 ブラウザの更新ボタンを押すとリクエストがもう一度Servletに送信されて 2重登録されてしまいます。 sendRedirectを使うという手もあるのですが、 たとえば入力エラーを登録フォームに返送する際にSessionオブジェクトを 使う必要がでてきてしまいます。 forwardで転送するということを前提としてよい方法を御教授お願いいたします。 なお、サーブレットコンテナは tomcat 4.0.6 で、strutsなどのフレームワークは 使用していません。
>>790 それ以前に、登録済みのデータを検査しないと駄目。
>>794 登録済みのデータとはどういうことですか?
もう少し詳しくお願いします。
793 :
nobodyさん :03/02/27 06:44 ID:z/A5KhNZ
質問します。 現在、複雑なフォーム(テーブルとか、データのグループとか)を含むJSPからリクエストが来たとき、 保存処理や再表示のためにパラメータをListやMapからなるデータ構造に変換しています。 この処理はSevlet側に書くのが一般的なんでしょうか。 パラメータを全部Mapに詰めてBeanに渡してやって、そちらに書いたほうがいいんでしょうか。 教えてください。
794 :
nobodyさん :03/02/27 08:17 ID:Trby5BNM
>>793 Strutsとか使えばそんなことで悩まなくてすむし
自分でいちいちそんな処理を書かなくてもすむ。
795 :
被害者 :03/02/27 13:25 ID:???
Struts マンセー野郎ってどうしてこうも無責任なこと言うかね。
796 :
nobodyさん :03/02/27 16:52 ID:Trby5BNM
他の方法も示さないで非難するだけより数千倍ましだと思うが。
797 :
nobodyさん :03/02/27 16:53 ID:Trby5BNM
お?同じIDってことは某太陽のイベント会場より書き込んでる香具師か?
>>755 私の持っている本によると、JDBCドライバを利用してPostgresqlサーバに
接続する場合、以下の変更が必要。
1.postgresql.confにtcpip_socket=trueという記述を追加。
(Linuxだと /user/local/pgsql/data/postgresql.con)
2.pg_hda.confにhost all xxx.xxx.xxx.xxx 255.255.255.0 trust
xxxはクライアントのIPアドレス
(Linuxだと /user/local/pgsql/pg_hda.conf)
この2つの変更を行わないと、JDBCドライバからの接続に失敗するらしいです。
localhostだと不要。
Collection クラスのオブジェクトの文字列表現って返せないんですか? 普通のクラスなら toString() でできるけど。
>>799 toStringってObjectのメソッドじゃ?
>>800 そうですよ。
Objectクラスはすべてのクラスの親。
オーバーライドできます。
java.util.Collectionはインターフェース toString()の挙動は実装クラスによって違う。 ArrayListなら、 Collection c = new ArrayList(); c.add("a"); c.add("b"); c.add("c"); System.out.println(c.toString()); //→[a, b, c]
803 :
nobodyさん :03/03/01 22:21 ID:UDhEEzxc
JSP/Servlet を勉強しようと思ったのですが、 Apache2 と Tomcat4 の連携ができなくて挫折しました。 みなさん、さようなら…。
>>803 勉強するだけならApacheいらないと思うのだが。
805 :
これ本当? :03/03/01 23:47 ID:RWe+LVkR
2chには回線使用料がある。ようするに2chの維持費。 スレッド削除すると、サーバ内では結構複雑で負荷のかかる処理がされるらしい。 それで連鎖的に転送量が増える。 よって、スレッドを削除すると、回線使用料がいくらかかかる。 詳しいことは知らんが、8月閉鎖騒動の時に夜勤が言ってた。
808 :
nobodyさん :03/03/02 00:39 ID:tFPlqROd
画像ファイルをアップロードするため、[multipart/form-data]タイプの FORMを使ってます。 <FORM NAME="uploadForm1" enctype="multipart/form-data" method=post action="/servlet/Info"> サーバ側には「com.oreilly.servlet.MultipartRequest.MultipartRequest」という ユーティリティクラスを使って、ファイルをアップロードしています。そうすると、同じFORMに含まれる入力項目 漢字が入力されると、サーバ側で正しく取得できません(結果として、文字化けにな ります)。 何かよい対処法はあるでしょうか?
810 :
nobodyさん :03/03/03 16:48 ID:7D9MuGKh
画面上のcheckboxをクリックするたびにクリックしたcheckboxのプロパティを サーバ上にログ出力したいのですが何か良い方法はありますか?
>>819 onclickで毎回submitするしかないだろうな。
812 :
nobodyさん :03/03/03 19:19 ID:7D9MuGKh
>>811 そのようなことができるのですか? どうか教えてください。お願いします。
>>812 そうなると JavaScript の仕事でしょう。なのでスレ違い。
814 :
nobodyさん :03/03/04 05:22 ID:CAxnoJ36
今までServlet/JSPには手を出したこと無いのに仕事で急にServlet/JSPにてウェブアプ リを組むことになりました。 いろいろ勉強して簡単なサンプルのようなものは作れるようになったのですが 複雑なものを作ろうした時にどうしてもうまい設計が出来ません。 こればっかりは経験だと思うのですがちょっと相談させて下さい。 例えばショッピングカートの商品一覧から『カートに入れる』というリンクで カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの URL欄をかえずにカートに商品を入れたいのです。 その場合、servletがカートの処理を終えた時にリダイレクトして元のURLに戻してや るべきかと思ったのですが、そうするとセッション管理が無駄に複雑になる気がします。 次に考えたのはメインのコントローラサーブレット(仮にMainControllerとする)を つくり、アドレスは常にそのMainControllerを示すようにします。MainControllerは 受け取ったパラメータによってさらに別のサーブレットを呼び出すようにすればURL欄は かわりません。(?param=name のようなパラメータの文字列は気にしません)。 すいません。うまく説明できなくて。何となく後者のやり方が良いかと思うのですが、 そうするとMainController内が判別式だらけになってしまい、もっといい方法が 無いかと思い質問しました。 ちなみに環境は Apache+Tomcat4.1.18です。
>カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの >URL欄をかえずにカートに商品を入れたいのです。 なぜ? ======終了=====
>814 初心者にしては目のつけどころがいいね。 その考えを発展させていってできたのが、Struts。 いきなりStrutsを勉強するのはあれなので、 もう少しServlet/JSPについて勉強してから、 Strutsを使用してみることをお勧めするよ。
817 :
814 :03/03/05 01:26 ID:???
>>815 >なぜ?
…といわれても困るのですが、見ているページが変わらないのに
URLだけ変わっていくのは何かと不便かな? と思いまして…。
終了の文字は脳内アボーンさせてください( ´Д⊂
>>816 >初心者にしては目のつけどころがいいね。
まじすか? 嬉しいっす。
今Strutsの事をサラッと調べてみたんですけど、面白そうですね。
Actionクラスのドキュメントを読むとどことなくGUIアプリの開発に
近い感じがして(Observerパターン?)凄い気になります。
>>816 さんが言うようにもう少し突き詰めて勉強してから手を出してみようかと
思います。
どうしてこうも Struts マンセー 野郎は (略
819 :
nobodyさん :03/03/05 07:47 ID:ZZA84Xi8
確かに
>>814 さんのカキコを見てると「最初からツトラッスのこと知ってて書いてるんじゃ?」
とちょっと勘ぐりたくなる。
それはさておき、Strutsについてはフレームワークスレでも議論されている
のでそちらも参考になる鴨。
820 :
nobodyさん :03/03/05 07:49 ID:xBgObjO5
821 :
814 :03/03/05 20:43 ID:???
>>819 いや、まじで知らないんですけど、そんなに
>>814 で書いたことは
Strutsを思わせる内容なのですか?
だとすれば余計に使いたくなるんですけど…
でも(おそらく)便利なStrutsをいきなり使うよりも、今の環境で
出来ることをやった方が自分のためにもなると思うので J2EEパターン
を勉強し始めました。
今後の参考のためにフレームワークスレの方も今から読んでもようと思います。
これまた馬鹿そうな質問が。
824 :
nobodyさん :03/03/07 10:38 ID:2QXXuFP/
>821 最近はよく雑誌でもStrutsを取り上げているから、参考にしてみれば? Struts1.0.2だったら、ソースもそれほど大きくないし、 おっかけてみるのも良いかも。 Tapestryもなかなか面白いフレームワークです。
825 :
nobodyさん :03/03/07 13:13 ID:vB7exDgn
WebSphere上のエンタープライズ・アプリケーショ ンでデータベースの接続にJDBCリソースを使用し ています。 JDBC2.0拡張のコネクション・プーリング機能という ものがありますが、その機能を使用しない方法は ないでしょうか? ○OS Official RedHatLinux 7.2 Deluxe ○WebSphere WebSphere AE 4.0.4 ptf40230.02 ○データベースエンジン Orcle9i Enterprise Edition R 9.2.0 ○JDBC JDBC2.0 ○JDBCドライバー classes12.zip ○JDBCドライバーのインプリメンテーションクラス oracle.jdbc.pool.OracleConnectionPoolDataSource←こちらを選択しています oracle.jdbc.xa.client.OracleXADataSource
826 :
814 :03/03/07 18:41 ID:???
>>824 そうですね、ソースの方を追ってみます。
どんなパターンが使われているのかを調べてみるのも
いい勉強になりそうですし。
それにしても Servlet/JSP を仕事でやってる(or 趣味だけどやりこんでる人)
はいろんなフレームワークや技術に精通してますよね。
凄いなぁ。
いつかは俺もがんがん質問に答えられるようになりたい…
みなさん、いろいろアドバイスありがとです。
変な質問なんですが、画面所にチェックボックスとリンクが複数あって リンクをクリックしたら別画面に移動するのですが、同時にそのときに チェックされているチェックボックスの情報を取得することはできるのでしょうか 既にチェックボックスとリンクは<form>タブで囲まれていてsubmitボタンが存在します。 このような状況でリンクをクリックしてチェックボックスの情報取得してページ移動も する方法を教えてください。お願いします。
>825 使用しなければいいじゃない。 Datasouceをlookupせずに、 普通のJavaアプリと同じ方法でConnection張ればいいだけだろ。 もっともコンテナ内で動くメリットを思いっきり捨てるわけだが。 その辺は覚悟しているのか。
>>814 おれも815と同感で
>カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの
>URL欄をかえずにカートに商品を入れたいのです。
になぜこだわるのかが疑問。
こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
あれこれ頭をなやます理由として弱いのではないでしょうか。
Strutsに似ている云々という話があってさらに迷っているようですが
似てないから安心して(w、固定観念なしでStrutsの勉強されることをお勧めします。
きっとServlet/JSPが初めてなだけでWebアプリの作成は経験ある方なのでしょうから
すんなり理解することが出来ると思うです。
と、エラソーかつマジレスを試みてみる...。
831 :
814 :03/03/08 05:57 ID:???
>>830 >こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
>あれこれ頭をなやます理由として弱いのではないでしょうか。
やっぱりそうなんですか…。どこのサイトにもこういうこと書いてないから
『もしかしてこれを気にする時点で何か間違えてるのか?』って薄々
感じてたんですよ。
もともとなんでこれを気にしたかっていうと、ウェブアプリ内にある静的なページ
(HTML)に対してforwardした時に(静的ページ内の)相対パスが使えない事に気付いて
『どうすればきれいに解決できるのかな?』って思ったのが切っ掛けなんですよ。
今思い付く解決策は『常に絶対パス』『パラメータ付きでServletにリンクしてServletが行き先を決める』『設計を改善』のどれかかなぁ?って。これ自体やっぱりどうでもいい
事なんでしょうか?
みなさんはどうしてるんでしょうか?
(あぁ、質問厨になってきた、すいません。)
832 :
830 :03/03/08 11:36 ID:???
>>831 またまた役に立たない回答をしにのこのこやってきました。w
これはひとそれぞれ考え方はあるので違う意見もあるでしょうが、
絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
それはむしろすごくスマートな方法だと思うのですがどうでしょうか。
感覚的になじめない、というのはすぐ慣れるので没問題です。w
またどうしてもブラウザのアドレス欄を実際のファイルの場所を表示させたいのなら
<meta http-equiv="Refresh" ... > のHTML(JSP)にまずフォワードして、
実際に飛ばしたいパスはそのmetaタグで指定してやることで、結果的にURL欄には
本来のファイルのパスが表示されるわけですが、これはとてもスマートとはいえないですよね。
何の仕事もそうですが、何が重要なことなのか(どこに注力すべきか)を見極める事も
技術のうちなんじゃないでしょうか。
てことで、がんがってください。
>>831 相対パスが使えないのは環境設定のせいではない?
だったら設定変える方向も手だと思うが。
URLが変わったほうがいいのか変わらないほうがいいのかは機能にもよりそうなんだけどな。
検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
834 :
814 :03/03/08 16:37 ID:???
>>832 >絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
>それはむしろすごくスマートな方法だと思うのですがどうでしょうか。
なるほど…。
Refresh使うのは激しく避けたいやりかたっすね。
>>833 >相対パスが使えないのは環境設定のせいではない?
そうなんですか?多分違うのではないかと思うんですけど。。
>検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
>今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
そうかもしれないっすね。
>>832 さんも言ってたけどやっぱり状況によって
何に重点を置くかを見極める技術も大事なんでしょうね。
なんだかいろんなレスもらって気持ちがすっきりしました。
小さな勘違いが積み重なって大きな勘違いになっているような気がしてきましたよ。
ウェブアプリに関してあまり人のソースを読んでないからいけないのかな?Struts
を初めいろいろソースも読んで試してみます。
奥が深いなぁServlet/Java。。。
835 :
山崎渉 :03/03/13 17:06 ID:???
(^^)
age
ホウチ(・A・)イクナイ!
じゃあおまいが脱げ
じゃがいもが脱げ
840 :
nobodyさん :03/03/18 20:59 ID:rglKCMuj
本を読みながらJSPプログラミングをしていて質問です。(ム板から誘導されました。向こうの住人さんごめんなさい。) TOMCAT_HOME\conf\server.xmlの <RequestInterceptor className="org.apache.tomcat.request.SimpleRealm" debug ="0"/>を <RequestInterceptor className="CustomRealm"/>に書き換えて、認証を行う際にCustomRealmというクラスを使うように 設定しました。 すると、TOMCATが起動しなくなってしまったのですが、何故でしょうか。 ちなみに、CustomRealm.classはTOMCAT_HOME\classesとTOMCAT_HOMEにコピーしてあります。
841 :
nobodyさん :03/03/18 21:01 ID:PyosuKeN
>>840 CATALINA_HOME/logs/以下にあるファイルになんかエラー出てない?
ぱっとみ俺も
>>842 さんの意見と同じこと思ったんだけど。
TOMCATのバージョンは?
845 :
nobodyさん :03/03/22 15:24 ID:vlHFEXy6
JSPやサーブレットのURLをアドレス欄に見せないようにしたいのですが 何か方法はないでしょうか? Tomcatを使っています。
846 :
nobodyさん :03/03/22 15:51 ID:tvVDGUGi
>>845 アドレス欄に何も書かずにWEBページにアクセスする方法知ってますか?
あなたがそれを知っていれば簡単なことです。
>>845 そういうブラウザ作ってシェア90%にしてください。
849 :
nobodyさん :03/03/22 19:15 ID:tvVDGUGi
851 :
nobodyさん :03/03/22 20:41 ID:tvVDGUGi
>>850 だって、フレームを記述しているページがリロードされてしまうから
ページ制御が大変そうじゃん。
852 :
850 :03/03/22 20:44 ID:tvVDGUGi
すれ違いの流れになってきた気がする。
フレームの件はページ遷移をしっかり考えれば
なんとかなるけど、
>>845 のような質問してくるような奴には
そこまで頭回らないと思う。
853 :
nobodyさん :03/03/22 20:44 ID:tvVDGUGi
>>852 の名前は850ではなく851でしたすんまそん。
854 :
nobodyさん :03/03/22 22:27 ID:/t7xrt68
http://www.hoge.com/にあくせすしたら 、index.jspにアクセスするようにしたいのです。
どうしたらよいですか?
index.jspはTomcat\webapps\index.jspにありまつ。
tomcat4.1.8 + Apache2.0.44
(Apacheの質問になるのかな…)
855 :
nobodyさん :03/03/22 23:06 ID:tvVDGUGi
>>854 ApacheでDocumentRootをindex.jspにするのじゃダメ?
856 :
nobodyさん :03/03/22 23:19 ID:LQ5sLBh+
857 :
854 :03/03/22 23:36 ID:???
>855 なるほど… そこじたいをルートにすると。 Apacheと連携が意味なくなりそうですが、簡単でよさそうですね。 >856 そです。 mod_jk2
858 :
nobodyさん :03/03/23 00:13 ID:0qX0GKp5
>>857 なんで、Apacheとの連携が意味なくなるの?
859 :
nobodyさん :03/03/29 22:26 ID:4JmL7Ui+
Tomcat4+Java1.4でServletの開発をしています。 質問ですがSingleThreadModelだとhttpのリクエストが 同時に発生したとき1つずつ順番に処理していくはずですよね。 フレームで4分割して4つとも同じServletを呼んでおり、 doGetの入り口と出口で文字列をファイルに出してみました。 すると、doGetを抜けないうちに別のリクエストのdoGetが 実行されていました。 SingleThreadModelなのにどうしてこうなるのでしょうか。 SingleThreadModelの認識が間違っていたらすいません。
860 :
nobodyさん :03/03/29 22:35 ID:C7EFXviW
861 :
nobodyさん :03/03/29 22:36 ID:i2vNq3FD
862 :
nobodyさん :03/03/29 23:06 ID:YkFGJIRL
>860 インスタンス変数しか使っていないのでクラスのstaticな 変数は定数を除いてありません。 SingleThreadModelで同時にdoGetが実行されなければ、それで いいのですが。
863 :
nobodyさん :03/03/29 23:58 ID:C7EFXviW
864 :
nobodyさん :03/03/31 21:55 ID:LphoPnfa
Apache2とTomcat4を連携して使ってるのですが、"
http://hoge/A "に要求が来た時は
ローカルホスト1へリダイレクト、"
http://hoge/B "に要求が来た場合はホスト2へリダイレクトといった
処理は可能でしょうか?
コンテナにはmod_jkを利用しています。
mod_jkには「Alias /A "ホスト1/A"」と記述したのですが、上手くリダイレクトされませんでした。
865 :
nobodyさん :03/04/01 00:07 ID:lNskJ6yJ
地味な話だけどServlet/JSPでの開発時にパッケージ名はどういう風に 分けてます?俺は最初【モデル】【コントローラ】【豆】のように役割で 分けていたんですけど、どうも良くない気がしてきて。。 みんなはどうしてるのかなぁ?って……。
867 :
nobodyさん :03/04/01 01:09 ID:RhFG9j26
ServletでBASIC認証とFORM認証を行うサンプルプログラムが あれば教えてください。TOMCAT4でお願いします。 googleしてみたけど、適当なのが見付からなかった。 英語だとすぐにみつかるのかなー
>>867 BASIC認証の方はBASIC認証の仕組みがわかっていれば簡単に作れると思うのだが。
869 :
nobodyさん :03/04/01 01:42 ID:RhFG9j26
>>868 そうかな?web.xmlの記述とか、roleの設定があるはずだけど。
BASIC認証ならHTTPリクエストを受けたらHTTPレスポンスで HTTP/1.0 401 Unauthorized を返すようにすればブラウザが勝手にBASIC認証窓開かないか? んで認証窓にID/Pass入力されて再度HTTPリクエストが来たらHTTPリクエストに Authorization: Basic e398adncSCDfaU= ってのがあるはずだから「e398adncSCDfaU=」の部分をBase64エンコードすれば 「ID:Pass」を取得することが出来る。 あとは取得したID/PassをファイルなりDBなりとマッチングさせれ。 ↑の処理を行うクラス作っとけばサーブレットコンテナの環境に依存しなくていいんでないかい?
<%@ page contentType="text/plain;charset=Shift_JIS"%> <% out.print("hello"); %> をブラウザで見て、ソースを覗くと初めの行に改行が入ってしまいます。 改行を取り除くにはどうすればいいでしょうか...。
873 :
nobodyさん :03/04/01 22:40 ID:uPwsrMiw
>>872 <%@ page contentType="text/plain;charset=Shift_JIS"%><% out.print("hello"); %>
こう書くしかない。1行目の終わりに改行があるからブラウザにそれが出力されている。
874 :
nobodyさん :03/04/02 09:52 ID:YSAS7m2/
875 :
bloom :03/04/02 10:01 ID:WhIcMm9h
876 :
Web&Java初心者 :03/04/02 13:50 ID:/kM7QiLh
こんな処理が可能なのかヒントだけでもお教え下さい。 Jdk 1.3.1 Tomcat 4.0.2 1.ユーザがダウンロードボタンをクリックしたら、 選択したデータをZipファイルにして送信し、 ユーザのPCに保存終了後、データベースに送信完了のフラグを更新する。 2.ダウンロードボタンをクリックした時に、 ファイルを作成する処理でなんらかの理由でデータを抽出できない事があるので、 処理結果をブラウザに表示する。 よろしくお願いします。
可能。うちの会社の他のプロジェクトのヤシがやってたから。 1番は application/octet-streamとかDL用のリクエストヘッダをプログラムで返す ↓ ファイルオープンしクライアントと80ポートでsocketオープンする ↓ socket通信でファイルの中身を送信する ↓ ファイルとsocket通信をクローズする ってやるんだと思う。想像だけど。 1番が実現出来れば2番は簡単なはず。catchすればいいだけのはずだから。
878 :
nobodyさん :03/04/02 14:45 ID:nAz+h6Nc
>>877 ??????????
Tomcat使ってるのに何でそんなことするの?
876はWEBアプリケーション作りたいんでしょ?
>>876 >ユーザのPCに保存終了後、データベースに送信完了のフラグを更新する。
この部分が難点かも。サーバー側では保存が終了したかどうかはわからないから。
「保存が終了したらこのボタンを押す」みたいなボタンをつけて
ブラウザから終了したことを通知しないと。
HTTP通信は基本的にクライアントからのリクエスト/サーバからレスポンス
で切れちゃうからね。
879 :
nobodyさん :03/04/02 15:00 ID:LshZPoLl
880 :
nobodyさん :03/04/02 15:01 ID:3PSDJoeO
881 :
Web&Java初心者 :03/04/02 15:24 ID:/kM7QiLh
>>877 さん
言葉足らずですいません。Web側だけで可能かです。
>>878 さん
やはりそうですか。ありがとうございました。
>>876 の2をもう少し説明しますと、
(1)ダウンロードボタンクリック
↓
(2)新しい画面が作成される
↓
(3)ファイルの保存ダイアログ
↓
(4)(2)の画面に処理結果が表示される
といったイメージです。
引き続きよろしくお願いします。
882 :
878 :03/04/02 15:44 ID:???
>>881 "処理結果"っていうのがどこで行われる何の処理なのかわからないな。
基本的にHTTPではクライアントのリクエストに対して、サーバは何か
結果(画面)を返すってことは忘れないでね。
結果が返された後(画面表示後)はクライアント(ブラウザ)側で起こったことは
クライアントから通知されない限り(もう一度リクエストを送信しない限り)
サーバ側では知る由もない。
883 :
Web&Java初心者 :03/04/02 15:59 ID:/kM7QiLh
>>882 さん
処理結果とは(1)で選択したデータを全て抽出できるとは限らないので、
ダウンロードファイルに選択したデータが含まれているかどうかの一覧表です。
例えば
データ名 結果
データ1 OK
データ2 ・・・により抽出できませんでした。
データ3 OK
のようなカンジです。
884 :
882 :03/04/02 16:15 ID:???
>>883 可能です。
処理結果表示後に目的のファイルのURLにリダイレクトするようにすればいい。
885 :
Web&Java初心者 :03/04/02 16:18 ID:/kM7QiLh
>882さん リダイレクトを調べてみます。 ありがとうございました!
886 :
nobodyさん :03/04/02 20:23 ID:rddT8ONN
>>884 一度のHTTP接続で
ファイルを送ると
HTTPヘッダでは
application/octet-stream
になってるはずなので、
結果をHTMLとして送るのは出来ないのでは?
同じようなシステム作ったことあるけど、
送信した(クライアントがDLした)ファイルの後ろに
HTMLドキュメントがついて保存されたよ。
リダイレクトじゃなくて JavaScript だろが。 C: ダウンロードボタン押下 S: データベースからデータを抽出してダウンロード用のファイルを生成しつつ HTML 形式で処理経過を返してゆく (out.flush() を使用) S: ダウンロードデータの抽出が終わったらそのファイルへ飛ぶような JavaScript を出力し HTML の出力 (サーブレットの処理) を終わる C: ダウンロードファイルのダウンロードに入る S: ダウンロード結果を付け込みたかったらファイルダウンロード専用の サーブレットをかます しかしクライアント側での保存終了後ってのは明らかに無理だな。保存ではなく 「ファイルを開く」をしたかもしれないし、最後の数バイトでキャンセルボタン 押されたらサーバでは検出できないし。どのみちリトライ可能な手段は残して おかないとトラブルになるぞ。
質問なんですけど検索システムでよくある『絞り込み検索』ってみなさん どうやって実装していますか? 俺の考えではセッションに検索条件を持たせて絞り込む時は検索条件を追加 することで実現するのかな?って思ってるんですけど。 なんだか自分の考えに自信が持てないというか、もっといい方法があるような 気がして…。
889 :
nobodyさん :03/04/04 08:10 ID:nSgKy/k8
>>888 言ってることがよくわかんねえ
なんでセッションなの?
>>888 前の検索条件と AND で繋げれば良い。セッションに持っても HIDDEN で
持たせても Cookie に持たせても、好きなようにやれ。
892 :
nobodyさん :03/04/05 08:33 ID:LO75gp9Z
Javaのセッション管理について質問します ResponseのendodeURLって結局セッションIDをhiddenで持たせるのと何がちがうんでしょうか? 宜しくお願いします。
>>889-891 ですよね。いや、今作ってるものが検索条件が複雑でいろんな条件を指定できる
(名前とか日付けとかその他諸々)のでどうやって実現しようかな?って悩んでたんですよ。
hiddenで持たせる方向で考えてみます。
894 :
893 :03/04/05 17:12 ID:???
895 :
sage :03/04/05 22:42 ID:7TQlNQdF
>>892 もしhiddenでセッションIDを引き回すとしたら、
必ず <form></form>が必要になるわけだけど、
encodedURLで得たURLはもうセッションIDが引数に
セットされた文字列が帰ってくるわけだから
そのまま<A HREF=〜>に埋めてやるだけでOKでしょ。
ぜんぜんコーディングの手間が違うと思うけど。
>>892 HIDDEN が使えるのは <FORM> タグだけだろ。<A> タグがクリックされたときや
<META HTTP-EQUIV="Refresh"> で自動的にジャンプするときにどうやって
セッション ID を引き継ぐ気だ?
>>893 データベース使ってたくさん AND のある検索する気なら「インデックスが
張ってあって一致件数の少なそうな条件が先に評価されるような順序にする」
の鉄則を忘れなよ。
897 :
nobodyさん :03/04/05 23:11 ID:9bUvCykB
>>895 URLエンコード(GETメソッド)は
ブラウザとかプロキシのキャッシュとか
考えるとセキュリティ上問題があったり
おかしな挙動するよ。
<FORM>でデータ渡すならPOSTだ。
899 :
bloom :03/04/05 23:23 ID:tO0IM23T
900 :
893 :03/04/05 23:30 ID:???
>>896 忠告サンクスです。
それはSQL文のWHERE句での条件指定の際の話ですよね。
901 :
nobodyさん :03/04/06 00:27 ID:n146gHCn
>>898 複数条件の場合、
インデックスがあればインデックスを条件の最初に持ってくる、
インデックスが無ければ抽出される結果が少ない条件を前に持ってくる
って、ことなんじゃないの?
実際それを満たして無くてもオプティマイザがうまいこと処理してくれる
DBサーバもあるけどね。
つーか、実行プラン(実行計画)を出してみて
コストが少ないSQLになるようにしろってことだ。
まあ、そんなことは基本中の基本だから
やってない奴なんていないだろうけど。
あとは、コストベースのオプティマイザ使ってる
DBサーバの時は気をつけろよ。
インデックス無視されることあるからな。
>>901 >実際それを満たして無くてもオプティマイザがうまいこと処理してくれる
>DBサーバもあるけどね。
つか、where句の条件の記述順序でアクセスプランが変わる
RDBMSなんてあるのかな?
>つーか、実行プラン(実行計画)を出してみて
>コストが少ないSQLになるようにしろってことだ。
>>893 のように条件の組み合わせが動的に決定されるような要件では
すべてのケースを網羅してチェックすることは難しいと思われ。
頻繁に使われる条件の組み合わせがあらかじめ予想できるのであれば
それに合わせたインデクスを用意するのが良いだろうが、まったくの
ランダムなのであればDSS、DWH向けのチューニング手法が参考になる
だろうね。
>>902 ん、いや、条件に「日付」があるって書いてあったからね。念を押しただけ。
904 :
nobodyさん :03/04/07 11:30 ID:w7yHeSz8
905 :
nobodyさん :03/04/08 17:16 ID:mw0/RQxb
哀れな901が居るスレはここか。
age
sageちゃった。
ん? なんで、IDが出ないんだ?
909 :
● :03/04/08 19:26 ID:???
こうしてみると出るのかな?
他の人書き込んでみてよ。 なんで漏れだけIDが出てないんだ?
911 :
nobodyさん :03/04/08 20:30 ID:azvprz9k
912 :
nobodyさん :03/04/08 21:19 ID:0CFlgORM
IDでてるじゃん
ID晒すとハッキングされちゃいまちゅよ?
>>913 たとえばどんな風に?
出来るもんならやってみろや(藁
915 :
914 :03/04/09 00:47 ID:LSjHUSOD
ID出し忘れた
j2eeのトランザクションを使えば、 DBのトランザクションは、いらないんですか。 そんな感じの煽り文句を散りばめた雑誌を見たんですが... また確認して来ますど
919 :
913 :03/04/09 01:03 ID:8jQ3aP0V
>>914 実は俺もID出すつもりだったのに調子に乗ってemail書いちゃった。放置してくだちぃ。
920 :
nobodyさん :03/04/09 02:15 ID:6RiShxhr
>>918 そんなこと無いだろ。
DBのトランザクション管理機能があってこそのJ2EEのトランザクション
のはずだが。
921 :
nobodyさん :03/04/09 07:17 ID:LSjHUSOD
>>918 SQL鯖はSQL文でトランザクション制御しないと...
さ
923 :
nobodyさん :03/04/11 10:48 ID:2IMc7Dg1
Tomcatをインストールし、start.batを実行すると、 「ファイル -Djava.endorsed.dirs= が見つかりません。」というエラーが 出ます。環境変数の設定も、本やWebで調べてきちんと行えているはずなのですが、 このようなエラーが出る場合はやはり環境変数に問題があるのでしょうか。 環境はWin2000です。どなたか教えていただけますでしょうか。
924 :
882 :03/04/11 10:57 ID:???
>>923 何の環境変数をどう設定したのかを書かないで
「きちんと」だけで推測しろと??????
エスパーをお呼びでしょうか????????
925 :
923 :03/04/11 11:08 ID:2IMc7Dg1
TOMCAT_HOME JAVA_HOME CLASPASS PATH の環境変数設定です。
926 :
923 :03/04/11 11:09 ID:2IMc7Dg1
上記のエラー文が、環境変数設定が間違っていて出るエラーなのか、 それとも別の原因によって出るエラーなのかを知りたいのです。 お願いします。
927 :
923 :03/04/11 11:20 ID:2IMc7Dg1
自己解決しました。 お騒がせしてすみませんでした。
929 :
923 :03/04/11 11:54 ID:2IMc7Dg1
本当にごめんなさい・・・。
>>923 最低限のコミュニケーションができるようになれ。プログラムはその後だ。
>>923-930 まあまあ、おまえら落ち着いてガイドでも読んでマターリいこうや。
お約束・最低限のルールって? △ ▽ ▲ ▼
他人に迷惑をかけるのはやめようということです。。。
必要以上の馴れ合いは慎しむとか、暴言や第三者を不快にする書き込みはしないとか、悪質な削除要請や自己中心的な発言はひかえるとか、どれもむずかしくないことなんだけどなぁ。
また、公人ではない一般人の誹謗中傷・私生活情報暴露は禁止します。固定ハンドルさんを叩く行為も、最悪板以外の場所では禁止してます。
詳しい禁止事項は削除ガイドラインをみてくださいです。。。
読み終わったら、ゲンなおしに誰か他の話題ふれや。
コピペは不快だな。>第三者を不快にする書き込みはしない
sage
936 :
山崎渉 :03/04/17 12:06 ID:???
(^^)
937 :
ログイン時の裏方処理 :03/04/19 00:43 ID:zqJFUg1O
今、右と左にフレームに分け、左をログイン画面にして、ログインに成功したら、 右画面をメニュー画面に変えるようなJSPを作成しています。 ただ、やり方が分かりません。ただ単にログインボタンを押したら右画面を変更するとか、 パスワードが正しいかをチェックする事などはできますが、2つ一度にやる方法がわかりません。 一般的にこのような場合どういう風にしているのでしょうか?
<FORM action="right.jsp" target="MENU">
940 :
ログイン時の裏方処理 :03/04/19 00:57 ID:zqJFUg1O
>>938 さん
ありがとうございます。分かりました。今まで<FORM action="left.jsp">で
左フレームでやろうとしていたから、できませんでした。
右フレームに渡してから処理をすれば、確かにすんなりできますね。
どうもありがとうございました。
>>939 さん
どうもありがとうございました。
941 :
山崎渉 :03/04/20 06:01 ID:???
∧_∧ ( ^^ )< ぬるぽ(^^)
942 :
nobodyさん :03/04/21 03:40 ID:8bY+pqEC
tomcat-4.1.27, apache-2.0.45, mod_jk-1.2.2ですが、 教科書通りに request.getParameter() が働きません(すべてnullを返される)。 java.util.Enumeration enum = request.getHeaderNames(); こんなのは /usr/local/java/jakarta-tomcat-4.1.24/work/Standalone/localhost/j/test_jsp.java:388: enum は _jspService(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) で定義されています。 といわれてしまいます。 他にも教科書通りのものが動かないものがたくさんありますが、 tomcat の設定がおかしいんでしょうか?
943 :
nobodyさん :03/04/21 04:53 ID:mmGqh3EU
>>942 教科書ってなんの教科書?
それを書かないと質問には答えられないと思うよ。
944 :
942 :03/04/21 11:03 ID:???
Torqueちょっといぢってみたけど、 (・∀・)b イイネ! Struts + Torque これいまんとこ最強かも?
946 :
nobodyさん :03/04/24 01:36 ID:1w8L7hlP
tomcat 4.1.24 + apache 2.0.45 + mod_jk2の環境なんですが、 hoge.jspとファイルを作った後、ページをブラウザで表示させ、 その後ファイルを削除します。 再びhoge.jspを作ってアクセスすると、not foundが返ってきてしまいます。 これはキャッシュが原因と思われるのですが、どのように対策をすれば良いのでしょうか。
>>946 not foundって404ページのこと?
そんなページをキャッシュするのかなあ。
キャッシュが原因だと思うって事は
リロードするとちゃんと表示されてるんだよな?
ブラウザは何使ってる?
まずはブラウザの設定でキャッシュ使わないようにして動作確認してみろ。
キャッシュって、Tomcat 内のキャッシュの事じゃないの? Servlet の reloadable を false にしてるとか。 4.x の設定は知らぬ。スマソ。
949 :
946 :03/04/24 21:22 ID:1w8L7hlP
>>947 404のことです。
キャッシュだと思う理由は、Tomcat自体を再起動すると、ちゃんとファイルが表示されるためです。
ブラウザを変えてみましたが、やはり結果は同じでした。404です。
FreeBSDとRedHat二台に入れてるのですが、やはり両方とも同じ動作をしました。
>>948 server.xmlのContextではreloadableをtrueにしています。
950 :
nobodyさん :03/04/25 15:35 ID:+Qqk9dkU
java でクラスパスを指定するときディレクトリ名にピリオドが 含まれると勝手に/に解釈してしまうようなんですが。 jakarta-tomcat-4.0.6→jakarta-tomcat-4/0/6のように。 これを回避する方法はないですか。
951 :
nobodyさん :03/04/25 15:37 ID:+Qqk9dkU
>950 これオプションで-classpath を指定した場合です。
>>949 tomcat使ったことないのでアレ&勘違いだったらスマソ
hoge.jspをサーブレットとしてマッピングしてたりしませんか?
web.xmlでjspをサーブレットとしてマッピングした場合、再起動しないと、
jspが再コンパイルされなかった経験があります。
953 :
うさぎ :03/04/26 02:02 ID:SNtImQvR
「Invokerは現在利用できません」、というエラーが たまに出るんですが、このエラーメッセージの意味が わかる人がいれば教えてください。
>>953 "たまに"って?
Invokerが使用できなくなっている設定だと出るかもしれんが、
同じ環境で同じアプリケーションを動作させても出たり出なかったりなの?
955 :
うさぎ :03/04/26 02:49 ID:SNtImQvR
>>954 レス、どうもです。
同じ環境で同じアプリケーションを動作させて
上記のようなエラーメッセージが出ます(たまに)。
で、TOMCATを再起動させると出なくなります。
何が原因で上記のエラーがでるのか検討がつかないんですよね。
956 :
bloom :03/04/26 04:29 ID:4lzrogLr
957 :
nobodyさん :03/04/26 09:22 ID:D+vS+wqN
不安定だなtomcat
「Invokerは現在利用できません」って日本語で出るわけないでしょ? 出たエラーを正確にコピペしたら何かわかるかも? JDKとTomcatとOSのバージョンも書いてね。
959 :
うさぎ :03/04/26 17:35 ID:SNtImQvR
>>958 どもです。
エラーは日本語で出てきます。
エラーはアプリを起動するたびに起こるわけでは
ないので、エラーのコピーは少々お待ちください。
で、以下が実行環境です。
OS:Windows2000
jdk:1.3.1_07
tomcat:4.0.6
>>959 ようするにたまにInvokerを呼ぶような処理が走ってるんだな。
マッピングとか見直しましょう。
961 :
nobodyさん :03/04/27 03:56 ID:hN6pYWqA
WebSphere V4.0.4、Postgresql7.2.1でJDBCのデータソース を使用してWebアプリケーションの開発を行っているものです。 以下のようにDatasouceからコネクションの取得を行いDB操作を行っています。 try { InitialContext ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup(jndi); Connection conn = ds.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql); stmt.executeQuery(); (省略) }finally{ if(null != stmt) {stmt.close();} if(null != conn) {conn.close();} } WebSphere起動後の初回のDataSourceからのコネクション取得時に postgresへの通信プロセスを生成して、それ以降は、そのプロセス を経由してDBのアクセスを行っています。(以下のようなプロセス) 22318 pts/1 S 0:00 postgres: postgres database 172.16.1.111 idle DBの障害等で、このプロセスが消滅した以降は、以下の例外が発生しDB操作が出来なくなります。 X Servlet Error: パイプが切断されました: java.io.IOException: パイプが切断されました at java.net.SocketOutputStream.socketWrite(Native Method) (省略) WebSphereの再起動えば、再度DB操作が行えます。 WebSphereの再起動なしに、DBの再接続を行う方法はないものでしょうか? よろしくお願いします。
962 :
bloom :03/04/27 04:29 ID:3nPIuagT
963 :
nobodyさん :03/04/27 19:43 ID:hN6pYWqA
WebSphere V4.0.4、Postgresql7.2.1でJDBCのデータソース を使用してWebアプリケーションの開発を行っているものです。 以下のようにDatasouceからコネクションの取得を行いDB操作を行っています。 try { InitialContext ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup(jndi); Connection conn = ds.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql); stmt.executeQuery(); (省略) }finally{ if(null != stmt) {stmt.close();} if(null != conn) {conn.close();} } WebSphere起動後の初回のDataSourceからのコネクション取得時に postgresへの通信プロセスを生成して、それ以降は、そのプロセス を経由してDBのアクセスを行っています。(以下のようなプロセス) 22318 pts/1 S 0:00 postgres: postgres database 172.16.1.111 idle DBの障害等で、このプロセスが消滅した以降は、以下の例外が発生しDB操作が出来なくなります。 X Servlet Error: パイプが切断されました: java.io.IOException: パイプが切断されました at java.net.SocketOutputStream.socketWrite(Native Method) (省略) WebSphereの再起動えば、再度DB操作が行えます。 WebSphereの再起動なしに、DBの再接続を行う方法はないものでしょうか? よろしくお願いします。
964 :
bloom :03/04/27 20:29 ID:3nPIuagT
965 :
nobodyさん :03/04/27 21:47 ID:3xenVd9C
966 :
うさぎ :03/04/27 22:52 ID:vCm5vMQ6
>>958 以下がエラー文です。
Apache Tomcat/4.0.6 - HTTP Status 503 - サーブレット invoker は現在利用できません
--------------------------------------------------------------------------------
type Status report
message サーブレット invoker は現在利用できません
description The requested service (サーブレット invoker は現在利用できません) is not currently available.
なぜこのようなエラーが出るのかわかる方がいれば、
教えてください。
>>うさぎさん $CATALINA_HOME/conf/web.xml でInvokerは有効になっているかい? 最近のバイナリ配布版はデフォルトではコメントアウトされている。 それから、特に理由がなかったら4.1.24使ったほうがいいかも。 4.0系はセキュリティホール発見されないかぎりはもうメンテされないから。 Jasper2は多少速くなってるよ。
969 :
nobodyさん :03/04/28 21:10 ID:ClvCOAwn
971 :
nobodyさん :03/05/08 19:36 ID:2+elfXlK
>>971 > 基礎からわかるサーバー・サイドJava
>
http://www.amazon.co.jp/exec/obidos/ASIN/4822280969/ こっちは、他言語でWebアプリを構築した経験はそれなりにあるけど
JavaによるWebアプリ作成が経験なし、という感じの人に向いてると思うデス。
それなりに含蓄があって面白いですけど、今となってはStrutsなど
Jakartaのフレームワークについて触れられてないのが、ちと物足りない感じがするです。
この本が出た当初はまだStrutsもそれほど一般的ではなかったので仕方ないですが。
もう片方の本はしらんです。
973 :
nobodyさん :03/05/08 23:50 ID:2+elfXlK
>>972 ありがとうございます。
基礎からわかるサーバー・サイドJavaはあいにく本屋に在庫がなく、
確認することが出来なかったので貴重なご意見参考になりました。
Webアプリ構築経験はないので、微妙なところかもしれませんね。
あまり、JSP/サーブレット関連の書籍は話題に上りませんが、
推薦図書(特にJSP/サーブレット初心者向け)がございましたら、教えてください。
>>974 コア&モアは本格的に仕事で使うようになっても長く使える良書だね。
976 :
nobodyさん :03/05/09 21:29 ID:5N9Ob5fA
EJBでどんなアプリケーションがつくれるのでしょうか? グループウェアとかもつくれますか?
>>976 グループウェア作るのにわざわざEJB持ち出す必要もないでしょ。
test
>>974 ありがとうございます。
早速本屋で検討してみます!
981 :
nobodyさん :03/05/12 18:53 ID:tyd/ys6b
DreamweaverでWebアプリケーション作ってる人いる? ApacheとTomcatをDreamweaverに接続する方法がわからねぇです。
982 :
bloom :03/05/12 19:10 ID:lVcTJ8AZ
983 :
nobodyさん :03/05/12 21:05 ID:zI6r17Kr
>>975 漏れも愛用してる。訳者が訳注で出しゃばり過ぎることで有名な人で
心配だったが、内容はよかった。
984 :
_ :
03/05/12 21:48 ID:???