トップページ⇒tech
967コメント369KB

JAVAサーブレットQ&A

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001厨房 NGNG
日本語の参考書のまったく出てないサーブレット。
それに関するQ&A

0002名無しさん@お腹いっぱい。 NGNG
>> 1
ttp://www.t3.rim.or.jp/~yoko-k-h/java/servlet/reference.html#Books
を挙げておく。最近だともっと増えているね。

0003名無しさん@お腹いっぱい。 NGNG
掲示板程度でもサーブレットで組んだら何か良いことありますか?
0004>3 NGNG
掲示板程度なら生産性とかあんまり関係ないのでPHPの方が軽い分だけ適しているでしょう。
0005名無しさん@お腹いっぱい。 NGNG
SevletよりJNIの方が参考書は少ない。
実用性はJNIの方が高いと思うんだけど。
0006名無しさん@お腹いっぱい。 NGNG
JNIはただのインターフェースなので、ソース見てすぐに使えるけれど、
サーブレットは色々と細かいTipsがありそう。性能とか。
0007名無しさん@お腹いっぱい。 NGNG
とりあえず数冊出てるので間違い。>>1
0008名無しさん@お腹いっぱい。 NGNG
JavaServletっていまいちよくわかんないんですけど、
簡潔に説明して下さいませんか
0009名無しさん@お腹いっぱい。 NGNG
8>サーバーサイドジャバだよん

0010名無しさん@お腹いっぱい。 NGNG
XMLの本はスゴイ勢いで増えてのに・・・
なぜサーヴレット本はすくないの?
東鳩サーブレット ぽっぽっぽ
0011名無しさん@お腹いっぱい。 NGNG
ServletはCGIのようなシステムの代替案でしかない。

XMLはテキストデータフォーマットの標準化共通化の
最右翼。これがディファクトスタンダードになれば
どんだけのコストを削れるか。。。
0012名無しさん@お腹いっぱい。 NGNG
EJBとサーブレットっていまいち違いがわからない

EJB=便利な部品
サーブレット=プログラム

って感じ?
両方勉強するひつようあり?
0013名無しさん@お腹いっぱい。 NGNG
11>
今まで彼女がいなかった奴がはじめて女ができた
ずっともてもての奴が今の彼女に飽きて違う女にしてみた

みたいな〜
0014厨房 NGNG
サーブレット初心者でもわかりやすい解説のあるHPありますか?
http://home.catv.ne.jp/dd/chiba/ken/Java/JavaMain.html
0015名無しさん@お腹いっぱい。 NGNG
>7はコテコテの理系っぽい.
0016名無しさん@お腹いっぱい。 NGNG
つーか厨房がサーブレットで何やるんだよ?
0017名無しさん@お腹いっぱい。 NGNG
XMLを動的に生成する場合だとServletの人気が高いですよね。
なぜなんだろ?
0018名無しさん@お腹いっぱい。 NGNG
自分が勉強しないことを棚に上げて資料が少ない
とほざいてる?
0019名無しさん@お腹いっぱい。 NGNG
Servletってのは CGIみたなもの。
特徴としては Perlの様に毎回起動されないので
・そのぶんのレスポンスが速い
・ServletEngine内である程度の永続性があるのでセッション管理が楽ちん
・Perlみたいな便利な正規表現は(標準では)無い
・Perlみたいなヒアドキュメントも無い(Printの嵐)
・Javaがネットワークに強いので負荷分散とかが楽チン

Printの嵐がやだってんで Bean+JSPってことが多いと思います。

EJBってのは Beanの一種
J2EEに準拠したコンテナで管理されます。
一般にはDBと連携してることが多いです。
0020名無しさん@お腹いっぱい。 NGNG
んで Servlet自体はインタフェースなんで使い方っていっても
本を書くまでも無いことなんだと思います.
ServletEngineまわりのKnowHowのほうは必要あるかも。

引数がどうやってわたってきて どうすれば出力できるかって
ところだけ理解しちゃえば あとは普通のプログラムです。
Java特有の機能をつかっていろいろするのは また別の本を
読むのがいいでしょう
0021名無しさん@お腹いっぱい。NGNG
>>18
同感。
少なくともJavaでコード書いたことあるやつなら
そのへんのHPでServletの簡単なプログラムの作り方
ぐらいは理解できる。そうすれば、次は排他制御とか
インターフェースの切り分け方とか具体的な疑問が
出てくる。じゃぁそういうこと書いた本はありませんか
という質問に最低なるもんなんだが...
もしかするとJavaすらやったことないのかも。だったら
まずServletよりも前の段階で学ぶことはいっぱいある。
0022>21NGNG
排他制御とか インターフェースの切り分け方とか書いた本はありませんか
0023名無しさん@お腹いっぱい。NGNG
排他制御とインターフェースの切り分けってなんですか?

DBとかの排他制御みたいな感じ?
0024名無しさん@お腹いっぱい。NGNG
htmlを生成するとき

pw.println("<html>");
pw.println("<head>");
<以下略>
ってやるのと

a += "<html>";
a += "<head>";
<中略>
pw.println( a );

ってやるのって違いはでる?
面倒なので後者でやる場合が多いけど
(JSPを使えばいんだろけど)
0025名無しさん@お腹いっぱい。NGNG
誰か、MSのCOM+と比較してほしい。
0026名無しさん@お腹いっぱい。NGNG
>24

1.
+するたびに、それまでのaのStringオブジェクトが持ってる文字列に
足しこまれた文字列を連結した新しいStringクラスを、内部でnewしてる。
よって、メモリ食ってるかも。(このご時世に文字列のメモリ消費なんて
カスのようなもんだろうけど)

2.printlnは行末に改行文字挿入して出力してる。
002721NGNG
>>22
ん、誤解されたかな。servlet勉強していくとそういう疑問が
でてもいいかなと言う意味で別に排他制御がservlet特有のトピックス
であるというつもりはないよ。ただ、インスタンスが一つ作られて
init()が実行されて、あとは複数のコネクションに対してメソッドが
呼ばれるということは理解しておく必要がある。ここまでは
servletの本なら絶対書いてあるし、あとは、別に普通の
プログラムでのスレッドセーフな話と同じだから一般のJavaの本
でいいよね。面倒ならjavax.servlet.SingleThreadModel
を使うって手もあるけど。
排他共有する情報をDBに任せるのなら、
DBを呼び出すオーバーヘッドがでかくなるから
コネクションプーリングとか。
で、うちにあるこの辺に触れた本だと、
「XMLとJavaによるWebアプリケーション開発」
とか
「Javaサーブレットパーフェクトガイド」
かな。
インターフェースの切り分けつーと、MVCモデルで
JSPとの連携とかそのへんの最近の話題は一般書籍
では見たことないから、雑誌中心になるね。旧来の
やり方だとCGIとかとさほどかわらんから、その応用。

もし聞かれたらこんな感じで答えるけど、満足?? >> 22
002821NGNG
そいや、クライアントから渡された文字列がgetParameter*()で文字化けとかも実際にやっていれば出そうな疑問だけどこういう実装依存なとこがある話は書籍だとつらいですか。かえってMLとかのアーカイブ検索したほうがいいかもね。
0029名無しさん@お腹いっぱい。NGNG
>> 24
後者は以下のコードと同じ.

a = new StringBuffer(a).append("<html>").toString();
a = new StringBuffer(a).append("<head>").toString();

なんのことかわからなかったらまず String の API Document を読め.
0030名無しさん@お腹いっぱい。NGNG
multipart/form-data もサポートされてないね
003122NGNG
満足っす
0032名無しさん@お腹いっぱい。NGNG
26>29>
満足っす

まずはJAVAからっすね。
サーブレット書きながら、
いきつもどりつ勉強しとります。
0033名無しさん@お腹いっぱい。NGNG
cookieのことなんですが、IE5.5とJSQDK-1.0.1を使ってます。
cookieをブラウザに送って、ブラウザからクッキーを受け取ることは
できるのですが、そのcookieがどこにできたのかなぞです。

c:\windows\cookies
にできるのかと思ってもないし???

0034名無しさん@お腹いっぱい。NGNG
インターネットキャッシュの中にないか?
0035名無しさん@お腹いっぱい。NGNG
ないんですよ〜

すごいなぞ

response.addCookie(cookie);
でつくったクッキーを
request.getCookies();
して、ブラウザに表示できるんだけど???

0036>33NGNG
クッキーが実際にファイルに書き込まれるのは、
ブラウザを閉じたとき。
0037>28NGNG
MVCの切り分け、悩みます。切り分けとはいえ、MVCそれぞれ
の結合度が強く、例のアーキテクチャパターンの本に書いて
あるデメリットをまともにくらいました。

各画面遷移毎(極端なはなし、フォームの送信ボタンごと)に
サーブレットをつくっていると、いくつあってもきりがないし
かといってまとめてしまうと、害虫に出すとき仕様を説明する
のがめんどくさい。
0038名無しさん@お腹いっぱい。NGNG
36>

ありがとうございます!
0039名無しさん@お腹いっぱい。NGNG
VisualAge3.5についてるWTEって
サーブレットチェーンできんのかあああ!?
0040名無しさん@お腹いっぱい。NGNG
素直にWebsphereそのものを入れちゃいえばいいのに。
開発者ならタダだよね。
0041>40NGNG
39には同感。
40の言うことは正論なんだけど。
WSS+VAJ+WAS+DB2をまともに動かすには512MBくらいメモリ必要でしょ。
うちはビンボーだし。マシン買うには上の上の上まで説得しないと
稟議通らないし。

004239NGNG
業務でもWebsphere使ってません。
っていうか今はJavaの仕事してません。

仕方ないので、JavaWebServer落として来ました。
004340NGNG
>>41
>うちはビンボーだし。
あらら、それは失礼。
0044???????????????BNGNG
VAJの無料バージョンにもサーブレットのテスト環境みたいのあるの?
J2EE対応でタダのRAD ないか
00455流SENGNG
>例のアーキテクチャパターンの本
ってどの本でしょうか?
サープレット/JSPを使ったシステムのいい見本
って有りませんか?どうも、自分の設計に自信が
もてないんですが。
0046名無しさん@お腹いっぱい。NGNG
charset=iso-2022-jp
にしてもネットスケープで文字化けします

以下の過程で使用すべき文字コードってなんでしょうか?
1 コードを書く
2 HTMLを生成する
3 ネットスケープでHTMLを受け取る

コードを書くときは文字コードをUNICODEとかで書かないと行けないのでしょうか?

いろいろ試して頭が混乱してしまいました
0047名無しさん@お腹いっぱい。NGNG
>以下の過程で使用すべき文字コードってなんでしょうか?
>1 コードを書く

servletに限らず、javacがコンパイルするコードのエンコーディングは
固定だから無関係。ちなみに変更するときには -encoding オプション

>2 HTMLを生成する
>3 ネットスケープでHTMLを受け取る

この二つが問題。

>charset=iso-2022-jp
>にしてもネットスケープで文字化けします

というけど、2と3のどちらの段階でcharsetを指定しているの?
具体的には2だと<meta>タグ中での指定。3だとHTTPレスポンス
ヘッダ中のcontent-type:で指定。
ここで重要なのはnetscapeは2よりも3を優先させるということ。
getWriter()で得たストリームに出力するときにcontent-type:を
指定していると思うからそこでcharsetの指定をしてみよう。
004847NGNG
付け加えるけど、2と3のどちらかでcontent-typeのcharsetを指定していない場合は、
デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。
ただhttp転送においてレスポンスヘッダ中のcontent-type:ヘッダは必須だから、ここ(3)での
charsetの指定も必須となる。だから、2のMETAタグ中でcontent-typeの指定は,やらないほうが
無難ね。<META>タグ中での指定が必須となるのは、ユーザがブラウザの保存機能で
htmlデータをローカルに保存することが想定される場合。この場合は、メタ情報がなくなる
から、htmlデータ中にメタ情報を置く必要がある。
004947NGNG
文章わかりにくいなぁ。反省。
>デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。
(2と3のうちcharsetを指定していない側のcharsetは)デフォルトで〜〜、二つの間で矛盾が生じる。
ね。
0050名無しさん@お腹いっぱい。NGNG
ありがとうございます!

1 ソースを書く文字コードは何を使ってもOK。
コンパイルするとUNICODEに変換される

ということですよね??


2ー3
コードはこんな感じでした。
と言うことは、METAタグも追加して、
そこでも文字コードを指定してあげるベきなのですね

ちなにみサーブレットで出力させるべき文字コードは
やっぱりUNICODEなのでしょうか??
ブラウザで日本語の自動判別があるから、SJISかEUCに
すべき??

だいぶ頭のなかがすっきりして来たので、
もっと調べてみようと思います

private void createForm(String guestname, HttpServletRequest requuest,
HttpServletResponse response)
throws IOException{
response.setContentType("text/html; charset=UTF-8");
PrintWriter pw = response.getWriter();

pw.println("<html><head>");
005147NGNG
>1 ソースを書く文字コードは何を使ってもOK。
基本的にはプラットホーム依存だけど、-encodingオプションで
明示的に指定してあげる限り、なに使ってもOK。それ以上は
あなたの環境がわからないので答えられません。

>と言うことは、METAタグも追加して、
>そこでも文字コードを指定してあげるベきなのですね
いや、できるだけMETAタグの使用は避けた方が
無難。やってもいいけどやるなら正確に。

コードは示された部分だけでは問題なさそうなので、
>pw.println("<html><head>");
の部分を
pw.println("<html><head>あああ");
みたいな感じに日本語入れて、Netscapeではなくて、
telnetで直接80番ポート叩いて生の出力を確認するのが
おすすめ。あ、あと一つ確認するけど、この後のコード
で日本語を含むstringオブジェクトを変な感じにエンコーディング
の変換してpwに突っ込んでいるとかそういうことないよね。
たまーにgetByte()とか使ってバイト列に戻すとか妙な
ことやっている人いるんで。
0052名無しさん@お腹いっぱい。NGNG
こーどの後ろはpw.printlnでHTMLを書いて終ってるので、
怪しいことはしてないと思います。
(getByte()とかはいれてないです)

0053名無しさん@お腹いっぱい。NGNG
>基本的にはプラットホーム依存だけど、-encodingオプションで
> 明示的に指定してあげる限り、なに使ってもOK

エディターで書かれたコード
↓
コンパイル時にコードを使用しているコードを明示指定
↓
unicodeに変換される

ですよね

ここ最近文字コードで悩みっぱなしで、
なかなか先に勧めないので、
横着してブラウザも、エディタもunicodeにしちゃってます

とりあえずエディタで使用する文字コードの謎はとけました
ありがとうございます
0054JRun3.0NGNG
Apacheを1.3.6から1.3.14へバージョンアップしたのと同時に
JRunも2.3から3.0へとバージョンアップしました。
ところが、これベンダーが代わったらしく
管理ツールが大幅に変更になってしまいました。
おかげで、サーブレットのクラスファイルを何処においていいのやら
さっぱりわかりません。
ドキュメントを探しても2.3のばかりです。
3.0の有用なドキュメント等ご存知でしたら教えてください。
0055名無しさん@お腹いっぱい。NGNG
>54
adminServerを立ち上げるとチュートリあるがでてくるから、
そのとおりにやってみては?
日本の資料は確かにふるいんで訳に立たなくて苦労した想い出がありました
00566流SENGNG
>45
>>例のアーキテクチャパターンの本
>ってどの本でしょうか?

"Pattern oriented software architecture -- A system of patterns"
個人的に、GoFのDesign Pattern よりもわかりやすく面白いと
思ってます。
0057名無しさん@お腹いっぱい。 NGNG
ていうか、JAVAってSUNに超大金払うか、パートナーにならないと
サポートしてくれないんだろ?ってことは所詮お遊び言語としてしか
使えないような気がするんだが・・・・・
JSPでシステム構築しても、結局は信頼性がおけない。
そんなんだったらASPでコード書いた方がマシってスレ違いですか?
すいません。
0058名無しさん@お腹いっぱい。NGNG
>57
今ごろ何言ってんの
使ったこと無いくせに
0059名無しさん@お腹いっぱい。NGNG
あの〜JRUN3.0のdefaultServerがどうも不安定です。
restartをかけて、ブラウザからアクセスすると、
「このサイトは大変混雑うんぬん」と言われてはじかれます。
ポートを8100から8010とかにかえてみたりしたのですが、
どうもつながったりつながらなかったりです。

インストールしてあるのはローカルのPCでアクセスするのも
ローカルのPCです
adminサーバは順調につながります

同じような現象が起きたかたいらっしゃいますか?
0060名無しさん@お腹いっぱい。NGNG
tomcat使ったら?
0061名無しさん@お腹いっぱい。NGNG
EJBも使いたいのです

0062名無しさん@お腹いっぱい。NGNG
ASPに戻ったら?
0063名無しさん@お腹いっぱい。NGNG
.aspならスレ違い
0064はとサーブレットNGNG
JRunってJ2EEのペットショップみたいなサンプルついてないのですか?
0065名無しさん@お腹いっぱい。NGNG
なんかPDFの詳細なマニュアルにJ2EEの解説も詳しく書いてあった
>JRUN

EJBのセッション管理とかってSERVLETより楽そうなんだけど、
やっぱりどっちも勉強すべき?
EJBをメインで足りない所をServletで補うスタイルで
勉強すべきかなぁ
0066はとサーブレットNGNG
>65
C:\Program Files\Allaire\JRun\docs\pdfのマニュアルですか?
英語やないですか。
0067NTTGMNGNG
http://www8.tok2.com/home/NttWkk/
0068名無しさん@お腹いっぱい。NGNG
66>
/opt/jrun/docsのなかのPDFです

ServerSideJava勉強するなら英語は覚悟しましょうよ

だって日本語の情報少ないじゃん〜

とか言いつつ日本語でEJBの解説ページないかな〜
って聞いてみたりして
0069名無しさん@お腹いっぱい。NGNG
会社のIIS3.0にこっそりJRUNとかTOMCATをくっつけてみたいのですが、
あとで簡単に戻せますか?

JRUNのマニュアルを詠んだられIISの設定を書き換えちゃうようなことが
かいてあったんでちょっと恐いです
0070名無しさん@お腹いっぱい。NGNG
>69
こっそりとではなく責任をとるつもりでやれ。
0071えっ!NGNG
>>47
もしかして、

String A = request.getParameter("a");
A = new String(A.getBytes("8859_1","JIS_AutoDitect");

とかやるのって最低っすか?
よくやっちゃうんですけど。
0072あぅ。NGNG
>>71
しまった。間違った。

A = new String(A.getBytes("8859_1","JIS_AutoDitect");
>A = new String(A.getBytes("8859_1","JIS_AutoDitect"));
だ。右括弧1こ足んなかった。
0073名無しさん@お腹いっぱい。NGNG
47のはソースで使うの文字コードで
これはpostされる文字なんでいいんでないの?
自分で決められないし。
007447NGNG
>47のはソースで使うの文字コードで
>これはpostされる文字なんでいいんでないの?
>自分で決められないし。
ですね。
ただ別の話としてGETメソッドで渡されたパラメータを
71のコードで受け取ることを考える。すると、HTML4.01では
http://www.w3.org/TR/html4/appendix/notes.html#h-B.2 にあるように
URIエンコーディングにUTF-8を使うことを定めている。実際、
最近のIEやmozillaでは対応している
(しかもmozillaではUTF-8`でしか'渡せない)。一方、"JISautodetect"は
http://www.javasoft.com:80/products/jdk/1.1/docs/guide/intl/encoding.doc.html
にあるようにUTF-8からの自動判別を規格上サポートしていない。
71のコードはこれまでの日本では定番だったけど、いつまでそれで
いいかというのは難しい話だよね。大体確か8859_1が8bit cleanなエンコーダ
というのも実装依存だった気がするし、IBMの処理系だと独自実装の
getParameterだった気がする。
007571=72NGNG
73&74さん
 レスありがとうございます。
 47さんの「getBytes最悪」で、getBytesだけに意識がいってしまいました。
 で、8859_1は、BEAのサイト(アドレス失念)のオラクルとの接続、とかいう所に
 あったのをそのま使ってました。
 そろそろUTF-8って方も勉強しなくちゃ、なんですね。
 もっと精進しなくては。
0076名無しさん@お腹いっぱい。NGNG
JavaアプレットからはネットワークJDBCドライバでDBアクセスするわけですが、
Javaサーブレットからは何でDBアクセスするんですか?
サーバ側で実行するからJDBC-ODBCブリッジですか?

あと、サーブレットがアプレットより優れている点て何ですか?
0077名無しさん@お腹いっぱい。NGNG
サーブレットもJDBCですよ

優れている点と言うよりも、種類が違うのだから、
状況で使い分けるものだと思います

アプレットの場合クライアントPCのブラウザで
アプレットが使えるどうか、対応しているバージョンは
どうか、ダウンロードにかかる時間
などを気にしなくてはいけないですが、
サーブレットの場合はGETが使えるブラウザが入っていれば
OKなので、クライアントのPCをいじれない場合は
便利です

0078名無しさん@お腹いっぱい。NGNG
>>68

http://rdc.wizard.co.jp/documentation/

これくらいっきゃ知らねぇ。
他にもぼしゅー
0079名無しさん@お腹いっぱい。NGNG
age
0080今皿NGNG
76さんの質問は
CGIがJavaScriptより優れている点は何ですか?
という質問と同質ですね。
0081名無しさん@お腹いっぱい。NGNG
79>サンキュー
0082名無しさん@お腹いっぱい。NGNG
JSPなんですけれど、上手く理解できない部分がありました。

<%@ include file="hogehoge.jsp" %>
と
<jsp:include page="hogehoge.jsp"/>

はどう使い分けたらよいのでしょうか?

CQ出版社の「OPENDESIGN増刊 JAVA SERVER PAGE詳細」て本を
買ってみましたけれど、「動的/静的なリソース(ファイル)」
という言葉が漠然とあるだけで、よく理解できませんでした。
0083名無しさん@お腹いっぱい。NGNG
>>82
実行結果をインクルードするのと、実行前のソースをインクルード
することの違いじゃない?
0084名無しさん@お腹いっぱい。NGNG
あげるべきか、上げざるべきか。上のスレでservletの話題出てないから
定番スレってわけでもなさそうなので、とりあえずageず。
0085名無しさん@お腹いっぱい。NGNG
JRUN3.0のWEB-INF/classes/フォルダに置いたアプレットの
正しい指定の仕方で悩んでいます

(codebaseのところはファイルの階層を書くべきなのか、
WEBサーバの仮想フォルダ構造にしたがって書くべきなのか

パッケージの名前で指定できるのか
)

Appletとhtmlファイルの配置は以下になります


/opt/JRun/servers/default/hoge/AppletTest.html
のappletに関する記述は↓です
<applet
code=jp.gr.java_conf.hoge.AppletTest.class
codebase=/hoge
width=400
height=100>
でAppletは↓に置いてあって
/opt/JRun/servers/default/hoge/WEB-INF/classes/jp/gr/java_conf/hoge/AppletTest.class
でAppletTestのpackageは
package jp.gr.java_conf.hoge;
です

アプレットを同じ階層にhtmlを作って動かすと動作できます
(文字を書くだけのアプレットです)

アプレットの起動はNetscapeから↓です
http://localhost:8100/hoge/AppletTest.html
0086名無しさん@お腹いっぱい。NGNG
問題がしぼれたのでもう一度整理します

JRUNのservletディレクトリ以下に置いたアプレットを、
呼び出す方法が不明です

file://だとディレクトリ構造とパッケージの名前に
したがってcodebaseを記述すれば呼び出せるのですが
http://だとcodebaseの記述をどうするかが分かりません

servletディレクトリに置いたアプレットを

codebase=http://hostaddress:portNO/servlet
として呼び出そうとしても、見付けられないようです

servletフォルダ以下にはappletを置いても呼び出せないのでしょうか??
0087名無しさん@お腹いっぱい。NGNG
Apache + TOMCAT3.2 final 使ってるんですが、マニュアル通りサーブレットの
置き場所としてmyappをbuild.batでビルドしたらエラーが出ました。
TOMCAT3.2のバグですかね?
Apacheのクラスがないみたいなエラーでした。
0088名無しさん@お腹いっぱい。NGNG
>87
build.xmlの13行目が/>でxml的に閉じられていないようです。
あと、CLASSPATHにtool.jarが要ると思います
0089名無しさん@お腹いっぱい。NGNG
>>86
>servletフォルダ以下にはappletを置いても呼び出せないのでしょうか??
馬鹿すぎて放置されているようだが…できません。
0090名無しさん@お腹いっぱい。NGNG
ありがとうございます
0091バカ学生NGNG
すいません、セッションについて教えてください。

A、B、Cと3つのサーブレットがあります。
Aでログイン(認証)を行い、成功すると、セッションを生成して、
Bにリダイレクトして、BのdoGetを行います。
このときは、URLにも、sessinID(ながい文字列)が付いていて、
特に問題はありません。
その後、Bのdogetで生成されたHTMLフォームに対して書き込み、
BのdoPostを行い、CのdoGetへ、リダイレクトします。
このとき、Cでsessionがgetできないのです。
Aで生成したセッションは、Bをまたいで、Cに持っていくことは
できないのですか?または、私のプログラムミスですか?
どうぞ、よろしくお願いします。
0092馬鹿社会人NGNG
>>91
頭いいよ。
俺の方が馬鹿だ。
0093名無しさん@お腹いっぱい。NGNG
>>91
関係ないけど、
HttpSession て クッキーでやるんじゃないの? クエリー使うの?
実装依存という気もしますが。
逃避的回避策としては
RequestDispatcher.forward 使うのはダメですか。

0094バカ学生NGNG
ありがとうございます。

>>92
卒論でいっぱいいっぱいです。

>>93
>HttpSession て クッキーでやるんじゃないの? クエリー使うの?
クッキーではなく、セッションを使いたいのですが、
勉強不足でよくわかりません。

RequestDispatcher.forwardというのは、初めて見ました。
APIで調べても、いまいちわからず・・・
サーブレットの日本語APIなんてあるのでしょうか。。。
0095名無しさん@お腹いっぱい。NGNG
>>94
HTTP 自体にセッションという概念はなくて、
(基本的に毎回接続しなおすと思って良い)
HttpSessionっていうのは、クッキーなりクエリーなりを使って
そういう下回りを意識せずに
セッション == 永続的な接続情報保持を
実現する仕組み(というかクラス)です。

Forward は、HTTP 的に飛ばすのではなくて、
現在のストリームに対して servlet を流し込むというか、
サーバの内部でリダイレクトを解決する仕組み、のようなもの、です。
なので、同じサーバ(WEBアプリケーション)上の servlet/JSP に対して
使うのが普通です。

#といいつつフォロー求む

0096名無しさん@お腹いっぱい。NGNG
原田洋子の「JavaServlet」って本。序盤から誤記・誤字だらけ
勘弁してくれ
0097名無しさん@お腹いっぱい。NGNG
>>96
個人名を出すな!
っていうかプログラム系の本って間違いだらけじゃない?(特に個人が執筆してるやつ)
自分も DirectX の本買って書いてある通り覚えたら思いっきり間違ってた。
たまたま自分のコンピュータでは動いてたが他のコンピュータで動かしたら
起動しなかったり途中でハングったり大変だったよ。
0098バカ学生NGNG
91の問題はクリアしました。
session変数を、メソッドの中でなく、外で
グローバル宣言(?)したらできました。。
メソッド内だと、だめなんですか?

ただ、サーブレット間を行き来するときに、
なぜかセッションが消えていたり、復活していたり、
なんか動きが怪しいです。
0099名無しさん@お腹いっぱい。NGNG
<<98
それだと thread-safe じゃないのでヤメてください。
つーか getSession で毎回取得すればいいのに。
0100名無しさん@お腹いっぱい。NGNG
>>97
だって7刷もしてるのに全然訂正が入らないってのはひどいじゃない。
初心者向けの本だってのにさ。
0101バカ学生NGNG
>>99
thread-safe というのがわからないのですが。。

>getSession で毎回取得すればいいのに。
これは、getSession(true);ということですか?
リダイレクト先で、また新しいセッションを作って、
またリダイレクト先で・・・というふうに、
複数セッションを作れるのですか?

それとも、最初にセッションをつくり、以後は、
getSession(false);で、最初のセッションを取得すると
いうことですか?


0102名無しさん@お腹いっぱい。NGNG
>>101
getSession(false) です。(true)でもいいけど。
getSession(true) はなにも毎回新しいのを作るわけではなく、
無いなら作る、というだけです。

thread-safe の話は servlet の資料を読むと必ずでてくるので
探してください。
0103名無しさん@お腹いっぱい。NGNG
sessionがらみで便乗質問させて下さい。
96の本を参考にしてるんですが、
sessionにputValue()でStringの値をセットした場合は
問題ないのですが、参照型のインスタンスだと、
実行時にClassCastExceptionでエラーになってしまいます。

User a = (User)session.getValue("user");

こんな感じなんですが…
キャストの仕方がまずいのでしょうか。
0104むぎ茶NGNG
Object o = session.getValue("user");
System.out.println(o);
でもして 実際に何が帰ってきてるのか確かめろ
0105103NGNG
レスありがとうございます。
println()で出力すると、
"User@"に続いてアドレスらしき値が表示されます。
Stringの場合は、Objectで出力しても文字列がそのまま出力されるので、
なにか値の取り出し方に違いがあるのでしょうか?

0106むぎ茶NGNG
"User@"って表示される時にも ClassCastException でますか??
System.out.println(o.getClass());
のほうがいいかな。
0107103NGNG
Objectクラスに代入してる分には
ClassCastExceptionは出ないです。
getClass()でやってみた所、
"class User"と出力されました。
0108むぎ茶NGNG
o.getClass eq User.class なのに
User u = (User)o; で
ClassCastException がでるの??
本当にそうだとすると処理系のバグ??
同名で別の User クラスがあるとか?
わかんね
0109103NGNG
もう少し調べてみます。
勉強になりました。
ありがとうございました。
0110バカ学生NGNG
>つーか getSession で毎回取得すればいいのに。
>getSession(false) です。

一応、そんな形でプログラムはしています。
(ログイン成功時に、セッション生成し、他のサーブレットは
getSession(false) で、trueのときだけ、ログイン成功状態と見なす)
でも、あるはずのセッションが消えてたり、なんかおかしいです。

thread-safe というのは、スレッド関係ですね。勉強してみます。
ありがとうございました。
0111バカ学生NGNG
もう一つご相談なんですけど、HTMLから
ボタンを押して、他の(サーブレットが出力した)画面に
行くようにしたいのですが、
単純に考えて、get とpostの2つしかないので、
2つしかボタンが作れず、分岐も2つだけですか?
どなたか教えてください
0112バカ学生NGNG
あ、バカだ俺。
FORMのactionを変えれば、いくらでも作れますね。。
すんまそん。。
0113名無しさん@お腹いっぱい。NGNG
JDBC経由でMySQLに接続したいのですが
mm.mysql.jdbc-1.2のmysql_comp.jar mysql_uncomp.jarを
どこにおいたらいいのですか?
Tomcatのlibとかにおいているんですけど、No such driverいわれます。
現在の環境は apache1.3.14 tomcat3.1 jdk1.2.2です。
0114バカ学生NGNG
ログインservletを作ったんですけど、
管理者がログインしたときだけ、管理者用の画面を
出力したいのですが、単に、管理者のID,passを、プログラム中で
文字列比較して、管理者なら、別のHTMLを出力するような
プログラムでいいのですか?
0115デフォルトの名無しさんNGNG
>>113
環境変数CLASSPATHをちゃんと設定すればどこでもいいんじゃないの?
# いや、サーブレットはやった事ないんで嘘かもしれんが
0116デフォルトの名無しさんNGNG
関係無いんですが、Tomcat3.2.1で使うmod_jk.soってどこかでDLできないんですか?
コンパイルして作るしかないんでしょうかね?
ちなみに構築は Red Hat + Apache + Tomcat の予定です。
0117デフォルトの名無しさんNGNG
 >116 つまり、apxsしたくないってことですか?

 (わかってると思うけど)一番確実な方法はApache&Tomcatのソースを
用意し、リコンパイルする方法です。....確かにでかいですからね。

 ApacheのソースはredhatのソースCDにあるはず。tomcatについては....
  1.泣きながら落とす
  2.jservを泣きながら使う
 雑誌やredhatにtomcat3.2.1が収録されるのはもう少し先だと思います。

 今月のUnixUSERにもないんでやんの....。
0118デフォルトの名無しさんNGNG
>117 自己レス

 ちょっと省略しすぎたので補足。tomcatのソースを泣きながら落とす
場合、落としてからapxsを試してください。通った場合はapacheのりコ
ンパイルをする必要はないはずです。

 通らなかった場合、redhatのapacheはDSO使えない。つまり、apache
の再コンパイルとなるわけ。
0119デフォルトの名無しさんNGNG
>116
mod_jk.soはここから落とせますよ
http://jakarta.apache.org/builds/tomcat/archives/v3.2-beta-8/bin/linux/i386/
でもRedHatだったら、コンパイルしたほうがよいかも。
0120緑茶NGNG
ACCESS2000を使ってServletのプログラムを書いたのですが実行できません。
No suitable Driverなどというエラーが出てきます。
なぜでしょう?
ちなみにACCESS97で作ったDBを使うと動くらしいのですが、
2000で動かしたいので誰か解決策教えてください。
0121デフォルトの名無しさんNGNG
ACCESSを使ってJavaなプログラムが書けるわけが無いだろ!っていうチャチャは置いといて、
ACCESS2000用のJDBCドライバを使えば良いのでは?
ACCESSは使ったこと無いからどこにあるのか知らないけど。
0122初心者NGNG
サーブレットからEXCELのファイルを読み込んで、
それをブラウザに表示することってできますか?
OLEの扱いって、よく分かりません。
ダレカタスケテー
0123デフォルトの名無しさんNGNG
ACCESSだったら、jdkについてるjdbcドライバが使えると思います。
jdbc-odbcブリッジってやつです。
0124デフォルトの名無しさんNGNG
>>122
ServletからExecel?XMLを使え。DOMだ。
IEは5以上じゃないとダメだぞ。
って、オレもXMLは使ったことないけど。スマソ。
0125デフォルトの名無しさんNGNG
ServletからJSPに日本語の値を渡してるのですが、
文字化けします
IE5.5
エディタはSJIS

どこかにサンプル無いですか?


public class Test extends HttpServlet {
public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws IOException,ServletException {

req.setAttribute("name", "ほげ");
ServletContext sc = getServletContext();
sc.getRequestDispatcher("/Test.jsp").forward(req, res);
}
}

<HTML>
<%
String parm = (String)request.getAttribute("name");
%>
<%= parm%>
</HTML>
0126デフォルトの名無しさんNGNG
122>
ODBCのDSNにExcelファイルを登録できるからそれを
使ってみては?

0127デフォルトの名無しさんNGNG
hoge
0128デフォルトの名無しさんNGNG
hage
0129デフォルトの名無しさんNGNG
>>125
サンプルじゃないけど参考文献
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html

とりあえず、JSP 冒頭の @page で指定してる文字コードと、
実行プラットホームの文字コードを確認してください。
0130デフォルトの名無しさんNGNG
みんなえらい苦労してますね。
僕は富○通のサンプルをベースにhtmlライブラリ
クラスを作成してやっています。doServiceだから
getもpostも関係なし。
今までやってる仕事で近年になく楽々。
一応イメージについて補足しておきますが、ブラウザ
からアクセスすると対応するスレッドに接続できます。
出来ない場合には新規のスレッドを生成します。
そのスレッドにセッションを保存できるわけです。
当然DBなんかもコネクションは1つだけ。使い回す
からそれなりに速くできます。
ということでどの言語でもそうだけど、問題となる
のはデザインとプログラムの分離だけです。
#文字はShift JISで大体解決。〜がひっかかるけど。
0131デフォルトの名無しさんNGNG
みなさんマシンはどれぐらいのスペックですか?
CPUよりメモリの方が大事なのかな?
0132デフォルトの名無しさんNGNG
doService() みたいのを用意する例を結構見ますが、
なんで service() 使わないんだろね。
0133デフォルトの名無しさんNGNG
ネタ心者歓迎!今更ながらにJavaを学ぼう!
の543です。

サーブレットとDBMSを用いたWebでの検索処理についてですが
このあたりの開発経験をお持ちの方はみえませんか?

http://piza.2ch.net/test/read.cgi?bbs=tech&key=981424252&st=543&to=543&nofirst=true
↑こんな内容ではまってしまっています。
0134デフォルトの名無しさんNGNG
ローカルから送信されたデータをサーブレットを利用して
サーバー内のtxtに書き込みたいのですが、どのようにすればいいですか?

ちなみに使用サーバーはLinuxです。
0135>134NGNG
じぶんでコレを実装すれ。なぜかServletAPIではサポートされてない。
ttp://www.yo.rim.or.jp/~getsu/document/rfc1867j.txt
0136135NGNG
>>134 135は早とちりだったかもしれない
ファイルのアップロードでないなら普通に好きにファイルIOすれ。
0137134NGNG
>135
解決しました。
ご助言、ありがとうございました。
0138デフォルトの名無しさんNGNG
サーブレットよりJSPをフォワードしたいのですが、

    getRequestDispatcher("/jsp/filename.jsp")

のファイル名を相対パスではなく絶対パスで記述するためには、

    getRequestDispatcher("http://server/dir/jsp/filename.jsp";)

と記述すれば良いのでしょうか?
とある理由で全て絶対パスで記述するよう指示されました。
後でサーバー名の修正を簡単にするにはどういうポイントがあるでしょうか?
よろしくお願いします。

0139デフォルトの名無しさんNGNG
>>138
J2SE java.util.Propertiesつかえ。
Windowsのiniファイルの機能と同じモノを
メモリ空間にキャッシュできる。
0140デフォルトの名無しさんNGNG
>>138
初期化パラメータでサーバ名を指定できるようにしておいて、
init()の中で serverName = getInitParameter("serverName");
とかやっといたらどうっすか。
0141138NGNG
レスありがとうございます。

>java.util.Propertiesつかえ。

っていうのはPropertiesファイルを作成するということですか?
今日一日かけて調べて、Propertiesファイルの作成はできたのですが、
それをどこへ配置したら良いのでしょうか?
とりあえずWeb-infと同じ位置にして、
相対パスで取れないかなと思い、
    prop.load("filename")
としたら、駄目でした。

そこで、

    prop.load("c:\\dir\\filename.properties")

としたら、ちゃんと参照することができました。
でも、絶対パスを書いたら意味がないような。。。
やり方間違ってますか?
よろしければ解決方法、せめて参考URLを教えてください。
0142デフォルトの名無しさんNGNG
>>141
???
Properties.load()の引数はInputStreamじゃないか?

prop.load(new FileInputStream("filename"));

だと思うが。あと、相対パスでもオッケイなはずだよ。
0143コンパスNGNG
>>141
ClassLoaderクラスのgetResource()メソッドでURLクラスを取得できる。
当然クラスパス内にプロパティファイルがないと駄目だけど。

0144デフォルトの名無しさんNGNG
"getParameter()"で取得した文字ではなく、サーブレットから直接、文字を出力しようと
思うのですが、どうやっても文字化けします。
なにか、解決策はないでしょうか?
0145デフォルトの名無しさんNGNG
>144
書式(setContentType(...))を指定する時に
charsetしないと、日本語使えないよ。

具体的には
res.setContentType("text/html; charset=iso-2022-jp");
とか。
0146138NGNG
いつもお世話になります。138=141です。
143さんの話しは難しそうだったので、
142さんの「できる」という言葉を信じて今日も挑戦しました。
いろいろな階層に配置してみたけどやっぱり駄目でした。
prop.load(new FileInputStream("filename"));
にしてます(ソースは会社にしかないので書き忘れた)。
拡張子って必要ですか?一応、どちらでも試してます。
後、サーブレットはWeb.xmlにパッケージ名とクラス名を登録してあるけど、
それって関係ありますか?propertiesファイルも登録する?そんなわけないか。。。
この辺がよくわからないよー。社内で私よりわかる人いないし。
jspは"/jsp/jspname.jsp"でちゃんと表示できるのになぁ。
それともクラスを指定するやり方でするのかなぁ。
誰か救って!!納期がどんどん近付く〜〜(ToT)
以下の階層でどこに配置してどういう指定をしたらいいのですか?

jsp
L jspname.jsp

Web-inf
L classes
L pac
L servlet.class
0147コンパスNGNG
>>146
難しくないって。
下のかんじでOK。

なんでもリソースで取得するようにした方が、何かと便利だと思うんだけど。
で、当然クラスパス内にないとだめよん。

ClassLoader loader = ClassLoader.getSystemClassLoader();

InputStream input = loader.getResource("test.properties").openStream();
Properties prop = new Properties();

prop.load(input);
System.out.println(prop.getProperty("TEST"));
0148デフォルトの名無しさんNGNG
リフレクションによるメタプログラミングと、ClassLoaderの使い
こなしは、Javaの真髄の一つだと思うね。

URL指定で動的にクラスローディングできるって凄い楽だとおもう。
例えば、サーバプロセスを動作したままの状態でアップデートでき
たりする。
0149デフォルトの名無しさんNGNG
>>147
Weblogic使ってるけど、ファイル名を相対パスで指定する場合、
クラスパスじゃなくて、Weblogicのホームディレクトリからの相対パスになるよ。
(test.propertiesはc:\weblogicに置かなければならない)
146は置き場所が悪いんじゃないの?
0150デフォルトの名無しさんNGNG
>>146
試しに new FileOutputStream("hoge.txt")
でファイルを作ってみな。
そんでExplorerでファイル検索する。そこがホームディレクトリだ。
0151138NGNG
ありがとうございます。
朝から涙が出そうですぅ。早速会社でやってみます。
実は、本格的にWEBの仕事するの私的にも会社的にも初めてなんです。
JAVAだって自分でコツコツ勉強して、私以上に知ってる人誰もいない。
まだまだペーペーなのに、私が開発のリーダーのような感じになってしまって。。。
でも、ここで覚えて会社でデカイ顔してやるんだ!!!
と思ってがんばってます。
0152デフォルトの名無しさんNGNG
サーブレットでBeanに値をセットして
JSPのカスタムタグでその値を表示する方法の
サンプルor参考URLありませんか?
普通にJSPにJAVAのソースを埋め込む方法(スクリプトレット?)
ならできるんですけど、
「カスタムタグでやれ」との命令が下り、
足踏み状態です。田舎なので本もありません。
どうぞよろしくお願いします。
0153withNGNG
File より Context なり CLASSPATH なりのリソース系を使うのが
比較的無難な気が。
(これのマッピングも実装系でバラバラだけど・・)
0154デフォルトの名無しさんNGNG
>>152
jsp:useBean をGoogleで検索するといっぱい出てくるよ
0155デフォルトの名無しさんNGNG
サーブレットって何がいいのでしょう?
いろいろWEB見て回ったんだけどいまいちよくわからなかった。
perlプログラマにもわかるように超簡単な説明くださいませ。
0156仕様書完璧NGNG
>>155
全てのPerlのCGIをひとまとめにして
アプリケーションと呼ぶ事はできますか?
サーブレットの集合をアプリケーションと呼ぶ、
っていうより使いこなすとそう見えてくる。
もうCGIには戻れません。
0157初心者NGNG
みなさん、WebのApplication Serverって何を使っていますか?
最近Oracle9iASかWebsphereの導入を考えているんですけど、どうでしょ?
ちなみにOSはWIN2000。
使っている方、性能の善し悪しなんかをおしえてください。

また、JSP、Servletを組むとして何で組んでいますか?
JbuilderのEnterprise?Forte?
皆さんの使っているソフトを教えてください。

初心者なもんで質問ばかりですいません。
0158今度のプロジェクトNGNG
アパッチ+トムキャット+viクローン(たまにJBuilder)
ちゃんと金取ってやってる仕事。
0159155NGNG
>>156
ううむ。大変申し訳ないがその説明理解できないです。
Perl で組んだ CGI を組み合せてアプリケーションと呼ぶのはマズイのでしょうか?
CGI に戻れないというならそこらへんの深いお話しが聞きたいです。
>>155 で 超簡単な説明くださいませ とか書いといてすんません。
0160Webアプリは...NGNG
関わっているPJが4つほどあるけど、こんなかんじ〜。
それぞれ画面数は 100 〜 400 です。
※カッコ内はPJ数
APサーバ: WebLogic(3)、NAS(1)
DB: Oracle8.0.5(4)
OS: Solaris(4)

開発ツールは、たぶん規模が大きくなると IDE はつらい気がするので
みんなエディタです。Emacs(50%)、秀丸(40%)、Meadow(10%)♪

参考になるかも。。。
http://www.atmarkit.co.jp/keyword/index-articles.html
0161デフォルトの名無しさんNGNG
WebSphere3.5+DB2+VisualAgeJava でやってます。
最低メモリは1GB欲しい>WASサーバ

0162デフォルトの名無しさんNGNG
>>101
なにも考えずに、すべて getSession(true); でやってみそ。
ところで、J2EE API マニュアルの日本語版ってどっか無いかなぁ。
0163162NGNG
すまん。タイムマシンに乗ってた。
# 101 っていつだ?
0164withNGNG
>>155
なんにしろJava であるってのがでかい。
まずは保守性。XML や JDBC のような標準化されたライブラリの多さ。

あとメモリ上にずっといるってのが大きい。毎回プロセスが起動するのは
負荷はさておいてもセッション管理が面倒。

あとは JSP が便利かな。PHP とか ASP とちがってロジックを分離できるので
気持ちが落ち着く。(開発の分担が楽)

規模によってはもちろん CGI が良いって場合も多々ある。
0165謎NGNG
HORB
0166デフォルトの名無しさんNGNG
みなさんにお聞きしたいことがありますので、質問させてください。
私はPerlでCGIを作ることができるのですが、今後のステップアップのためにJSPを
勉強しようと思っています。そこで質問なのですが、JavaサーブレットはPerlやPHP
と比べて生産性はどうなのでしょうか?
みなさんがWeb系のシステムを構築するのに、Javaサーブレットを選択された理由を
お聞かせ願えるとありがたいです。よろしくお願いします。
0167無党派さんNGNG
>>166
>>164 にその答えがある。俺の答えは>>164と同じ。
0168デフォルトの名無しさんNGNG
サーブレット+JSPで、DBを検索して画面に結果を表示させたいです。
Beanにはテーブルの項目名を持たせます。
データが複数件ある時はどのように処理したらよいですか?
ArrayListを使おうと思ってますが、どのように使ったらいいかわかりません。

Bean    MyBean = new Bean();
ArrayList MyList = new ArrayList();
While(rs.next){
  MyBean.setDbValue1(rs.getString("列名1"))
  MyBean.setDbValue2(rs.getString("列名2"))
  MyList.add(MyBean)
}
 :
 :
request.setAttribute("mybean",(Bean)MyList.get(0));

自分でなんとか考えた1件だけあった時のソースです。
複数件の時はどこをどう変えたら良いのでしょう???
0169デフォルトの名無しさんNGNG
なんでその ArrayList をそのまま詰めない・・・・謎だ。
0170デフォルトの名無しさんNGNG
そうするとJSP側で受け取るのはBeanでなくても良いの?
0171デフォルトの名無しさんNGNG
JDBCを使って他のマシンのDBにアクセスするにはどうしたらいいですか。
使用しているのはAccess97です。
0172ノットイコール169NGNG
ArrayListだってBeanだ
0173168NGNG
jspでMyListをBeanにキャストしたらできました。
なるほど、こういう使い方もできるのですね。
ただし!別スレにも書きましたが、
for文で回して、get(i)で取り出すと、
最後にセットしたBeanの値が出てきてしまいます。
どこが問題なんだろう。

0174デフォルトの名無しさんNGNG
scriptletでサッサと済ますとか

<%
Bean[] beans = (Bean[])request.getAttribute("mybeans");
if ( beans != null ) {
for ( int i = 0; i < beans.length; i++ ) {
out.println(beans[i].toString());
}
}
}
%>
0175デフォルトの名無しさんNGNG
>>最後にセットしたBeanの値が出てきてしまいます。
>>どこが問題なんだろう。

whileの中で new Bean(); してないからでしょ
0176168NGNG
とりあえず明日会社でやってみます。
ありがとうございます。

>whileの中で new Bean(); してないからでしょ
これって、レコードセット取得する時ってことですか?

0177一仕事おわった!NGNG
>>157
思ったよかJServ安定してる。Intel Solarisいれると
勝手にはいっちゃったりするおちゃめさんだし。
個人的評価では
JServ > tomcat > websphere > jrun >>>>> InterStage
かなぁ。
InterStageっちゅうか、あれについてるDBがだめ。
0178Java初心者NGNG
どなたか教えてください。
J2EEの対応OSはWin NT4.0/2000、Solaris、Linuxとなってますが、
Win 95/98で動かしたいのです。
「起動用のバッチファイルなどをいくつか修正すれば正常に動作する」
なんて話を聞いたことがあるんですが、具体的にどのファイルを
どう修正すればいいかご存知だったら教えてください。
0179デフォルトの名無しさんNGNG
>>178
動かないの?知らなかった。
起動用のバッチってサーバ起動のやつですか?
0180デフォルトの名無しさんNGNG
サーブレットを使用して
Linuxサーバー上でフォルダの所有権を変更したいのです。
(フォルダ生成時にroot以外の所有権を持たせても可)
何かいい方法はないでしょうか?
0181デフォルトの名無しさんNGNG
フレームで分割されたHTMLをサーブレットで呼ぶにはどうしたら良いでしょうか?
メニュー(html)メイン(jsp+Bean)で構成されています。
今はフレームの構成が設定されているhtmlをfowardしています。そうすると、
HTTPエラーがそれぞれのフレーム内に表示されてしまいます。
0182デフォルトの名無しさんNGNG
>>180
runtime.execでシェルスクリプトを実行すればいいよ。
csh chown..で直接実行してもいい。
でもnobodyであまり権限ないから気をつけてね。
>>181
言ってることが分からないけど、フレームを作成したいなら、
フレームメインと、それぞれのフレームに対応するサーブレット
作成すればいいよ。
特定のフレームを決め打ちして実行したいのなら、Formのtarget
指定すればいい。どっちかってぇとJavaScriptな話題なのかな?
ttp://www.irt.org/でほぼ解決すると思うよ。
0183デフォルトの名無しさんNGNG
だれかoracleのutf-8をサーブレット環境で使ってる人
いますか?
文字の"−"が化けちゃいます。内部コードがutf-8
とJavaのunicodeではちゃうんでしょうかね。誰か
解決策ご存じでしたら教えて!
0184デフォルトの名無しさんNGNG
>>183
http://www.asahi-net.or.jp/~hc3j-tkg/unicode/index.html
0185180NGNG
ご助言、ありがとうございます。

Runtime runtime = Runtime.getRuntime();
runtime.exec("chown 所有者 フォルダ名");

でうまくいきました。
0186デフォルトの名無しさんNGNG
サーブレット初心者です。
今、書籍などで勉強中です。質問があります。
サーブレットってライフサイクルがありますよね。
(init()→service()→destroy()って言う流れで。)
で、最初のリクエストでinit()、service()が実行されて
service()メソッドがその後のリクエストを待つ。
destroy()が発行されるためにはコンテナ(エンジン)を再コンパイル
するか、もしくはdestroy()を明示的にオーバーライドしたプログラム
を再コンパイルしなければいけないって本にかいてあったんですけど、
これってほんとですか?
業務でつかうとなると、そんなコンテナの再起動は出来ないと思うし、
でも、そのままだとサーブレットの数が増えるにしたがって
サーブレットインスタンスのためにリソース足りなくなったりしない
のですか?
それとも、
サーブレットのインスタンスのリソースの消費率なんて微々たるもの
なんですか?
もしくはコンテナのほうでサーブレットの上限を設定できるとか?
うーん、だれかおしえてください。

0187182NGNG
>>184
情報ありがとうございます。やはりOracleutf-8
とJava内部でのUnicode実装が違うみたいですね。
ということはthinDriverでなくすると意外に
よめちゃったりするんだろうか。解決方法に
悩みますね。
0188デフォルトの名無しさんNGNG
>>186
結構本当です。開発中はどのようにリセット
するかが問題になります。が、あまり問題に
ならない処理系もあります。経験的な話で,
申し訳ないですが、サーブレット起動の一番
頭のクラスファイルの日付で自動更新される
処理系が多いです。サーブレットスレッドの
上限はたいてい設定できると思います。
リソースは喰いまくりです。なるべく消費しない
ようにしましょう。
0189187NGNG
>>188
早速のレスありがとうございます。
やっぱりリソースくいまくりですか?
気をつけます。

>サーブレット起動の一番頭のクラスファイルの日付で自動更新される
>処理系が多いです。
↑すいません。ここでいう処理系っていうのはサーブレットコンテナの
ことでしょうか。
それとも、そういう処理(リソースを解放するプログラム)を自分で
つくろうということですか?
0190186NGNG
189です。
僕の名前が187になってすが186です。
0191188NGNG
>>189
サーブレットコンテナっちゅうかサーブレットエンジンですね。
みたかぎり非常に楽なのがJServ,Tomcat。
JRUNは今ひとつ不明な動作がありますね。
そうそう、JSDKは毎回サーバ立ち上げ直さないと
だめですね。stopとstartのコンビのバッチ作ってます。
リソースはやはりDBアクセス大きいですね。
connectionは1セッションに1つにしましょう。
0192181NGNG
フレームメインに下のように設定して
<FRAMESET>
<FRAME name="frame1" src"menu.html" >
<FRAME name="frame2" src="サーブレット" >
</FRAMESET>
このフレームメインを呼ぶようにすればいいとうのはわかりましたが、
問題は、サーブレット内でDBを検索して、
該当データがあったらフレームあり、
該当データがない時はフレームなしで単独の画面にしたいのです。
どういう方法があるでしょうか?
どなたかご存知の方お願いします。
0193デフォルトの名無しさんNGNG
>>192
だからtarget決めるだけだと思うけど??
サーブレットがやるのは、その根っこの
htmlを吐くときに>>192みたいなフレームに
するか、フレームなしhtmlにするかだけでしょ?
targetきちんと決めればフレーム中のフレームとか
任意のところ狙えるじゃん。
0194181NGNG
忘れてた。サーブレットではJSPをFowardしてます。
今は、ただメインフレームを呼ぶと
サーブレットが起動して、サーブレット内で指定したJSPが
そのフレーム内に表示されます。

193さんのやり方だと、
まず、サーブレットによりメインフレームを吐き出し、
そうするとそのフレームで指定したサーブレットがまた起動、
というような1画面表示するのに2回サーブレットを起動させる
イメージでよろしいですか?
0195181NGNG
もう1つ質問。
<FRAME name="frame2" src="サーブレット" >
これをPOSTで呼びたいんですけど、それは可能ですか?
0196デフォルトの名無しさんNGNG
>>195
JavaScriptと組み合わせれば可能だろうけど、なんでGETじゃダメなの?
0197デフォルトの名無しさんNGNG
すみません、JSPでの文字コードの件なんですけど。
JSPに関係する文字コードって、

・JSPのコードを書いたときの文字コード
・JSPコード内の「ContentType」で指定してある文字コード
・そのJSPを実行する処理系の文字コード

 の3つが関係しあうと思うのですけど、揃えないといけないものは
どれとどれで、揃えなくて良いのはどれですか?

 例えば、Win環境でJSP書いて、空リス上で実行するときには、
ソースがSJIS、ContentTypeもSJIS、実行環境のデフォルト文字コードは
EUCになると思うんですけど、そういう場合は、ソースもContentTypeも
EUCで書かないといけないとか、そういうことはあるんでしょうか。
もSJIS、
0198デフォルトの名無しさんNGNG
>>194
サーブレットと考えない方がいいとおもうんだけどな。
作り方にもよるけど必要なhtmlの数だけservletが必要だと。
もちろん同じservletで出力切り替えるのはできるけど
簡単に考えるならね。
>>195
たぶんセキュリティなんだと思うけど、そういうのは
セッションオブジェクトにつむのよー
0199186NGNG
>>188,191
188さんどうもありがとうございます。
現状WinNT+Apache + Tomcatでサーブレットを
うごかそうとおもっています。
(あくまで勉強用の環境ですが、、)
で、たびたびもうしわけないんですが、

>サーブレット起動の一番頭のクラスファイル
>の日付で自動更新される処理

ってもう少し詳しく具体的に教えてもらえませんか?
ウチの社員に質問されまくりで困ってます。
もしくは詳しいドキュメントとかあればおしえてほしいです。。
0200デフォルトの名無しさんNGNG
age
0201デフォルトの名無しさんNGNG
あれー、ここのスレ、見え方おかしくなってますね。
コメントきれてたりしてますね。おれだけかな。
0202デフォルトの名無しさんNGNG
>>191
 JServって、Tomcatの昔のバージョンの名前じゃないんですか?
 別のモノ?
0203デフォルトの名無しさんNGNG
すみません。どなたか助けて下さい。
ClassLoader loader = ClassLoader.getSystemClassLoader();
InputStream input = loader.getResourceAsStream("properties");
こんな感じにプロパティファイルを取得したいのですが、
どうしてもgetResourceAsStreamでストリームが取得できません。
サーブレットのクラスパスのルート(WEB-INF/classes/)にファイルを置いて
ありますがなぜか読み込めません。どうしてなのでしょう・・・

#助けて下さい。
0204デフォルトの名無しさんNGNG
揚げ忘れました。
0205デフォルトの名無しさんNGNG
なんとか解決出来ました。
System.getProperty("java.class.path")
でクラスパスを調べたところ、実はWEB-INFなんかの
サーブレットを収めるところは実はクラスパス、通ってなかったんですね。
それで、パスの通っている場所にファイルを置きましたところ
読み込めました!

#それではどうやってサーブレットは呼び出されるんでしょうか・・・(謎
0206デフォルトの名無しさんNGNG
>>205
ZONE切ってるからでない?
0207デフォルトの名無しさんNGNG
VisualAge3.5を使っています。
ViusalAgeのWebSphereテスト環境を使いたいのですが、
テスト用のWebサーバにサーブレットをどうやっておくのが
常道なんでしょうか?

先にフォルダにjavaファイルをつくってインポートすると、
classファイルもそこに生成されますか?
それともコンパイル→エクスポートを繰り返さなくてはならいとか?
0208デフォルトの名無しさんNGNG
知ってるか?某F社のODBC-JDBCはqueryするだけでも
commitしないとだめなんだぞ。かなりクラクラ
きて、文句つけたら「仕様」なんだと...
0209デフォルトの名無しさんNGNG
>>202
別ものみたいですよ。
Jserv開発チームから発展したJakarta-Projectが開発した
ServletコンテナがTomcatです。

くわしくは↓
http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/engines/engines.html#tomcat
0210デフォルトの名無しさんNGNG
VAJ3.5Professionalを使っています。
VAJでサーブレットを作成して、
コンパイルしたときにWebサーバのservletの実行フォルダに
自動的に出力するようにできますか?

VAJでWebアプリの作り方の常道みたいのがあれば
教えてください
0211デフォルトの名無しさんNGNG
個別の環境はわからないなー。
うちはJDKとJSDKしか使ってないからな。
結構サーバーでコンパイルする人いるけど
必要ないと思います。開発は95/98/meで十分。
あとファイル日付更新管理するソフト作って
活用してます。
0212205NGNG
>206
ClassLoaderの取得をこのようにしたら大丈夫でした。
WEB-INF/classesの下のリソースも取得できるようになりました。

this.getClass().getClassLoader()

それにしてもクラスパスってよくわからないなー
0213デフォルトの名無しさんNGNG
>>211
J2EE1.3やりたいので、Win98系じゃなくてせめてNT系にしましょうよ。
0214デフォルトの名無しさんNGNG
J2EEとJ2SEの違いって、JTA?(トランザクションの管理する人)とか
EJBが使えるAPIがついてるってだけで、
TOMCATとかでJ2SEでやってたのを、J2EEにしてもJDBCのPOOLINGも
EJBでトランザクション管理とかも部品もしくはアプリケーションサーバ
などを買ってこないと出来ないのでしょうか?
その他、J2EEにするといいことってなんかあるんですか?
(というか、基本的な考え方が間違ってるのか?)
0215デフォルトの名無しさんNGNG
データベースから受け取ったデータをブラウザに表示するプログラムをつくっています

データベースからレコードひとつずつ受けとりつつ、
それをHTMLにしてStringなどにいれるのがいいのか、
全部受け取ってからあとで加工するのはどちらがいいのでしょうか


データベースにURL TITLE COMMENTの3つの列があって、
ブラウザには
<TD><A HREF ="URL">TITLE</A>COMMENT</TD>
と言う風に表示します
0216デフォルトの名無しさんNGNG
>>215
ServletからJSPを呼ぶってのはダメなのか?
その方がすっきりすると思うが。
0217デフォルトの名無しさんNGNG
>>215
質問の意味がいまいちわかんないけど、こうしたいの?

Statement stmt = conn.createStatement();
try {
final String sql = "SELECT URL, TITLE, COMMENT FROM ...";
ResultSet rs = stmt.executeQuery(sql);
try {
while (rs.next()) {
String url = rs.getString("URL");
String title = rs.getString("TITLE");
String comment = rs.getString("COMMENT");
...
out.println("<TD><A HREF=\"" + url + "\">"
+ title + "</A>" + comment + "</TD>");
...
}
} finally {
rs.close();
}
} finally {
stmt.close();
}

即興だからバグは許して。
0218217NGNG
あ、ごめん。
インデントなくなっちゃった。
0219デフォルトの名無しさんNGNG
>>214
JMAとかJNDIとかJTAとかって、その気になれば自分でも実装できる
だろうけど(まあ、その気になればRMI相当だって自分でプロトコル
実装できるしね)、そういうのがAPIになってて、今更作って試験して
という作業しないで済む標準な手段があるのって、すっごい楽でいいと
おもうけど。
0220デフォルトの名無しさんNGNG
age
0221214NGNG
>>219
うん、確かにそれはすごく分かる。だって、楽したいもん。
でも、結局はベンダー(AP鯖など)に依存してて貧乏プロジェクトや
個人では使えないってことでよいのかな?
まぁ、個人で使うってことってないと思うけど(藁

貧乏プロジェクトで使いたいとなったら自分たちで実装して試験して
って、やってるくらいならJ2SEで無理やりゴリゴリ作っちゃったほうが
早いのかなって思う。
0222デフォルトの名無しさんNGNG
>>210
とりあえずネットワークで共有しておいて
export で Directory 書き出しするとか。

たぶん、IBM的にはWebSphere Studioを組み合わせろ、
ってのが本流なのかな?(自分は使ってないけど
0223デフォルトの名無しさんNGNG
まだServletはマイナーかなage
0224デフォルトの名無しさんNGNG
>>223
つうか、すでにJSPが主流かもage
0225デフォルトの名無しさんNGNG
今度スレあげるときはJSPとServletは一緒にすべきage
0226デフォルトの名無しさんNGNG
サーブレット楽でいいじゃん。
関係ないけど、HORB使えって平野さんいってた
からこれから実装sage
0227デフォルトの名無しさんNGNG
EJBを学び始めたんですがバリバリ使ってる人います?

うちのチームはサーブレットばかりか、Javaも初心者なので、
技術的なレベルの問題で使う機会はなさそう・・
0228バカプログラマNGNG
うちらのチームもJSP&Servletを使い始めましたが、みな初心者です。

で、MVCモデルにのっとって
(というかWebSphereStudioのジェネレータがはいたコードを書き換えて)、
プログラムを組んでいるのですが、
どうしてもJSPひとつにつきコントローラもひとつと言う形になってしまって
プログラムファイルの数が甚大になってしまいます。

ひとつのコントローラで複数のJSPからの要求をうまく処理する方法ってないものでしょうか?
初心者ですみません。
0229デフォルトの名無しさんNGNG
ファイルの数が莫大なのってまずい?
たとえばコントローラをひとつのファイルにしてしまうと
みんながそのファイルをいじりたくなって、
効率がおちないかなぁ

おれも初心者だから教えてほしい
0230デフォルトの名無しさんNGNG
生サーブレットってよくないか?
ちょっと思い立ってサーブレットBBS作ったけど、
便利だぞ。staticなメッセージクラスがexpireするときだけ
ファイルに書き込みだ!
でもクラス名考えないとstaticだからね。
しかも書き込みはWriteObject1行でおしまいだ。
同じ仕組みでchatもできる。
0231デフォルトの名無しさんNGNG
サーブレットのサンプルソースが見られるところ知りませんか?
・掲示板
・オークション
・ショッピングカート
などを探してます。
自分で作ってみたんですが、できれば人のソースもみて改善すべきところや、
実装のセオリーをしりたいです
0232デフォルトの名無しさんNGNG
>231
掲示板は掲示板日記で見つかると思う。
オークション、ショッピングカートは奥が深いのよ。
ただでは見せられない。了見狭い俺なのさ。
0233名無しさん@お腹いっぱい。NGNG
>>232
んなこといわず、インターフェースだけでもみせてくで
0234デフォルトの名無しさんNGNG
>>233
しょーがないなー。
tabi100.com
0235デフォルトの名無しさんNGNG
オークションで時間切れの出品物を削除するのは
SQL一発でOK?
0236デフォルトの名無しさんNGNG
セッション管理なんですけど
クライアントが同じ画面を二つとか
三つ立ち上げた時ってどうやって
管理すればいいんでしょ。
0237デフォルトの名無しさんNGNG
Javaサラブレット
0238デフォルトの名無しさんNGNG
>>236
画面ごとにユニークなIDでも振ってhiddenタグでも使ったら?
各々の画面で保持したいオブジェクトはHashtableに突っ込んで置いて
それをユニークなIDをキーとしてsessionオブジェクトに入れておく、とかね。
0239デフォルトの名無しさんNGNG
かき氷とservletはじめました
PerlのText::Template.pmみたいなことできる
ありものText文字列変換classないでしょか?
(Perlのハッシュ変数が便利すぎてservlet挫折かも)
0240デフォルトの名無しさんNGNG
ふたつのWebサーバがいて、片方のサーバのServletへのPOSTリクエストを
もうひとつのサーバのServletへPOSTとして転送する方法ってないかなぁ。

sendRedirectだとリクエストは無視されるし、RequestDispatcherだと
同じサーバじゃないと転送できない・・・
0241デフォルトの名無しさんNGNG
動画や画像ファイルにアクセス制御するのってどうやってますか?
ふつうに誰でも見れるところに置くのはちょっと出来ないのです。
ログインしたユーザーのみ見られるとかってできないかなぁ・・・
0242デフォルトの名無しさんNGNG
>>241
ServletでMIME type(Content Type)をimage/jpegとかにしたらいいだけじゃない?HTTPわかってる?
0243デフォルトの名無しさんNGNG
Responseのどこにファイル名を設定したらいいのでしょうか?
素人丸出しですみません・・・>>242
0244243NGNG
sendRedirect()じゃ、みんなが見える位置にしかファイルを
置けないですよね?
0245243NGNG
まず、HttpServletResponse#addHeaderで、
MIMEを設定して、それから
javax.servlet.ServletResponseWrapper#getOutputStreamで、
ServletOutputStreamを取得して、printメソッドで書き込めば
いいんですね?>>242
あってますか?
0246デフォルトの名無しさんNGNG
基本的な質問かもしれないんですが、
リダイレクトを使うときは
out.printは使わないのがベターなんでしょうか?
closeもしくはflushすればエラーはでないのですが
closeとflushの違いがいまひとつわからないです

Error 500
要求の処理中にエラーが発生しました :http://localhost:8080/servlet/Test
メッセージ :null
ターゲット・サーブレット : null
StackTrace:
--------------------------------------------------------------------------------
Root Error-1: null
java.lang.IllegalStateException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.IllegalStateException() void


public void doPost(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) {

try {

PrintWriter out = response.getWriter();
out.print("test");
out.close();
//out.flush();

ServletContext sc = getServletContext();
sc.getRequestDispatcher("Result.html").forward(
request,
response);

//out.print("test2");
} catch (Throwable theException) {

}
}
0247デフォルトの名無しさんNGNG
>>246
flushだと、出力は続いているから、ブラウザと入出力が続いている。
延々と持ち続ければ、画面をどんどん更新したりするプログラムが
かける。closeすると縁が切れて、ブラウザは描画に専念する。
0248デフォルトの名無しさんNGNG
つながってる状態でrquestDispatcher.foward
すなってことですね
0249デフォルトの名無しさんNGNG
マルチポストになるのですがむこうではリプライがなかったのでサーブレット/JSPの
プロがいると思われるここへ書かせていただきます。
コアサーブレット&JSPと言う本で勉強しているのですがエクセル表示で詰まってます。
本どうりpage contentTypeでエクセル表示を指定、テーブルに値を代入
<%@ page contentType="application/vnd.ms-excel" %>
<TABLE BORDER=1>
<TR><TH>  </TH><TH> a</TH><TH> b</TH></TR>
<TR><TH>aaaa</TH><TD>100</TD><TD>200</TD></TR>
</TABLE>
のように書いてもエクセル表示できません。response.setContentTypeやデータを
タブ区切りにしても駄目でした。エクセル2000も入ってます。IEは5.5を使っています。
他になにか設定が必要なのでしょうか?
0250241NGNG
このようにしたらできるようになりました。ありがとうございました
MimetypesFileTypeMap ftm = new MimetypesFileTypeMap();
String str = ftm.getContentType("c:/aaa.gif");
response.setContentType(str + "; charset=Shift_JIS");

ServletOutputStream out = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(out);

FileInputStream fis = new FileInputStream("c:/aaa.gif");
int filesize = fis.available();
response.setContentLength(filesize);

byte[] bytearray;
bytearray = new byte[filesize];
Integer integer;
int i = 0;
int data;
while (i < filesize) {
 data = fis.read();
 integer = new Integer(data);
 bytearray[i] = integer.byteValue();
 i++;
}
0251241NGNG
つづき
bos.write(bytearray);
bos.flush();
bos.close();
out.flush();
out.close();
return;
0252デフォルトの名無しさんNGNG
>>250
File file = new File("c:/aaa.gif");
fis = BufferedInputStream(new FileInputStream(file));
int filesize = file.length();
とか、
while (i < filesize) {
int size = fis.read(bytearray,i,filesize-i);
i += size;
}
とかやろうよ
0253デフォルトの名無しさんNGNG
>>252
ありがとうございます。
java.io.*は初めて使ったのでこんなになってしまいました。逝ってきます・・・
0254249NGNG
レスつかないので号泣していたところ昨日なぜかエクセル表示できました。
なんもやってないのに。こないだは何やっても駄目だったのに。自分7不思議
に入れときます。
0255デフォルトの名無しさんNGNG
タグライブラリについて教えて下さい。
JSPのタグを自作できるとの事ですがこれは結構重要な事なのでしょうか?
XMLをXSLやpaserで操作するようなものですか?それならXMLで事足りるような
気がするのですが。どうもpaserを自作するような感じに思えてしまうんですが。
トンチンカンな事ぬかしてたら叩いてください。
0256デフォルトの名無しさんNGNG
TOMCATが生成してくれるjasper.logが、文字化けしちゃって
盛大に困りまくっているのですが、なんとかなりませんやろか?
0257デフォルトの名無しさんNGNG
>>255
カスタムタグは便利ですよ。
JSP Spec を読んで,勉強してみてはどうですか?
(ちなみに、かなりトンチンカンな事をおっしゃってますので
お気をつけてください。)
0258デフォルトの名無しさん NGNG
EJBはServlet、JSPほどメジャーになってないけど実際のシステム開発
にはどんどん導入されてるよ。EntityBean(CMP)とスレートレスSessionBean
は開発経験した。EntityBeanは使いどころ間違うとパフォーマンスが激烈に落ちるから
注意しないといけないけどね。EJB2.0で導入されたメッセージ駆動型Beanを
各アプリケーションサーバは実装したらもっと使われるようになるだろうね。
(今のとこメッセージ駆動型Beanに対応してるのはWeblogicくらいか?)
0259デフォルトの名無しさんNGNG
PerlCGIが使えるレンタルサーバ、ウェブスペースは多いのに
JavaServletJspが使えるとなると高価な専用サーバくらいし
かないのは何故?TOMCATってただで導入できるはずなのに・・・
0260デフォルトの名無しさんNGNG
>>256
文字化けって…
もしかして、Unicode?
0261デフォルトの名無しさんNGNG
>>259 実際問題セキュリティ関係が難しいよ。全員がひとつの
プロセス内で動いているわけだから、UNIX のファイルパーミッ
ションを利用できないとか、ある人のサーブレットがリソース
(メモリ/CPU) 食いまくると他のサーブレットの速度が落ちる
とか。1 スレッドあたりの メモリ/CPU 使用率まで制限しようと
思ったら、プロバイダが Java VM 作るしかないね。後はユーザ
ごとに Tomcat 立ち上げるとかだけど、Tomcat が落ちたときの
リスタートは誰がやるか、とか。現状、プロバイダにとってセールス
トーク以上のメリットがないし。
0262デフォルトの名無しさんNGNG
カスタムタグは使うだけが吉。作り方を覚えてる間にどんどん出てくるから。
(当初の)JavaBeansと同じ思想だ。
0263261NGNG
ちと意味不明だな。スマソ
0264デフォルトの名無しさんNGNG
同時に存在するセッションの数を制限したいのですがぁー
Tomcatでー
どうしたらー
よいー?
0265デフォルトの名無しさんNGNG
server.xmlのどっかに上限値がかいてあったと思う。
0266デフォルトの名無しさんNGNG
>>265
それは、セッションのタイムアウトではなくて?
間違ってたらゴメソ。
0267266NGNG
うう、ゴメソ。
それはweb.xmlでした・・・。
逝って来ます・・・。
0268255NGNG
レスありがとう。かなりトンチンカンなやつです。ホンのいくらか勉強してみました。
サ−バーサイドでのサブルーチンですな。(またもやおかしい?)
0269255NGNG
今思いついた。これってプログラマとデザイナを分けるってこと?

<myjsp:unko><%--ここにはウンコを入れといてね(はあと)--%>
とデザイナが書いておけばいいというわけだな。これが最大の利点
なのかな?
0270デフォルトの名無しさんNGNG
検索機能のユーザの入力補助で
参照サブウインドウを開くプログラムを作ってます
(企業コードをサブウインドウの中から選ばせる)

サブウインドウはDBから企業名と企業コードの一覧を
とってくるのですが、サブウインドウが開いてから
中身が表示されるまで3秒くらいかかってしまいます。
(レコードは40件くらい)

いくらがんばってもDBから引っ張ってくる限り
遅いのは覚悟すべきなんでしょうか?
0271デフォルトの名無しさんNGNG
>>270
そのウインドウに入るときに、threadで、セッションに
突っ込んでおいたら?セッションにはいってなかったら
もう一度検索するってことで。
0272デフォルトの名無しさんNGNG
>271
ありがとうございます

connectionPoolingなどいろいろ考えていましたが、
ページに入ったときにセッションにいれるのは
いい感じですね
タイミングとか難しそうですがためしてみます
0273デフォルトの名無しさんNGNG
HTMLのselectのなかのoptionの値って
どうやって受け取ればいいのでしょうか?
<SELECT>
<OPTION value="0" name="option1" >option1 </OPTION>
</SELECT>
はだめみたいで
getParameter("option1");
はnullになってしまいました
0274デフォルトの名無しさんNGNG
>>273
nameはselectの属性じゃないの?
0275デフォルトの名無しさんNGNG
サーブレットを使うのに、IISにTomcatをアドオンさせて使おうと思ったら
アクセス時に

inetinfo.exe
例外:アクセス違反(0xc0000005)、アドレス:0x011f3d50

とかいうエラーが出ます。
これにはどう対処したらよいでしょうか?

リダイレクタのログ
[jk_uri_worker_map.c (334)]: jk_uri_worker_map_t::uri_worker_map_close, NULL parameter
[jk_uri_worker_map.c (184)]: In jk_uri_worker_map_t::uri_worker_map_free, NULL parameters

参考文献
http://www.ingrid.org/jajakarta/tomcat/tomcat-3.2.1/doc-ja/tomcat-iis-howto.html
http://www.nsg.co.jp/nbb/ss/joy/ig001018.html
http://www.dmz.hitachi-sk.co.jp/Java/Tech/servlet/tomcat.html
0276VB厨房NGNG
今度はじめてSolaris+Servletシステム設計開発やるんだけど
なんか助言ある?
0277デフォルトの名無しさんNGNG
>>273
それはサーブレットの問題じゃなかろう
HTMLも勉強しろや。

<SELECT NAME="test">
<OPTION VALUE="0" >option1</OPTION>
<OPTION VALUE="1" >option2</OPTION>
</SELECT>
0278デフォルトの名無しさんNGNG
>>276 サーバサイドでは安易にシングルトンを使うな、かな。
他にも思い出したら書く。
0279デフォルトの名無しさんNGNG
>276
業務が忙しくなる前に、APサーバ周りのツール類を使いこなせるようにすること

エディターでがんばっちゃう人もいるが生産性が断然ちがう
0280デフォルトの名無しさんNGNG
>>278
なぜ?
0281278NGNG
>>280 サーバサイドのプログラミングはマルチユーザ、マルチ
スレッドが基本。安易にシングルトン使う人ってマルチユーザ、
マルチスレッド意識してない人が多いのよね。で、後で
synchronized つけようとしても全ユーザの全スレッドがその
シングルトンの部分でシリアライズされちゃったり。

それから、Java のシングルトンはシステムに対してひとつでは
なく、クラスローダーに対してひとつだということを意識して
おかないと後々やばいよ。

実例挙げればきりないけど、今までサーバサイドのフレーム
ワークの中枢部分にシングルトン持ち込んだ莫迦SEのアプリ
開発はことごとく動かなかったという経験則から (俺ではない)。
ツール程度なら問題ないかもしれないが十分注意。
0282278NGNG
ちなみにそいつは COBOLER。プロシジャ型言語しか設計したこと
ない人に Java の設計させてみると、大抵シングルトンとコマンド
パターンを設計の中核に持ってくるよ。
0283デフォルトの名無しさんNGNG
>>281-282
サブレの経験はないがOOP畑の勘(わら)として、
凄く適切な解説だと思う。

プロシジャを中心に考えちまったら、
(少なくともOOPシステムであるJavaってものは)
全然旨く動かなくなるんだよな。

だから、OOPの効能を機能(=プロシジャ)ベースで説明しよう
などとしている入門書は、全部ドキュだ。焚書しろ焚書。
0284278NGNG
とりあえずコードレビューする人は grep で static 宣言引っ掛けて、
その変数/メソッドがマルチスレッド対応してるかくらい確認せれ。
大抵何ヶ所か未対応部分が見っかるぞ。個人的には static を使用
する部分には設計責任者の承認ハンコくらい必要だとも思っている
(極論だが; もちろん static final は除外して)。
0285デフォルトの名無しさんNGNG
static じゃないメンバ変数もヤバいと思うぞ?
0286デフォルトの名無しさんNGNG
>>281
激しく同意。XMLじゃないけどサーブレットにネームスペース
導入して欲しい..ってパッケージ宣言か(w
関係ないけどtomcatでstatic使ったchat作ったら、サーブレット
削除してもずーっとメモリーに残っていてかなりあせった。
0287278NGNG
>>285 もちろん。とりあえず static はクリティカルにマルチスレッドの
影響を受けやすいというコトで。

>>286 多分オートリロードを期待して前のオブジェクトがメモリ上に残った
ままになったのかな?>>281 でちょと説明不足だったけど static なイン
スタンスはクラスローダーに対して1個ってのはそう言う意味もあった。
0288280NGNG
>>278
さんきゅ。

使う必要ないとこで、適当にSingletonにしたらはまると。
SingletonってLogin管理するクラスとか、ConnectionPoolみたいなのに
使うと思ってたから、安易なとか言われても想像のつかないとこではあるが。

マルチスレッドなんだから、同期非同期意識してるよな?という意識が
いるってことね。
0289278NGNG
ログ出力とかキャッシュ機能みたいにシングルトンでまとめて管理しておきたい
部分はどうしても出てくるよ。シングルトンにすべきところとやっちゃいけない
ところの見極めが、よく意識しないと見えにくいかな。なんせ非同期の問題は
単体テスト通っちゃうんだから。

オブジェクトの集約関係があるでしょ。あれを洗い出せば、オブジェクトのイン
スタンスが全ユーザに対してひとつなのか、ユーザごとにひとつなのか、もしく
は毎回使い捨てなのかが明確になるはず。マルチスレッド初心者にはスレッドごと
にインスタンス使い捨て部分を任せたほうが良い。アプリケーションロジックを
実装した Bean を HTTP セッションに入れて、サーブレットからそれをつつく
だけのような設計にしてみ。少なくともその Bean 作る人のスキルをシングル
ユーザマルチスレッドまで落とせるから (だからオブジェクトの関係を意識
しないプロシジャ型設計はサーバサイドに向いていない)。

# 前に書いたエキスパート COBOLERs + 初心者 VB 使いたちのデスマーチは
# 毎回上記の問題を繰り返している…。これもスパイラル開発の一種? (藁
0290デフォルトの名無しさんNGNG
私も同じコト考えてました。>>278-289 はかなり的確に表現してる
と思います。>>289 のようにインスタンスのスコープによってスキル
レベル分けるのが良いですね。

 ・リクエストスコープ (シングルユーザー、シングルスレッド) = 初心者向け
 ・セッションスコープ (シングルユーザー、マルチスレッド) = 中級者向け
 ・アプリケーションスコープ (マルチユーザ、マルチスレッド) = 上級者向け

そうなるとサーブレット実装する人は上級者ということになってしまい
ますが。。。
0291デフォルトの名無しさんNGNG
激しくアゲとこう。
0292デフォルトの名無しさんNGNG
なんでtomcatはあんなんでしょうか?
フリーのものの中でも最悪の部類に入りそうなものなのに、
なぜかサーブレットエンジンとなると"TOMCAT!!"ってなるのがどうもねぇ。

他に良さそうなものって沢山ありそうなもんだけど、ないのか?
0293デフォルトの名無しさんNGNG
JRunRunRun♪
0294デフォルトの名無しさんNGNG
292desu
一応仕事はしてくれるってのが一番始末に悪い。
動いたり動かなかったり。。。こっちはもう心身ボロボロだっての!
0295デフォルトの名無しさんNGNG
>>292
Resinいいんじゃない?
ちょっとしか使ってないけど日本語は普通に通ったよ。(shift_jis)
0296デフォルトの名無しさんNGNG
>>295
それは知ってる。Resinの使いやすさや速度は。
でも今回は仕方ない。金ないし時間ないし。
それにオンボロtomcatにしても使いこなしている人だっている
わけだし。。。

今度ソースいじって自分で直すか。。。めんどくさ


それにしてもResinはバージョンアップの頻度が高いですな
0297デフォルトの名無しさんNGNG
DBBeanがデータベースの検索結果をresultsetが持っています。
JSPで検索結果を表示したいときは、resultsetをDBBeanから受け取るべきなのか、
それともDBBeanでVectorにいったん格納して、DBのコネクトをクローズしてから、
Vectorを受け取るべきか悩んでます。
検索結果は15列で最大で200行です。
0298デフォルトの名無しさんNGNG
データベース開発はまだやったことないんですがそろそろ勉強しておきたいと思ってます
JDBCに関するお勧めの本があったらぜひ教えてください
ちなみにODBCも触ったことがないのでそこらへんについても書かれている本がいいです
0299デフォルトの名無しさんNGNG
>>297 後者。理由はコネクションのクローズのタイミングを JSP 側が
意識しなくて済むから。でも他人とのインターフェースに安易に
Vector 使うなよ。インターフェースの曖昧化は抽象化とは違うぞ。
レコード1個に対して Bean のインスタンスを1個作れ。
0300デフォルトの名無しさんNGNG
Vectorの中にDBからとってきたレコードを格納するくらすを
格納してます

public class Emp {
String name;
String emp_id;

〜 後ろはaccessor 〜
}
0301デフォルトの名無しさんNGNG
public class DBBean{

public Vector getVector() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@emp", "dbuser", "dbuser");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from T_EMP");
Vector vc = new Vector();
while (rs.next()) {
vc.add(
new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID")));
}
return vc;
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
stmt.close();
conn.close();
} catch(SQLException ex){
ex.printStackTrace();
}
}
return null;
}
}
0302デフォルトの名無しさんNGNG
<TABLE>
<TBODY>
<%
Vector vc = dbBean.getVector();
Iterator iterator = vc.iterator();
while (iterator.hasNext()) {
EMP emp = (EMP)iterator.next();
%>
<TR>
<TD>
<% out.print(emp.getName()); %>
</A>
</TD>
<TD>
<% out.print(emp.getEmp_ID()); %>
</TD>
</TR>
<% } %>
</TBODY>
</TABLE>
0303デフォルトの名無しさんNGNG
301
誤)
new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID")));
正)
new Emp(rs.getString("NAME"), rs.getString("EMP_ID")));
0304デフォルトの名無しさんNGNG
DBBeanに切断用のメソッドを作っておいて
ResultSet渡しで
JSP側で
finally{
dbBean.close();
}
ではだめでしょうか?
検索結果ごとにデータクラスを作らなくていいので、
コードは少なくなりそうですが・・
0305299NGNG
>>304 JSP への forward に失敗したらどうする?やるなら
チェーン元 (サーブレット側) でやれ。APサーバでDB
接続の開放忘れはかなりクリティカルだぞ。

って、よく見たら JSP 内完結型か…。

一人で作る分には JSP 内で finally も Vector 返しも良いが、
せめて Iterator か Enumeration にしといたほうが後で幸せ
かもな。それから JSP 内でレコードを取り出す場合に SQLExcepiton
が発生したらどうするんだ?ページのレイアウトが中途半端に
崩れることになるぞ。
0306デフォルトの名無しさんNGNG
なかなか経験豊かな方のようですね。アドバイス参考になります。
エラーページのことは考えてなかったですが、例外をキャッチして、
エラーページにforwardにするのかなと思ってます。
これは仕様によってでしょうけど。

サーブレット側でVectorに検索結果を格納するのと、
JSP側で展開するのでロープが2度になるので、
ちょっとスピードが気になるのですが、このあたりは
安全な方法で作ってみて、とろかったらスピードを上げてこうと思います
0307299NGNG
> サーブレット側でVectorに検索結果を格納するのと、
> JSP側で展開するのでロープが2度になるので、
> ちょっとスピードが気になるのですが、
まぁメンテナンシビリティ+拡張性と速度とのトレードオフという
いつものパターンだな。多分その程度ならDBの検索速度で十分
相殺されると思われる (レコードが数千まで逝ったら設計変える
必要があるが)。リソースが十分ならサーバサイドの Java は
かなり速いぞ。そしてクライアント1台落ちるのとサーバ1台落
ちるのじゃ規模が違うからな。とりあえずサーバサイドは安全に
動くもの作れや。パフォーマンスネックの検証するのはその後でも
十分だろう。

一人でわめいてみたが、人の好みにもよるので強制する気はない。
まぁ自分の好きなように楽しめや。
0308デフォルトの名無しさんNGNG
やっぱりJSPかなぁ。自作のHTMLライブラリで、
構築しているが、デザイン変更すんの面倒だからなぁ。
HTLMテンプレート利用すんのじゃだめ?
DB接続もSQLで陽にコントロールできるし楽だと
おもうんだがなぁ。
0309デフォルトの名無しさんNGNG
JSPとXML+XSLTって相性悪くない?そんなことない?
両方を一度に使うのってありえるのかな?
表示に関する処理をやらせるって考えるなら、
xalanなんかの処理をJSPの中でやることになるけど、
なんだかなぁ。。。
0310デフォルトの名無しさんNGNG
>>301
話それるけど、ちゃんとimplements Serializable
しようよ。
>>302
<% out.print(emp.getName()); %> じゃなくて、
<%= emp.getName() %> でしょ、ふつう。
0311デフォルトの名無しさんNGNG
>>309
条件入力のフォームはJSPで検索結果はXML+XSLT、って感じで使ったことはあるけど
両方同時にってのは無いなあ。
0312デフォルトの名無しさんNGNG
>>297
結果が200行程度ならServlet側でDBとの接続は完結しといた方がいいと思われ。
DWHのフロントエンド作るとかならいろいろ考えるところだが。
0313デフォルトの名無しさんNGNG
>310
ObjectOutputStreamにする気はないんですが
implements Serializable
すると何かいいことあるんでしょうか?
サーブレットの本とかでよくimplementsしてるんですが、
いまだに理由がわかりません

<%= emp.getName() %>
確かにそうですね。ありがとうございます!
0314デフォルトの名無しさんNGNG
>>313

>implements Serializable
>すると何かいいことあるんでしょうか?

永続化できる。
0315デフォルトの名無しさんNGNG
<SELECT name="hoge">
の値をservletで
request.getParameter("hoge");
すると選択されている値でなくて、
選択されている値の順番が出てしまいます。
値を受け取るにはどうすればいいのでしょうか?
0316デフォルトの名無しさんNGNG
>>315 <OPTION> タグに VALUE 属性付けてないだろ。
HTML の入門書嫁。
0317デフォルトの名無しさんNGNG
>>315
順番ってなに?
0318デフォルトの名無しさんNGNG
>316
valueに番号が入っていました。
大変失礼しました
0319デフォルトの名無しさんNGNG
はずかしいなぁ、もう。ってネタか。。。

ところでJakarta関連のツール、みんな使いこなしてる?
おれ、Antぐらいしか使ってないんだけど他のものはどうなんだろう
0320310NGNG
>>313
Beanをsessionに格納するときに、Serializableにして
永続化できるようにしておかないと、クラスタを組んでる
場合や、DBにセッション情報を持たせるようにした場合に
正しく動作しなくなります。

世の中に出回ってる書籍や雑誌の例では、Serializable
にしてないものも多いので注意しましょう。
0321デフォルトの名無しさんNGNG
なるほど
sessionに入れるものが絡んでくるんですね
昨日いろいろSerializableの理由を考えていて、
APサーバーと関係があるのはなんとなくわかったのですが。
これですっきりしました
0322名無しさんNGNG
>>313
>>314も分かってないから安心しろ。
0323≠314NGNG
>>322 言ってる事は正しいと思うが...
ひょっとしてセッションを恒久化できると読んだ?
そういえば知らない人が見たらそう読めるかも。
0324デフォルトの名無しさんNGNG
>>323
マシンが分散していない場合にもSerializableは意味があるのでしょうか?
0325デフォルトの名無しさんNGNG
再起動がかかった時、処理中のセッションをファイルなどに保存して
おいて、起動完了後に復元するサーブレットエンジンがあるよ。
ってうろ覚えだけど JRun がやってたような気がする。
0326デフォルトの名無しさんNGNG
うわぁぁ
誰が正しいこといってるのかわからなくなってきた

325さんのいってることが真実っぽい気が

Webサーバの機能もしらないといかんですね。
調べてきます
0327デフォルトの名無しさんNGNG
javax.servlet.Filterってかなり良さそうなんだけど、
tomcatが未だにservlet2.2までしか対応してない。。。

いつになったらtomcat4は正式リリースなんだ、ゴルァ!
0328320NGNG
>>326
例えば、
http://www.beasys.co.jp/e-docs/wls60e/cluster/servlet.html#391123
を読もう。

> セッション データはシリアライズ可能でなければならない
>
> HTTP セッション ステートのインメモリ レプリケーションを
> サポートするには、すべてのサーブレットと JSP のセッション
> データがシリアライズ可能でなければなりません。
> サーブレットまたは JSP でシリアライズ可能なオブジェクト
> と不可能なオブジェクトが組み合わせて使用される場合、
> WebLogic Server ではセッション ステートがレプリケート
> されません。
0329デフォルトの名無しさんNGNG
要するに、「サーバが、場合によってはストレージに
そのクラスのテンポラリの永続化インスタンス作るか
もしれないから、作れるようにSerializableしとけ」

ってことですね。
0330320NGNG
あと、こことか。
http://www.beasys.co.jp/e-docs/wls60e/servlet/progtasks.html#929826

> シリアライズ可能な属性値の使い方
>
> 永続セッションを使用する場合、セッションに追加するすべての
> 属性 value オブジェクトは java.io.Serializable を実装する
> 必要があります。
0331320NGNG
あ、入れ違い。
>>329
そういうことです。
0332デフォルトの名無しさんNGNG
servlet JSP DBによる開発もなんとなくできてきたので、
EJBも勉強したいと思ってます。
個人でやるので開発環境自体にお金をかけずに勉強したいのですが、
やはりJBuilder+InplizeApplicationServer+Oracleが王道でしょうか?
WebSphere+VisualAgeだとVisualAgeにクラス数の制限があって
機能追加ができませんでした
0333名無しNGNG
jbossじゃだめなの?
0334デフォルトの名無しさんNGNG
EJBを勉強するならWebLogicがいいんじゃないの。
最新EJB仕様への対応が一番早いし。

評価版は同時コネクション数以外は制限も無い。
0335デフォルトの名無しさんNGNG
ネームサーバってクライアントと別マシンでも当然OKなんでしょうが、
別マシンにあるネームサーバのデータソースってどうやって見に行くんですか?

ctx.lookup("データソース");
だと同一マシンしか見に行け無そうな感じですが・・・
0336デフォルトの名無しさんNGNG
>>335
InitialContextのコンストラクタでPROVIDER_URL
を明示的に指定すればOK。

…という話ではなくて?
0337デフォルトの名無しさんNGNG
>336
とういう話でした。
今日チュートリアルを読んでみてわかりました。
0338デフォルトの名無しさんNGNG
サーブレットからブラウザを起動させる
よい方法はないですか?
0339デフォルトの名無しさんNGNG
>>338 ええっと... (藁
サーブレットを呼び出すのはブラウザじゃないですか?
0340339NGNG
>>338 それともこういうこと?

protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
{
  Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE");
  ...
  return;
}
0341338NGNG
>>340
そんな感じです。
それを、Runtimeを使わずに
やりたいんですよ。
0342339NGNG
>>341 ネタだったんだが... やりたいことがまったく分からん。
まず、何をどうしたらどうなって欲しいか説明せれ。
クライアント側のブラウザでサーブレットを起動したときに、
サーバ側のブラウザを起動したいのか?
0343デフォルトの名無しさんNGNG
勉強中なんでDQNな質問かもしれないですが
sendRedirect(url)したURLがない場合どういう感じで
sendErrorにもってけばいいのでしょうか
try〜catchでは駄目でした
0344デフォルトの名無しさんNGNG
sendRedirectしたら、先のURLが存在するかどうかなんて
わからないのでは。単にブラウザにREDIRECTレスポンスを
返すだけだから。

sendRedirectの前にRequestDispatcherを取得してみるとか。
リダイレクト先が同じサーバのときに限られますが。
0345デフォルトの名無しさんNGNG
>>344
そうなんですか。sendError(response.SC_NOT_FOUND,"no")みたい
なのはどういう時に使うのかな、と思っていたもので。sendRedirect
に渡すパラメータがおかしい時に使うぐらいですかね。どうもでした。
0346344NGNG
>>345
えと、response.sendError(response.SC_NOT_FOUND)は、
例えばforwardしようとしたけど、RequestDispatcherが
取得できなかったときとかに使えます。

forwardとredirectの違いとかは、お分かりですよね?
0347デフォルトの名無しさんNGNG
>>346
なるほどどうもです。ステータスコードのところで2つとも
出てくるのでワンセットで使うもんだと思ってました<sendRedirect、sendError

redirectはクライアントにそのまま行っちゃうので無理なんですよね
0348デフォルトの名無しさんNGNG
J2EEについてくるJ2EEサーバーってどうやってとめるんですか?

スタートさせるバッチはあるんですが、とめるバッチがないような・・
マニュアル見てみたんですがなぜか記述が見つからなかったです
0349デフォルトの名無しさんNGNG
>>319
JMeterを使おうかと考えてる。
strutsなんかも楽しそうだね。
0350デフォルトの名無しさんNGNG
>>348
Ctrl-C
0351デフォルトの名無しさんNGNG
>350
まじっすか!
0352デフォルトの名無しさんNGNG
よにサーブレット本はかずあれど、
基本的なAPIの使い方で終わっていて
ECサイトを構築するのに役に立つ実践的な本って少ない気がします。
DBからJSPへのデータの渡し方とか、エラー処理の方法とか、
痒いとこに手が届く本ないものでしょうか?

やっぱいり経験がものを言うってことでしょうか?
0353デフォルトの名無しさんNGNG
>>352
Blueprintsを読もう。
ってあんまり読みやすくないし、内容も懲りすぎだけど。
0354デフォルトの名無しさんNGNG
Blueprints読んでます。
英語は別になれてるんでいいんですが、
よく上手くいかなくなり鬱になります

J2EEサーバーでの勉強はすごい面倒ですね

サーブレットの開発やってると特定のAPPSERVERまわりの
環境に慣れてしまって、ほかの環境にでたくなりますね
0355デフォルトの名無しさんNGNG
>>354
それはありますね。

API知ってる以上に特定製品の設定運用方法、バグの知識が
重要で。そこらへん、SQL知ってるだけではどうしようも
ないDBと一緒かな。

私はOracleばかりだったから、いまさらSQLServerだのDB2
だのは避けたいし。もう覚えるのいや...
0356デフォルトの名無しさんNGNG
>>352 そう言う情報は Java Press とか Java World とか言った雑誌のほうが
載ってる。
0357デフォルトの名無しさんNGNG
もうだいぶ、Servletもひろまったので、自作の開発
セット(たいしたもんではないよ)を公開しようと
おもうんだけど、需要ありますでしょうか?
とりあえず実用では使えているけど、いろいろ意見
ききたいところもあるので。
0358デフォルトの名無しさんNGNG
私の仕事で使ってもいいですか?
0359357NGNG
いいけど、JSPとはまるっきり違うから、どれくらい使えるか...
もうちょっと手直しして、公開します。生成ツールはwin版のみっす。
0360デフォルトの名無しさんNGNG
はぁ〜EJBうまくうごかないっす。

どっかに「できる!EJB」うってないかなぁ
0361デフォルトの名無しさんNGNG
>>352-356

Blueprints は邦訳書籍が既に出とる。
ただし、内容はJPS1.0.1 で、1.1.1以降のソースと
一致しとらんが…

>>357
EJB部分を除いたMVCモデル2を基にしたフレームワークが、
Jakarta から Struts として出てるので…
健闘を期待する。
0362デフォルトの名無しさんNGNG

鳩サブレーってどういう使い方するんですか?
0363デフォルトの名無しさんNGNG
>>362
余り親しくない人へのおみやげに使ってる。
0364デフォルトの名無しさんNGNG
>>362
あ、なんかタイトルにもらってもいいすか(w
0365デフォルトの名無しさんNGNG
おいしいので自分で食べちゃう
0366デフォルトの名無しさんNGNG
webアプリ開発初心者です
JBuilderをつかって開発する時、普通InternetBeansExpressっていうのは使うものでしょうか?
ちなみにDBはPostogreSQLを使っています。
いまのところInternetBeansExpressを使わずにFORM+jsp+servlet+jdbcだけで開発して
います。
0367デフォルトの名無しさんNGNG
winで勉強しているのですが
Class.forName(driver) もしくは System.setProperty("jdbc.drivers",driver)
のところでSQLExceptionではじかれます。ローカルのswingアプリだとうまく動くので
この文はあっていると思うのですがサーブレットだと他になにかする事があるのでしょうか?
ちなみにAccessのjdbc-odbcを使っているのでそれがいけないのでしょうか?
0368デフォルトの名無しさんNGNG
TOMCATで詳細なログを取得する方法はあるのでしょうか。
ブラウザからTOMCATにアクセスしてServletを動かす度に、
その情報をログに出力したいです。
そのときに、どのディレクトリのどのCLASSファイルが
要求されたかという情報があると嬉しいです。

それから、ログ取得の設定方法について、
分かりやすいWebページをご存知の方は、
教えてもらえないでしょうか。
0369デフォルトの名無しさんNGNG
TOMCATで詳細なログを取得する方法はあるのでしょうか。
ブラウザからTOMCATにアクセスしてServletを動かす度に、
その情報をログに出力したいです。
そのときに、どのディレクトリのどのCLASSファイルが
要求されたかという情報があると嬉しいです。

それから、ログ取得の設定方法について、
分かりやすいWebページをご存知の方は、
教えてもらえないでしょうか。
0370デフォルトの名無しさんNGNG
>>369
そうやってマルチポストしていると、
Jハウスのアドレスばらしちゃうよ
0371デフォルトの名無しさんNGNG
DBの検索結果をJSPに表示するときって、
ResultSetをJSPに渡して、JSP側でループさせるのって
いいのでしょうか?
実装する人がうっかりJSP側でResultSetを閉じ忘れてしまうのが
怖いので、DB接続するBeanでResultSetをループさせる
機能をラップして、finallyで閉じるって実装にしようと思うのですがどうでしょうか?
0372デフォルトの名無しさんNGNG
>>371
表示させる分だけListか配列に入れてJSPに渡すか、
Beanに保持させてgetXXX(int index)メソッドで
アクセスするようにする。

ResultSetはさっさと閉じよう。
0373デフォルトの名無しさんNGNG
CachedRowSetを使用したく
<%@ page import="java.sql.*,javax.sql.*,sun.jdbc.rowset.*" %>
<jsp:useBean id="crs" class="CachedRowSet" scope="session">
とやったところ
javax.servlet.ServletException: Cannot create bean of class CachedRowSet
が出て進まないのですがどういうことでしょうか?
先ほどクラスパス忘れの時は違う例外でしたのでパスはとおっていると
思います。
0374デフォルトの名無しさんNGNG
try{
request.setAttribute("resultSet", resultSet);
request.getRequestDispatcher("/a.jsp").forward(request, response);
} finally {
resultSet.close();
connection.close();
}

基本的に >>372 に同意するが、上記のようにすれば JSP 側でクローズ
を意識させるさせる必要はない。
0375372NGNG
>>374
いま環境がないので試せないのですが...

JDKのドキュメントを見る限り、Connectionをクローズすると
Statement、ResultSetともに破棄されるという「定義」のよう
に読めます。

実際には動いたとしてもちょっときわどいやり方なのでは。
0376372NGNG
>>374
ああ、ごめんなさい。resultSet.close()も明示的に
してるんですね。

だとしたら、なおさらまずいのでは。close()したあとに
ResultSetの中身を取得できるなんて、誰も保証できない
と思いますが。
0377373NGNG
あの〜どなたかCachedRowSetについて教えていただけると嬉しいんですが・・
Cannot create bean of class CachedRowSet
ってBeanで引数無しのコンストラクタがなかった時にたまに出てくる例外
なんですけどそれとは違いますよね・・まさかコンストラクタオーバーライド
するわけじゃないと思うから・・この例外ってあとどんな時に出てくるのでしょうか?
0378372NGNG
class="CachedRowSet"のクラス名をパッケージ名まで
入れればすむと言う問題だったりしませんか。
0379デフォルトの名無しさんNGNG
>>376 何を言っているのか良く分からんのだが、JSP に ResultSet
渡して何かを表示させた後、さらにその ResultSet から何かを取り
出そうといているのか?
0380376NGNG
>>379
なんか寝ぼけてて論点をはずしまくりました。すみません。

forwardしてJSPが表示された後にfinallyが実行される
のって保証できるんでしょうか? includeならともかく。
さきにResultSetがcloseされちゃう可能性がある気が
したんですが。

…sendRedirectと違ってforwardは大丈夫なのかな?
環境ないので試せない。
0381デフォルトの名無しさんNGNG
RSの結果をコレクションに入れるのって、メモリと速度食いませんか?
Vectorの2元配列(?)になるわけですよね
0382デフォルトの名無しさんNGNG
frowardしたインスタンスってJSP側では
<JSP:useBean
と
<jsp:getProperty name="
の組み合わせでしか使えないんじゃないの?
だからResuletSetはforwardできないと思うが?
0383デフォルトの名無しさんNGNG
>>380 JSP 内で発生したエラーは ServletException として forward
元のサーブレットに通知されなきゃいけないから保証される。JSP側で
起こした例外のスタックトレースじっくり見てよく考えれ (forward に
関してこういう勘違いしている奴多い...)

>>382 その根拠が不明だが ResultSet は Bean じゃないので <% %>
で十分だろう。
0384デフォルトの名無しさんNGNG
servletからJSPにインスタンスを渡すのって、
sessionを使うのはだめかな?

ケースバイケースなんだろうけど
0385名無しさん@EmacsNGNG
>>377
jsp の useBean で使うクラスにはデフォルトコンストラクタが必要。
なぜなら jsp の呼び出し元が request/session にその値を詰めてない場合に
デフォルトコンストラクタで代替のオブジェクトを生成するから。

useBean を使わないで <% %> 内で明示的にオブジェクトを取りだせば問題なし。

という話題ですか?
0386デフォルトの名無しさんNGNG
>>384 そのやり方だと、データベースとの接続を HTTP セッション
持続中ずっと保持したままにしておかなければならないぞ。セッショ
ンタイムアウトは大抵 30 分くらいなので、何度もブラウザ上げ下げ
してページ表示されたら、そのうちデータベースと接続できなくなる
だろう。

>>385 そうそう。「<% %> を使い始めると JSP が汚くなってやだ」
というんだったら拡張タグライブラリ作るとよい。商用 AP サーバ
は大抵 JSP から直接 SQL 発行して結果表示できるような拡張タグ
ライブラリを作ってる (<sql:select ... /> みたいな感じのやつ)。
0387386NGNG
>>385 すまん、ResultSet JSP 渡しの話と間違えた。
0388デフォルトの名無しさんNGNG
>386
finallyでコネクション切っちゃえばいいのでわ?
0389376NGNG
>>383
なるほど。

だとすると、forwardとincludeの本質的な違いはレスポンスが
コミットされるかどうかだけなのかな?

includeでは呼ばれた側でステータスを変えられない、とか
forward時にレスポンスバッファがクリアされる、というのは
利用方法を考慮してあえてそういう仕様にしたというだけで。
0390383NGNG
>>388 ん? リクエストのたびに finally で切断してしまったら
セッションに ResultSet 入れておく意味がないのでは。ResultSet
自体 Serializable じゃないのでクラスタリングに対応出来ないし。

>>389 たいていオイラはそんな感じで使い分けてる。コンテンツ
の一部分を別のサーブレット/JSP に任せたい場合は include、
完全に任せたい場合は forward みたいな。

ResultSet に関しては並行して話が進んでる RowSet 使って
みるのもいいね。
0391373NGNG
>>378
感謝です。ズバリでした。ていうか
<%@ page import="sun.jdbc.rowset.*" %>
とimportしてるのになぜsun.jdbc.rowset.CachedRowSetと明示しなければ
ならないのでしょうか。常識ですか?
0392イナジNGNG
JavaServletを始めました。
classと同じディレクトリにあるローカルファイルを読み書きしようとしてもFileNotFoundExceptionがエラーとしてでてきます。
ファイルの読み書きはどうしたらできるんですか?
ちなみに書き方は、new BufferedReader(new FileReader("list.dat")) って感じです。
0393デフォルトの名無しさんNGNG
>>392 一度 new FileWriter("itteyosi.dat") とやって
どこにファイルが作成されるか探してみるがいい。
0394イナジNGNG
ありがとうございました。
ユーザのディレクトリにできてました。
Javaはけっこう面白いですねぇ。
0395デフォルトの名無しさんNGNG
それよかカレントディレクトリ取得した方が早い
0396イナジNGNG
あ、classの置いてある場所ですか?
なるほど。
0397378NGNG
>>391
JSPをコンパイルして生成されたJavaコードを見てみれば、
useBeanタグはjava.beans.Beans.instantiates()で
Beanをインスタンス化するコードになってると思います。
クラス名は文字列で指定するのでimportは効きません。

JSP仕様でも、classには「fully qualifiedなクラス名」
を指定することになってます。
> The fully qualified name of the class that defines
> the implementation of the object. The class name
> is case sensitive.
0398無能な姦理人@Shiri-QNGNG
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□





続きはコチラです
http://www.geocities.com/entry_k/main/main01.html
0399デフォルトの名無しさんNGNG
↑割れ物屋のCM
0400デフォルトの名無しさんNGNG
400!
0401373NGNG
>>397
非常にサンキューです。
「JSPによるweb開発」っていう本で勉強してるんですが鵜呑みにしすぎてたみたい
です。正誤表にもなかったし。win98なんだけどこの環境だけとかいうわけじゃない
よね。
0402373NGNG
ってことはbeanに関してはjspでimportは関係ないってことですね
ここはよく見ればservletスレですねsage
0403デフォルトの名無しさんNGNG
WebLogic ってフリーのお試し版ありましたっけ?
買うとしたらどこで買えていくらくらいするモンですか?
0404デフォルトの名無しさんNGNG
評価版はこちら
http://www.beasys.co.jp/evaluation/index.html

買いたい時はBEAの営業に電話しませう。

価格はあなたの会社の購買力/交渉力によって
異なりますが、1CPUで200〜300万ぐらいかな^^
0405デフォルトの名無しさんNGNG
WinXPのJava排除やC#が騒がれてますけど、Appletは逝ってよし
として、Servlet,JSP等サーバサイトのJavaの地位は今後どうなる
と思いますか?
勉強してる方にとっては不安なので。すれ違いなら申し訳無いけど、
荒れていないここで聞きたかったので。
sage
0406デフォルトの名無しさんNGNG
>>405 企業はサーバサイド市場取れるとかなりおいしいからね〜。
流動的な業界だからなんとも言えんが、JDK1.4 でサーバサイド
向け機能がかなり強化されたのでまだ大丈夫だと思う。個人的に
あと5年くらいは Java で飯が食えそう。
0407デフォルトの名無しさんNGNG
>>404 ガーン 個人サーバには高すぎますね... 個人レベルのアプリ
ケーションサーバ (少なくともコネクションプーリングが出来る奴)
ってないでしょうか?
0408405NGNG
>>406 解答ありがとうございます。
今大学3回生で、サーバサイトJavaの勉強してるんですけど、
Javaの勉強は役に立ちますか?今からやるならC#の勉強した
ほうがいいんですか?それとも、Java、しいてはオブジェクト指向を
しっかり勉強し、身に付けておけばとけばすんなりC#にも
入れるものなんですかね?
ほんと、スレ違いで申し訳ないですが。
0409デフォルトの名無しさんNGNG
C#はJavaのパクリなんでJavaしっかりやっておけばたぶん大丈夫
いろんな言語に中途半端に手出すより1言語深くやっておく方が良い。
0410デフォルトの名無しさんNGNG
サーバー側で生成したcsvファイルをダウロードする方法ですが、
ファイルを一度サーバに保存せず、直接クライアントに送ることはできますか?
クライアント側はHTMLプロトコルのみです。

とりあえずはファイルを作成して、そのファイルにリダイレクトしてしまってます。
response.setContentType("text/comma-separated-values");
response.setHeader("Content-Disposition","attachment; filename=" + fileName + ".csv" );
ServletContext ctx = getServletContext();
ctx.getRequestDispatcher("/download/" + fileName + ".csv").forward(request, response);
0411デフォルトの名無しさんNGNG
>>410
HttpServletResponse から getOutputStream()
でOutputStreamとりだして直接データを流し込め
0412デフォルトの名無しさんNGNG
サーブレットからJSPにリクエストをフォワードしたいのですが、
このときって相対パスは使えますか?
0413デフォルトの名無しさんNGNG
>>412
http://java.sun.com/j2ee/tutorial/doc/Servlets9.html#70965
http://java.sun.com/j2ee/tutorial/api/javax/servlet/ServletRequest.html#getRequestDispatcher(java.lang.String)
0414デフォルトの名無しさんNGNG
>>407
Enhydra Enterpriseとかは?
@ITに記事あったが。
Resinは商用ではフリーでなかった気がする。
0415デフォルトの名無しさんNGNG
Tomcat のアプリケーションサーバ化計画とかなかったっけ?
オイラの脳内計画だったかも...
0416408NGNG
>>409 レス、ありがとうございます。これでもやもやが晴れました。
とりあえず、コア・サーブレットという本を一冊終わらせようと
思います。
あと、XMLとの連帯も学校の課題で出てるので、勉強しようと
思います。
どうも、ありがとうございました。
0417デフォルトの名無しさんNGNG
ここにきて、3冊新刊が出ましたね。
サーブレット/JSPプログラミングテクニック ソフトバンク 三島俊司
Core JSP    ピアソン・エデュケーション
基礎からわかるサーバー・サイトJava  日経BP社 樋口研究室

それぞれ買った人レビューきぼーん
僕適には今までのベストな本はコアサーブレット&JSPだと
思うんだけど、それとの違いとかも、あれば。

立ち読みした感じでは、サーブレット/JSPプログラミングテクニック
がかなりいい感じだったなあ。Tomcatのインストール等から、かなり
詳細書いてたし。昨日本屋行ったときは金無かったけど、
今度買う予定
0418デフォルトの名無しさんNGNG
すんませーん。
tomcat-apacheで家で勉強してるものなんですが
今までうまく動いていたのにurl指定しても
HTTPエラー404を出してしまうようになってしまいました。
理由としてはどのような事が考えられますでしょうか?
環境は特に変えていないし・・
一つだけ言えばWinMXでエロ洋画を落としてきた事・・
まさかーいやだーそんなことー
0419uiNGNG
それだ!!
0420デフォルトの名無しさんNGNG
コネクションプーリングを行ってるDBBeanの
コネクションインスタンスってstaticにして、
毎回データソースを探しに行かないほうが速いですか?
Servletだとinitでデータソースを探す処理をしているので、
普通のクラスでもそうしたほうがいいのかと
0421デフォルトの名無しさんNGNG
デバックの時に標準出力にSQL文を吐き出すようにしているのですが、
出したくないときにコメントアウトするのが面倒です。
一括で出す、出さないの切り替えをする方法ありますか?
0422デフォルトの名無しさんNGNG
log4j
0423ResinユーザーNGNG
基本的な質問ですみません。
CGI(C言語でコンパイル)と、サーブレットってどっちが速いんですか?
0424デフォルトの名無しさんNGNG
サーブレットの方が全然はやい。
0425デフォルトの名無しさんNGNG
どのような点で違いが生じるのですか?
0426デフォルトの名無しさんNGNG
大した違いなんてありません。両方使ってみて、好きな方を採用してください。>425
0427デフォルトの名無しさんNGNG
jspでbeanを使う時beanのclassにはどのように入れたらいいのでしょうか?
tomcatを使っていて
C:\tomcat\webapps\ROOT\jsp        に Test.jsp
C:\tomcat\webapps\ROOT\WEB-INF\classes に TestBean.class
がありますので
<jsp:useBean id="test" class="TestBean"/> 又は
<jsp:useBean id="test" class="servlet.TestBean"/>
と指定しましたがどちらもTestBeanが見つからないとなってしまいます。
0428デフォルトの名無しさんNGNG
>>421
標準出力を殺したかったら処理の最初 (main() の直後?) で下の呪文唱えれ。

Win : System.setOut(new PrintStream(new FileOutputStream("nul")));
Unix: System.setOut(new PrintStream(new FileOutputStream("/dev/nul")));

本トは出力を全て無視する OutputStream を自分で作って setOut するほうが
スマートなのだが、コードが長くなるので簡単な方法。

>>420
「DBBean」とか「Servletはinitでデータソースを探す」とか
君はいったい何の話をしているのだ?
0429デフォルトの名無しさんNGNG
doGetでthrowsされた例外はどこに投げられるんですか?
呼び出しもとのブラウザ?
0430デフォルトの名無しさんNGNG
>>429
ソースコードを読んだら?
ってサーブレットのソースコードって公開してるの?
0431デフォルトの名無しさんNGNG
>>421
if( common.debugmode ){
   system.out.println("XXXXX");
}
ってやっておいて、common.javaでboolean debugmode=false;
とするとここがコンパイルされないよ。常に否定
だとコードにならないんだね。
0432デフォルトの名無しさんNGNG
>>431
いや、どこかの板で見たがコードとして展開されると言う話だったぞ。
0433dNGNG
さっきサーブレットの本かってきて、設定。
ネコの画面でてきたけども、それからなにしよう?
なにができるのでしょうか?
超初心者でスミマセン・・・
0434デフォルトの名無しさんNGNG
>>433 サゲながら聞くなって
ある意味技術屋のジレンマだな。サーブレットも EJB もデータベースも
JSP も完璧です、でもコンテンツがありません、というやつか。とりあえず
i-mode 用のサイト (i-appli じゃなくて) でも作れば?
0435デフォルトの名無しさんNGNG
>>429
大抵はサーブレットエンジンが拾ってエラーページ返しログに記録する。

>>430
サーブレットで公開されているのはインターフェースだけ。実装はベンダが
好きに出来るので公開されていないのが普通 (オープンソースな Tomcat は
別として)。
0436デフォルトの名無しさんNGNG
既出っぽいけど、サーブレット本って何がお勧め?
今もってる原田さんの本(サーブレットのみ)がそろそる
古くなってきたし、JSP、JDBC、EJBまわりも
カバーした本が手元にほしいんだけど

IBMプラットフォームになっちゃうけど
樋口研究所の本がかなりいい感じ
あとコアサーブレット&JSPかなぁ
入門から一歩すすんだ本ってなかなかないね
0437finalNGNG
サーブレットやるにあたって、XMLの知識は必須ですか?
0438デフォルトの名無しさんNGNG
XML にたいした知識なんぞいらん。
0439デフォルトの名無しさんNGNG
HTMLしか書けません。XMLを書けるようになるには
時間がかかるでしょうか?
0440デフォルトの名無しさんNGNG
手で書くもんじゃないでしょ
0441finalNGNG
ワタシはHTMLもろくにわかりませぬ
0442デフォルトの名無しさんNGNG
XML で難しいのは書き方より意味付けでしょ。書くだけなら HTML
使えりゃ十分。つって web.xml の書き方は DTD で公開されてる
から DTD やりなはれ。
0443huNGNG
あげじゃあ
0444TT.netNGNG
あむげむ
0445デフォルトの名無しさんNGNG
さげアンパン
0446えNGNG
あっげえええ
0447名無しNGNG
ageましょう
0448デフォルトの名無しさんNGNG
Tomcat3.2.3 で webapps の下にディレクトリ

app
app/WEB-INF
app/WEB-INF/classes
app/WEB-INF/lib

を作って、classes に HelloWorld なサーブレットを置いたんだけど、
Not Found になってしまいます。conf/server.xml に examples と
同じように app で追加してもだめだし、何か設定が足りないのでしょうか?
0449デフォルトの名無しさんNGNG
apacheとの連携は?
0450448NGNG
してます。
一応、examples 以下のサンプルは動いてます。
自作サーブレットも examples 以下では動いてます。
0451デフォルトの名無しさんNGNG
URLヘッダーのパラメータにスペースを入れたいんだけどどうすればいいの?
http://localhost/servlet/Test?name=abc def&age=16
って感じで入力するとスペースのところに勝手に&が入ってしまいます
0452名無しさん@MZ-2000NGNG
>>451
+ か %20 を使え。 変数値をパラメータに使うなら URLEncoder
を使え。
0453デフォルトの名無しさんNGNG
java.net.URLEncoder.encode()
を使え。
0454デフォルトの名無しさんNGNG
どうもこのスレの質問は一部のエキスパート達により一言で
片付けられてしまっているというのが (いや、それはそれで
良い事なのだが)、よく沈んでしまう原因な気がする...。
質問者と解答者の格差が激しすぎるというかなんと言うか...。
0455デフォルトの名無しさんNGNG
>>454
うぜえんだよ。Java-Houseに行ってろ。
0456デフォルトの名無しさんNGNG
win2000+Tomcat3.2.3+Apache1.20という環境でやってるんですが、
Tomcat起動時や、終了時に青画面にかなりの確立で出くわします。
フィジカルメモリなんちゃらとかいうやつで、アクセスしちゃいけない所
にアクセスしてるのかな?う〜〜ん、困った。
サービスパック2は入れてます。
同じ症状だった人いますか?解決策はあるんでしょうか?
再インストール?めんどくせえ・・・
0457デフォルトの名無しさんNGNG
>>456
しらんけど、ATOKにして見るとか(w
0458デフォルトの名無しさんNGNG
>>456 JDK のバージョンは何使ってる?
昔 1_3_002 だったかの組み合わせで似たようなことが起こった
覚えがある。
0459デフォルトの名無しさんNGNG
特定本の事で恐縮なんですが皆さん持っている人が多そうなので
きかせていただきます。コアサーブレット&JSPの最後のほうに
接続プールのクラスが載っていて勉強になりました。Runnable
をimplementsしてあってrun()でコネクション確立って感じなんで
すがここで疑問があります。サーブレットって接続ごとにスレッド
で動作してると思うんですが接続プールクラスでなぜプログラム
レベルでスレッド作成しているのでしょうか?Vectorのように同期
するオブジェクトを使えばコンテナレベルでのスレッドで充分なので
はないでしょうか?勘違い野郎だったら大変スマソ
0460456NGNG
JDKは、1.3.1です。一応、動作はするんですけどねえ、かなり不安定。
Tomcatを起動させてない時は、青画面に出くわす事は無いので、
Winodows自体がヤバイというのでは無さそうですが・・
>>457 さんはその後解決されたんですか?
>>458 すいません、厨房なので意味が解らないです・・・
IME2000を使ってるんですけど、何か関係が??
0461456NGNG
あ、上の書き込み >>457 さんと >>458 さん
が逆になってしまいました。
鬱だ・・
0462458NGNG
オイラん時の症状はどうも HotSpot が悪さをしているようだった。
特に 1.3 じゃ無きゃだめという理由も無かったので 1.2 に戻して
事なきを得た。set JAVA_COMPILER=NONE とかやって JIT 無効に
してみたら?
0463初NGNG
サーブレットで、一番初心者むけな書籍はなんでしょうか?
0464456NGNG
>> 458 レス、ありがとうございます。
あの後、色々試したんですが、管理ツール→サービスからTomcat
を起動させる限りでは、トラブルは無いようです。
コマンドプロンプトから立ち上げたり、停止させると、かなり不安定
みたいです。
詳細は謎なんですが・・しばらくこれで頑張ろうと思います。

>> 463 僕もまだ初心者ですが、色々読んだ結果、最近出た
サーブレット/JSP プログラミングテクニック 三島俊司
SOFTBANKが一番解りやすかったです。
なにより、インストールの手順の詳細が書かれているのが
良かったです。他の本では、Hello Worldに達するまでの
説明がかなり少ないので、それを拝むまでが大変です。

ただ、僕も全ての本を読んだわけでは無いので、あくまで
一個人の意見として捕らえて下さい。

あ、ちなみにアップレットにしろ、何にしろ、Java自体の経験は
ありますよね?それが無くていきなりサーブレットはきついので
もし経験なければアップット等から入る事をお勧めします
0465デフォルトの名無しさんNGNG
web製作板で答えが返ってこなかったので・・・。

JSPを使ってhtmlを生成させています。
右クリック→プロパティで其のページのサイズ(バイト数)を
取得しようとしているのですが、「使用不可」と表示されてしまいます。
ちなみに、IE、NN共に問題なく表示され、動作にも問題ありません。
一体、どのような原因が考えられるのでしょうか?
0466デフォルトの名無しさんNGNG
>>465
どのアプリでなにをクリックしたのかすら書いてないぞ
0467デフォルトの名無しさんNGNG
>>466
失礼しました。
IEで表示されたJSPファイルを右クリックです。
0468デフォルトの名無しさんNGNG
Content-length: ヘッダがないだけじゃないの?
0469デフォルトの名無しさんNGNG
>>468
Content-lengthヘッダを受け取ったページがそのような症状に
見舞われるのです。また、設定もしてないのにno-cacheに
なってしまいます。この問題はIE5.0sp1では確認できず、IE5.5sp1
では確認できました。

なんなんでしょうか一体・・・。どうやってお客に説明すれば
いいのか・・・。
0470デフォルトの名無しさんNGNG
out.close(); してないとか?違うか
0471デフォルトの名無しさんNGNG
ってJSPって書いてあんじゃん。ごめん
0472厨房学生NGNG
>>427
jspの中でBeanを使おうとする場合
<jsp:useBean hogehoge class="foo.TestBean"/>
などのようにしてBeanで使おうとするクラスファイル
は何らかのパッケージにしないと自分の環境では動かなかった
この場合ではTestBean.class は
hogehoge/WEB-INF/classes/foo/TestBean.class
におけばいいと思う。
0473デフォルトの名無しさんNGNG
Linux で Tomcat 3.2.3 を使用しています。インストールも設定も問題なく
行きましたが、Tomcat を立ち上げて ps aux すると java が 30プロセス強
起動します。特に動作に問題があるわけではありませんが、Linux 上の
Tomcat or Java はこういうものなのでしょうか?
JDK は java full version "J2RE 1.3.0 IBM build cx130-20010626" を
使用しています。
0474仕様です。NGNG
>>473
サーブレットの利点や動作状況を
もう一度見直してみるのがよいかと
その30プロセスがあるから
負荷が減少するのでは。
0475デフォルトの名無しさんNGNG
>>473
俺も同じ JDK 使ってるけど、以下のプログラムをバックグラウンドで
実行しても 5 プロセス発生するんだよね。

public class b{
  public static void main(String[] args) throws Exception{
    Thread.sleep(10000);
    return;
  }
}
--------
% javac b.java
% java b &
[1] 17093
% ps aux
xxx 16701 0.0 0.6 2428 1472 pts/0 S Aug08 0:00 -tcsh
xxx 17093 79.0 2.4 81268 6060 pts/0 S 03:17 0:01 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17102 1.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17103 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17104 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17105 0.0 2.4 81268 6060 pts/0 S 03:17 0:00 /usr/local/java/IBMJava2-13/jre/bin/exe/java b
xxx 17106 0.0 0.4 2612 1024 pts/0 R 03:17 0:00 ps aux
0476475NGNG
>>474
Tomcat は Apache のように子プロセスをフォークしているわけ
じゃないよ。
0477デフォルトの名無しさんNGNG
毎度コンパイルして確認するのが大変・・・
甘い?・・・なんかいい方法は無いものか・・・
0478デフォルトの名無しさんNGNG
>>477 バッチファイルの書き方覚えれ。
0479デフォルトの名無しさんNGNG
>>477
ant
0480デフォルトの名無しさんNGNG
>>473, >>475 これのことか? 調べてみて知ったんだが Linux
ってスレッドを1プロセス内で起こせないのか? それってパ
フォーマンス的にどーなんよ?

http://www-6.ibm.com/jp/developerworks/linux/java2.html

> Unix のその他の実装 (AIX または Solarisのような) とは
> 違って、Linux カーネル自身は、複数のカーネル・スレッドを
> 1 プロセス内でまとめることができる抽象化機能を持っていま
> せん。
> ...
> しかしながら、結果的に、IBM Java VM for Linux の各 Java
> スレッドは、対応するユーザー・プロセスによって実装されて
> います。このユーザー・プロセスのプロセス ID とプロセス状態
> は、Linux ps コマンドを使用して表示できます。
0481デフォルトの名無しさんNGNG
clone()ってことなんじゃないの?
forkとはリソースを共有してる点で違うけどあとは同じ関数らしいし

識者の人の解説求む。
0482デフォルトの名無しさんNGNG
この忙しいときに面白そうなページが... 週末に読もう。
0483デフォルトの名無しさんNGNG
サーブレットとは直接関係ないのですが・・
rmiのクライアントとしてサーブレットを使うサンプルのところで
詰まってしまいました。tomcatを起動する時にセキュリティポリシーファイルを
指定するという事なのですがそのMSDOSコマンドが分かりません・・・
環境変数 TOMCAT_OPTS に -Djava.security.policy=Client.policy
を代入したいのですが(SET)、=(イコール)が2つあってできません。''や""で
囲んでも駄目でした。
そもそもwinで上述のようにtomcatを起動すればいいのかという事も分かっていませんが
とりあえずmsdosの方ご教授ください。
048423区NGNG
for(np=0;np<=npl;np++){
data[0][np]=qd_data[np][i]; /* for 4th graph */
data[1][np]=vm_data[np][i]; /* for 1st graph */
data[2][np]=tau_data[np][i]; /* for 2nd graph */
data[3][np]=dq_data[np][i]*0.001; /* for 3rd graph */
data[4][np]=q_data[np][i]; /* for 4th graph */
data[5][np]=x_data[np]; /* for 5th graph */
data[6][np]=y_data[np]; /* for 5th graph */
}
col[0]=BLUE; col[1]=RED; col[2]=GREEN;
c=col[i];
set_crtpage(0); /* set of 1st page for CRT */
draw_data(nd,6,4,taxis,qaxis,t_data,&data[0][0],npl,PURPLE);
draw_data(nd,6,1,taxis,vmaxis,t_data,&data[1][0],npl,c);
draw_data(nd,6,2,taxis,tauaxis,t_data,&data[2][0],npl,c);
draw_data(nd,6,3,taxis,dqaxis,t_data,&data[3][0],npl,c);
draw_data(nd,6,4,taxis,qaxis,t_data,&data[4][0],npl,c);
draw_data(nd,6,5,xaxis,yaxis,&data[5][0],&data[6][0],npl,c);
}
draw_data(np,6,5,xaxis,yaxis,x_data,y_data,npl,c);

write_data(nt,"qd.dat",t_data,qd_data,npl,NJMAX,"%9.3f");
write_data(nt,"q.dat",t_data,q_data,npl,NJMAX,"%9.3f");
write_data(nt,"dq.dat",t_data,dq_data,npl,NJMAX,"%9.2f");
write_data(nt,"tau.dat",t_data,tau_data,npl,NJMAX,"%9.5f");
write_data(nt,"vm.dat",t_data,vm_data,npl,NJMAX,"%9.4f");
write_data(nt,"r.dat",x_data,y_data,npl,1,"%9.4f");
048523区NGNG
B型はプログラマーには向いていないと思うのは
わたしだけだろうか?
0486デフォルトの名無しさんNGNG
>>485
っていうか
A→アセンブリ言語
B→BASIC
O→COBOL
AB→C
って感じ。
048723区NGNG
>>486
その理由をおしえてくれ。
0488デフォルトの名無しさんNGNG
>>487
理由って言われても”感じ”だから。

まあ,
アセンブリ言語→一歩ずつしか進めない
BASIC→言語仕様が無いに等しい
COBOL→経営者の論理
C→いいかげんだけどそれなりにうまくやって行く
っつーことで。
048923区NGNG
>>488
O型人口が最も少ないことを考えますと
COBOLが最初に消えますな。
0490デフォルトの名無しさんNGNG
>>489
1番少ないのはABだよ。
049123区NGNG
大変失礼した。
0492デフォルトの名無しさんNGNG
アプリケーションサーバーを使わずに、DBへの接続をプーリングする方法って、
あります?
0493デフォルトの名無しさんNGNG
自分で作っちゃう
0494デフォルトの名無しさんNGNG
最近のOracle製のJDBCドライバ(8.1.6以降?)には
コネクションキャッシュ機能もついてるはず。

たしか oracle.jdbc.pool とかいうパッケージ。
0495492NGNG
>>493
ドキュソ会社なんで、作れるスキルある人間いないんっスよ……(涙)

>>494
どうもありがとうございます。
うちの会社、違法コピーのオラクル8.0.5しかないんスよ……。
貧乏だし。可能性薄いけど、パッケージ探してみますm(__)m
0496493NGNG
「コアサーブレット&JSP」の中にコネクションプールの実装コードが紹介
されてたような...。すまん、確かじゃないがサーブレットの本だった。
0497492NGNG
>>496

重ね重ねありがとうございます。
「コアサーブレット&JSP」ってソフトバンクでしたっけ?
本屋行って、あさってみます。
0498名無しさんNGNG
Servletでfork みたいな作業ってできないのでしょうか。
つまりは時間のかかる作業を裏でやりたいのです。
0499デフォルトの名無しさんNGNG
>>498
Threadつくったら?
0500デフォルトの名無しさんNGNG
>>498
APサーバがサポートしてればJMSを使うという手もある。
0501デフォルトの名無しさんNGNG
APサーバがサポートしてればJMSを使うという手もある。
0502デフォルトの名無しさんNGNG
>>498 fork か...
Thread 使えば大抵のことはできると思うが、ローカル変数引き継ぐとか
は無理だぞ。
0503デフォルトの名無しさんNGNG
>>502
インナークラスってのは便利だよ。ローカル変数の引継ぎ可能。

void func(){
 String hage = "hage";
 {
  final String hoge = hage;
  Thread th = new Thread(){
   public void run(){System.out.println(hoge);}
  };
  th.start();
 }
}
0504502NGNG
>>503
くっ、その手を忘れてた
目からコンタクトレンズが落ちたよ。
0505デフォルトの名無しさんNGNG
>>492
poolmanってのがあるよ。
APサーバのjbossとか使うほうがいいけど。
0506名無しさんNGNG
>>499

例が欲しい・・・。

>>503

いまいちワカラン・・・。
0507デフォルトの名無しさんNGNG
>>506
なんでだよ?fork->execより簡単だろうが。

Threadクラスのrun()メソッドオーバーライドしたクラス作って
インスタンス作ってstart()すれば、それだけで別のスレッドが
起動するんだぞ?
これ以上カプセル化できないっていうくらい、やりすぎっていう
くらいに完璧なカプセル化じゃんか。

forc->execはOSのタスク管理のイメージがわかってないと、なに
やってんだかさっぱり分からんってことになるのに。
0508デフォルトの名無しさんNGNG
スレッドに関しては別スレに結構詳しい人が書いてたりして
細かいところで問題があるのは解るんだけど、普通に使う分には
Javaのスレッドが一番だと思う。Javaの内部でやれば、
状態を把握できるし。forkなんてしたらそれこそOSごと固有の
プロセス間通信という話になってJavaの手軽さが失われてしまう。

だまってスレッドを使ってみなよ。
その簡単さに病みつきになるからw
0509デフォルトの名無しさんNGNG

test.HelloWorldServlet
を継承して
test.HelloWorldServlet2
test2.HelloWorldServlet3
を作りました。

HelloWorldServletは
doGet doPostでHelloWorldを表示します。
継承したクラスにはなにも手を加えません。

/servlet/test.HelloWorldServlet
/servlet/test.HelloWorldServlet2
を実行すると
HelloWorld
と表示されます
/servlet/test2.HelloWorldServlet3
だと画面になにも表示されません。
パッケージを越えて継承すると動かないものなんでしょうか?
0510デフォルトの名無しさんNGNG
>>508
バックグラウンド処理だけど、httpに対してout.close()してから
適当な処理すると、意外に簡単で便利だよ。終わるときはしかる
べき処理をして適当な時期に終わるです。
0511デフォルトの名無しさんNGNG
>>509
元のクラスの指示子を何にもつけてネーダロ
それだとパッケージは超えられネーダロ
publicにしたらドーダロ?
0512デフォルトの名無しさんNGNG
>>511
コンパイルではじかれないのかな?
と疑問を呈してみるテスト。

っていうかどんなコードか全く情報ないから放置かも
0513デフォルトの名無しさんNGNG
>>510
そういう手もあるのかー。
でも、APサーバが管理してるスレッド使いっぱなしにして
パフォーマンスに悪影響があったりしないだろうか。
0514デフォルトの名無しさんNGNG
DateクラスとCalendarクラスでハマッテイマス!
やりたいことは単純で、Stringの"YYYYMMDDhhmm"文字列をDateクラスの型に変換したいだけです。
それとその逆のDateクラスに格納されている日付時刻をStringの"YYYYMMDDhhmm"文字列に変換したいだけです。
APIリファレンスを読んでも理解できません。
この手の変換は誰もが使うと思うのですが、「ズバリこれ!」というのがないのはなぜでしょう?
0515デフォルトの名無しさんNGNG
String str = "20010818113600";
GregorianCalendar c = new GregorianCalendar(
Integer.parseInt(str.substring(0,4)),
Integer.parseInt(str.substring(4,6))-1,
Integer.parseInt(str.substring(6,8)),
Integer.parseInt(str.substring(8,10)),
Integer.parseInt(str.substring(10,12)),
Integer.parseInt(str.substring(12,14)));
Date d = c.getTime();
System.out.println((new SimpleDateFormat("yyyyMMddHHmmss")).format(d));
0516デフォルトの名無しさんNGNG
>>514
java.text.SimpleDateFormatを使えば、そのものずばりでできるよ。
0517デフォルトの名無しさんNGNG
>>514
・YYYYMMMMDDhhmm文字列をUNIX時間のミリ秒に変換
・変換結果のミリ秒でDateオブジェクトを生成
でいいんじゃないの。
0518デフォルトの名無しさんNGNG
html上に表示したいデータの中に「&」「 <」「>」のようなキーワードが
あった場合、それぞれ「&」「<」「>」のように変換をしますが、
変換のタイミングはどこで行うのが一般的ですかね?

servlet + bean + JSP の構成とします。

1. servlet beanのsetXXXX()を呼ぶ直前に変換
2. bean setXXXX()or getXXXX() の中で変換
3. JSP beanからもらったデータを表示用に変換
0519デフォルトの名無しさんNGNG
あり、修正。


変換後の文字列は

「&amp」 「&lt」 「&gt」

です。それぞれ半角。
0520デフォルトの名無しさんNGNG
4. 変換はブラウザがするから必要なし
0521518NGNG
>>520
それは、
HTML中の「&amp」→表示時に「&」
のこと。

>>518 で言っているのは

表示したい文字列中に「&」が含まれる場合、
HTMLに埋め込む際に「&」→「&amp」と変換が必要に
なりますよね。
そのことです。
0522デフォルトの名無しさんNGNG
>>507
そうだそうだ。Threadまんせー。process市ね市ね。JavaOSばんざーい(OSの作り方スレ参照)
「しねしね」ってのは、Javaの世界の道具を一通り使えば、実はProcessなんてものは不要だ、という意味。
0523デフォルトの名無しさんNGNG
>>509
親クラスの識別子はpublic です
public abstract Test extendes HttpServlet
です。
0524デフォルトの名無しさんNGNG
ある文字列のインスタンスを作成して、
MIMEを設定したあと、
クライアント(ブラウザに)
OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream());
out.write(result.toString());
out.close();
でインスタンスをおくっているのですが、
ブラウザでダウンロードのダイアログボックスがでるときに、
実際にブラウザに送られているのは、なになんでしょうか?
MIMEの部分でしょうか?
MIMEをブラウザが読み取って、ダウンロードするかしないかの
ユーザーの選択を受け取ってから、サーバにもう一度getしにいくんでしょうか?
わかりにくくてすいません
0525デフォルトの名無しさんNGNG
>>524 言ってる意味とやりたいこととがぜんぜん分からん
とりあえずHTTP覗きソフトでもインスコして実際のデータ眺めれ

http://hidemaru.xaxon.co.jp/software/ydm.html
CGIやサーブレットのデバッグにお勧め↑
0526デフォルトの名無しさんNGNG
JSPのスコープのappricationといのは、
Webアプリケーションサーバ全体で使える
インスタンスの入れ物って感じでしょうか?

サーブレットで
ctx.setAttribute
して、JSPで
apprication.getAttribute
ってよくやるんですが、クライアント毎に別の値を持たせたい場合は
この使い方は間違ってますか?
0527デフォルトの名無しさんNGNG
JServ不調。他のエンジンでもそうだけど、out of memoryがたまに
でておちるんだよね。
作り方が根本的に間違っている予感がするです。
DBへのコネクションをセッション毎に1つだけ保持して使いまわしている
んだけど、それ以外に気をつけるところないですかねー
循環参照とかはしてないと思います。こまめにvariable=null
ってするべきですか?
0528デフォルトの名無しさんNGNG
Connection、Statement、ResultSetはリークの原因なので
使い終わったらちゃんとclose()しようね。
0529デフォルトの名無しさんNGNG
あと、JavaでもC/C++のPurifyやBoundsCeckerに相当するアプリが
あるので、それ使うのが吉。名前なんだっけ?
強参照残したままのオブジェクトの数とかがわかるから、リーク調査
が楽チン。

コンストラクタとファイナライザにカウンタ仕込んで、アクティブ
オブジェクトの数を自力でチェックするって方法は、どうなんでしょうね?
0530デフォルトの名無しさんNGNG
>>526
appricationじゃなくってapplicationだって...

applicationは「WebApp単位」で共通です。
同一サーバで複数のWebAppを上げているときは別になります&
クラスタ化した場合、ユーザから見たら同じアプリケーション
でも、マシンが異なれば共用されないので注意が必要です。

そんなに使い道はないです。例えば、ReadOnlyのデータの
キャッシュとかかな。

「クライアント毎」の意味がわかりませんが、おそらく
sessionにいれなければだめでしょう。
0531デフォルトの名無しさんNGNG
formタグでenctype="multipart/form-data"を入れると受け取ったサーブレットで
次に表示するJSPにRequestDispatcherでformordするときにexceptionが起きます。
enctype="multipart/form-data"って使えないのでしょうか?フォームに<input type="file"
があるので困っています。
0532デフォルトの名無しさん01/08/26 19:48ID:4GIts8oI
あるアプリケーションでログインしたとして、
別のアプリケーションで再度ログインする必要が
ないようにしたいんですが、何か良いアイデアありますか?
アプリケーションが違うのでsetAttribute()系は使えないし
0533デフォルトの名無しさん01/08/26 20:20ID:PbVG8tb2
同じアプリケーションにしなよ
053453201/08/26 22:02ID:4GIts8oI
>>533
やっぱり?
0535デフォルトの名無しさん01/08/26 22:54ID:KHQcFhVk
JAVAでUNIXのsendmailコマンドを実行するにはどうしたら良いのですか?
参考書籍、URLだけでも教えてください。
0536デフォルトの名無しさん01/08/26 23:12ID:b1.HSLI.
>>535
Runtimeのexec()使ったら?
0537ツール・怒・名無しさん01/08/26 23:32ID:8WKY/BWE
>>531
multipartのフォームデータは、request.getInputStream()
で取得しなけりゃなりません。バウンダリー文字列で区切られ
ているフォームデータを自分でパースしてやる必要があります。
java_conf.or.jpにサンプルコードがおいてありましたが
new String(...)でエンコーディングを指定していないため
文字化けします。そしてこのサンプルコードかなりの汚物で読む
気にならない代物です。
0538ツール・怒・名無しさん01/08/26 23:41ID:HOwCJYFc
request.getInputStream()は怪しい。。。自分で調べてください!
0539デフォルトの名無しさん01/08/31 21:34ID:SVE3wbvc
include用のファイル名ってどんな名前つけてますか?
0540デフォルトの名無しさん01/08/31 22:10ID:SYzSjnws
>>531 >>537
最近仕事でやったよ。
要するにmultipart/form-dataにサーブレットエンジンが対応してないんだよ
仕事だもんでさすがにソースアプはできない、、

将来的には
multipart/form-dataのPUTって
サーブレットエンジン側でサポートしてくれないんですかね?
0541デフォルトの名無しさん01/08/31 22:28ID:txRKxROM
cos.jar 使えば? > multipart/form-data
0542デフォルトの名無しさん01/09/01 00:10ID:j83A1yFA
>>535

JavaMail 使え
0543「人のバグ見て、わがバグなおせ」01/09/01 01:51ID:N2P03Y3g
TagLib使ってお茶を濁す。
0544ツール・怒・名無しさん01/09/01 18:29ID:G1ZSmjeo
結局一からmultipart/form-data処理を書いてしまいました。
http://www.java-conf.gr.jp/のサンプルを修正するくらいなら
一から書いたほうが楽だったってことです。。。
ところでcos.jarってどこにあるんですか?>541
0545デフォルトの名無しさん01/09/01 20:04ID:Y7bOdsbI
>>544
http://www.servlets.com/cos/index.html
0546デフォルトの名無しさん01/09/01 21:52ID:ytvqUsmk
>>535
自分でsmtpと話すの作っても100行くらいっすよ。必要なら
あげますけど。From偽造しまくりだから一般人にはあげられない
っす。
0547デフォルトの名無しさん01/09/01 23:59ID:AfE3XVcw
>545
これって、商用利用には使えなくないか?
俺は仕事で使う必要があって、しょうがないからスクラッチから書いた。
0548デフォルトの名無しさん01/09/02 12:04ID:kZTAllHU
>547
よく読め。

>If you are interested in using the package
> to benefit a commercial project,
> you are granted the same license,
> provided that every person on the development team
> for that project owns a copy of the book
> Java Servlet Programming (O'Reilly) in its most recent edition.
商用アプリつくってんならたいした出費じゃないだろ、こんなもん。
0549デフォルトの名無しさん01/09/05 01:50ID:LrbdI1I2
RequestDispatcher.forwardについて教えてください。
送信されるformがenctype="multipart/form-data"だとRequestDispatcher.forwardで
IllegalStateExceptionが起きます。送られたパラメータの取得はマルチパートを解析する
クラスがあるのでgetParameter()を使わずに行えます。ファイルアップロードの機能が仕様に
なっているのでenctype="multipart/form-data"にするしかないんですけど
困ってます。sendRedirect()を使うとsessionにバインドしたBeanが取れません。
0550デフォルトの名無しさん01/09/05 11:57ID:i9Ib3WJs
これからインストールするにあたりTomcatとJservどっちがいいですか?

うわ。漏れだけいきなりレベル低い
0551デフォルトの名無しさん01/09/05 14:50ID:HEp5zPoE
>550
JServを使ってRequestDispatcherの質問をしたら俺が殺す。
Tomcatを使っておけ。
0552デフォルトの名無しさん01/09/05 20:14ID:i9Ib3WJs
なんかよくわかんないけどTomCatにします
0553デフォルトの名無しさん01/09/06 16:02ID:xxrt27Y6
Sessionが切れていたときの
制御ってどうしてます?

チェック用のクラスとエラー処理用のクラスを
つくって行ってるって感じですか?
0554デフォルトの名無しさんNGNG
やりたいことが良くわからんが、
javax.servlet.http.HttpSessionBindingListener
を使うのではないかい?
0555デフォルトの名無しさんNGNG
>>553
HttpSession#isNew()
でエラー(セッション切れ)の制御を入れるのでは駄目なのか?
0556デフォルトの名無しさんNGNG
ガイシュツだったらスマソ
oraとjdbc接続するservletを激しくこしらえたのですが
Select等、DB側で多くの時間を要する場合に、何の断りも無く
ブラウザを閉じやがる不埒者がおりました。
すると、oraのSessionが消えずの残ってしまいます。
なんとかならんのでしょうか?
0557デフォルトの名無しさんNGNG
>556
そりゃあんたのプログラムが悪い。
閉じられたときにExceptionが飛ぶはずだから、ちゃんとcatchしてコネクションを
クローズしろ。
0558デフォルトの名無しさんNGNG
>>556-557
finallyでcloseしろよ。
0559556NGNG
>>557,558
ご丁寧なレスどうもです。
言葉がタリンかったです。というか間違っていました。
その現象が出るのはoraのパッケージを呼出したときなんです。
勿論、ちゃんとcatchしてコネクションをcloseしているのですが...
0560mayuNGNG
わからないことがあります。
プログラムでこのように計算式を入れ込んだのですが、
newJBook.setEntry(3,13,"=SUMIF(M4:M4,1,M5:M5)");
エクセルが表示されても計算結果がでません。
ちゃんとセルには式が入ってるのですが。
ただ、表示後のエクセルになにか動作を与えてやると
計算結果が出てきます。
何故最初の表示時にはでないのでしょうか?
教えて頂けませんか?
ツール −> オプション −> 計算方法
の計算方法も「自動」にしてあります。
0561デフォルトの名無しさんNGNG
あぅ、絶対にがいしゅつだと思ってたのに出てない……

日本語版 Servlet & JSP API リファレンス
http://www.ingrid.org/jajakarta/servletapi/servletapi-4.0/docs-ja/index.html
 まだ翻訳作業中とのことで表にリンク出てないようですが。Ja-Jakartaプロジェクトマンセー

あと、@ITで初学者向け連載やってる。
http://www.atmarkit.co.jp/fjava/

以上、お便利サイトage
0562デフォルトの名無しさんNGNG
HTMLにtextareaがあります。ここに書き込まれた改行もgetParameter()で取るには
どうすればよいでしょうか?getParameter()で取った文字列をStringの変数に入れると
改行がなくなってしまいます。
0563デフォルトの名無しさんNGNG
>>562
そりゃサーブレットの質問じゃねーぞ
<textarea wrap='hard'> にでもしとけ
0564デフォルトの名無しさんNGNG
データベースに登録された画像のファイルパスを取得して、
その画像を表示するHTMLを生成するサーブレット + JSPの
プログラムを制作しています。生成するHTMLの中で以下の
タグのように画像の縦横サイズもきちんと指定したいと考え
ているのですが、画像サイズの取得方法がわかりません。

<img src="DBから取得したファイルパス" width="xxx" height="xxx">

PHPなら getimagesize(String filename) という便利な関数が
あるのですが、Javaで同様のことを実現したい場合は
どのようにすればよいのでしょうか。
0565名無しさんNGNG
ServletのOpenSourceなアプリケーション誰か知りませんか。

それぽいの見つけたけど残念ながらOpenSourceではなかった。
http://www.jivesoftware.com/
JSPはそのままコードみれるから良いとしてもServlet部分が・・・。
0566デフォルトの名無しさんNGNG
Servlet内で、HttpServletRequest の
public java.lang.String getParameter(java.lang.String name)
で取得できる情報を 追加 したいのですが可能でしょうか?
追加した情報は、forward先のjspで参照するつもりです。
0567566NGNG
あ、request.setAttribute() と getAttribute() の組をつかえば
いいのか。
http://www.ingrid.org/jajakarta/servletapi/servletapi-4.0/docs-ja/javax/servlet/ServletRequest.html#getAttribute(java.lang.String)
0568デフォルトの名無しさんNGNG
>>566
jspだったら、Bean使ってみるのはどうだ?
結局はおんなじことだけど(w
0569デフォルトの名無しさんNGNG
>>568
そうですね。そうしますわ。
0570デフォルトの名無しさんNGNG
<a href="/servlet/hoge">
でサーブレットを呼び出してるのですが、2回目に呼び出すと、
IE5.0のキャッシュがきいてしまって、1回目に表示したないようが
そのままでてしまいます。
回避する方法ありませんか?
0571デフォルトの名無しさんNGNG
Cache-Control とか Expires とか Pragma とか使いな
0572デフォルトの名無しさんNGNG
Windowsで作られたtextファイルを読んで、
その内容をDB(Oracle)に更新しているのですが、
更新結果を見ると、波線(〜)が?になってしまいます。
波線等の特定のは文字化けするとの記事を読みましたので、

ttp://java-house.etl.go.jp/ml/archive/j-h-b/014452.html#body

にある方法で文字コードをCp932からJISに変換しているのですが、
それでも駄目なのです。
ちなみにサーバーはUNIXです。
なにか根本的に間違っているのでしょうか?
0573デフォルトの名無しさんNGNG
誰かJ2EE純正のデプロイツール使ってる人いない?
設定の方法がワケわからん。特にWARが・・・。

JSP+EJBの組み合わせはデプロイできるんだけど、
Servlet+JSP+EJBの組み合わせがさっぱりできないんすけど・・・。

誰かいたら返事してくれ。
0574デフォルトの名無しさんNGNG
>>textファイルを読んで、

この部分次第じゃない?InputStreamReaderは使ってるよね...
0575デフォルトの名無しさんNGNG
>>564
Image image = Toolkit.getDefaultToolkit().createImage(name);
int width = image.getWidth();
int height = image.getHeight();

てゆーかawtってサーブレットから使えるかどうかは環境依存なんだっけ?
レポートきぼん
0576名無しさんNGNG
j_security_checkをdatabaseと連携してやりたいのですが
そんなことはできるのでしょうか?

JavaPetShopがそれっぽいことやってるけどよく分からない・・・。
0577デフォルトの名無しさんNGNG
Tomcatでデータベースから取得したレコードの列データを2カ所
表示するだけでエラーになる。なんで?
1つだと何の問題もないのに。
0578デフォルトの名無しさんNGNG
>>570
getでなんか後ろにゴミつけてやれば?
0579デフォルトの名無しさんNGNG
>>575
564じゃないけど、564と同じことをしたことがある。で、575のコードだけど、
サイズの取得にはタイムラグがあるから、そのままだと0が返ってくるね。
 ちなみに、awtはLinuxとかだとXが起動してないと動かなかったりする。
俺は面倒だったから、GIFとJPEGのヘッダ解析クラスを作ったよ(w
0580名無しさんNGNG
JDBCで
ResultSet#close
Statement#close
Connection#close
するのとしないとでは何が違うのでしょうか。
要はcloseするとメモリを解放すると言うことですよね?

やらなくてもいいことなのでしょうか?
0581デフォルトの名無しさんNGNG
>>580 そのうちコネクション食いつぶして死ぬ。
おまへはファイルもclose()しないクチだな?
0582名無しさんNGNG
>>581

今はちゃんとしてます。

今悩んでいるのは、staticなメソッドでresultsetを返したい場合
解放をどうすりゃいいのかと思いまして。
0583デフォルトの名無しさんNGNG
>>582
ResultSetをそのまま返すのはヤメれ
0584名無しさんNGNG
>583

んじゃ、どうすっぺか。
vectorとかhashを使うのか・・・
0585デフォルトの名無しさんNGNG
>>576
Tomcatしか知らないけど、
http://jakarta.apache.org/tomcat/tomcat-3.2-doc/JDBCRealm.howto
0586デフォルトの名無しさんNGNG
>>584
漏れはVectorに突っ込んだ後にtoArray()して配列で返すようにしている
検索件数が相当多い場合にはまた別な手段を使うが
0587デフォルトの名無しさんNGNG
DB関連のサンプルには必ずといっていいほど、
Vectorに突っ込んだ後にそのVectorをfor文を使って配列に落としているが、
やはり件数が多い時はそれはやらない方がよいのですか?
普通に考えて、件数が少ない時でもその方法は2度手間な気がするのですが?
0588デフォルトの名無しさんNGNG
>>584
素直にクラス作れ
0589デフォルトの名無しさん NGNG
サーブレットやるにあたり
必要な知識は、Javaとあとはなんですか?
HTML?XMLですか?
0590デフォルトの名無しさんNGNG
HTTP
0591デフォルトの名無しさんNGNG
>>587
JavaのStringやNumberなどのimmutableオブジェクトをVectorに
突っ込んだあとにtoArray()したりしても、内部では参照コピーしか
していない(Collectionクラスの複製操作などでは、要素は全て
シャローコピー)ので、メモリ上の無駄などはあまり考えなくて良い
レベルになるはず。

JDBCでのリモートサーバへのStatementコール一回よりも、内部でのループ
+GCの方が普通は速いので、よっぽどあほな事をしない限り、内部ループの
最適化よりも、まずSQL実行回数の軽減を考えるのが良いと思われる。

例えば、それほど件数の多くないテーブルに対してなら、条件select
を多い回数発行するなら、全件selectしてからプログラム側で条件検索
するほうが速い。(フェッチサイズ変更&サーバメモリ拡張してもOKと
いう条件なら、これが一番良かったりする。場合によってはローカル
ファイルにSerializeしてキャッシュというのも有り。)
0592デフォルトの名無しさんNGNG
検索結果を一発にデータ構造に落とすことできます?
0593デフォルトの名無しさんNGNG
>>592
そんくらい自分でかけよ。
ResultSet廻してVectorか何かに順番に突っ込むだけじゃん。
0594デフォルトの名無しさんNGNG
>>591
すげーベンキョウになるです。
ちょうど、vectorにぶっ込むかclassの持つか悩んでいて・・・
1つの案件は30000弱データ、別のクライアント案件は百万強データ・・・
0595デフォルトの名無しさんNGNG
WebLogic6.0SP1で、こんなん出ました。どこが悪そう?

####<2001/09/13 17:23:36:JST> <Error> <Posix Performance Pack> <tq04> <tq04> <ExecuteThread: '12' for queue: 'default'> <> <> <000000> <Uncaught Throwable in processSockets>
java.lang.NullPointerException
at weblogic.socket.TunnelContext.getServlet(TunnelContext.java:24)
at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:465)
at weblogic.socket.PosixSocketMuxer.deliverGoodNews(PosixSocketMuxer.java:449)
at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:378)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
0596デフォルトの名無しさんNGNG
>>595

バグじゃないの?weblogicとやらのクラスライブラリの内部で、
Nullチェックしなきゃいけないパターンをしてないってことでしょ?

そのライブラリ出している会社に文句つけるべき。
そのスタックトレース渡せばすぐに対応策は向こうで分かるはず。

ただし、対応パッチをくれるかどうか、何時くれるかは全く不明だが。
0597デフォルトの名無しさんNGNG
HttpSessionBindingListenerをimplementしたこんなメソッド中で
valueUnbound(HttpSessionBindingEvent anEvent)
タイムあうとを知ることができる?
0598へたれ大学生NGNG
原田洋子さんの書いた「Javaサーバサイドプログラミング」という本を買った
のですが、今の自分のレベルだとちょっと厳しいみたい・・・
サーバサイドのJavaについてもうすこし解説の詳しい本をご存知の方教えてい
ただけませんか?
0599名無しさんNGNG
はじめてのJSPサーブレット
0600600NGNG

                               
   λ
   ( ヽ  / ̄ ̄ ̄ ̄ ̄
  ( ゚Д゚ )< Rubyはクソです。ゴミ箱逝きです。 いじょ
 (____) \_____
   ヽ(´ー`).ノ
     (  へ)
      く



                      - = ≡三  λ
                  _ = ≡三     ( ヽ  / ̄ ̄ ̄ ̄ ̄
       (´ー`)          = ≡三    ( ゚Д゚ )< この発言をコピペしていただければ幸いです。
      ( ヽ ヽ)         - = ≡三   (____) \_____
      /  >             - = ≡三
0601デフォルトの名無しさんNGNG
Tomcat 4.0 Final 試した人で、PostgreSQLに対するJDBC Connection Poolingがうまく使えた人いる?
JNDIでContextを取ってくるところまではうまくいくんだけど、lookupでDataSourceが取れない・・・。
0602デフォルトの名無しさんNGNG
え?TomcatでもConnectionPooling使えるようになったの?
DLせねば。
0603598NGNG
599さん>ありがとうございます 早速本屋で立ち読みしてきます
0604デフォルトの名無しさんNGNG
>>591
マジですか?
配列の要素の中身をいじると、
ベクターの要素の方も変化するのでしょうか?
0605デフォルトの名無しさんNGNG
>>604
その質問はネタじゃないよな?
0606デフォルトの名無しさんNGNG
>>604
配列はコピー、ただしコピーされるのは配列の中身で、それが
オブジェクトの参照でも、参照がコピーされるだけ。それが指して
いるオブジェクトが複製される訳ではない。
その参照を通じて変更したオブジェクトは、Vectorも参照している
から、当然、変更された影響は及ぶことになる。
もちろん、配列の要素そのものを変更しても、Vectorには影響しない。
だって配列はコピーだからね。
って、これはjavaの基本中の基本だろ。
0607 NGNG
つうか、Javaってクラスの保持してる情報が参照だか実体だか
判らない。
ポインタ無くしたのは間違い。
0608デフォルトの名無しさんNGNG
プリミティブかオブジェクトかの違いだけじゃない?
0609デフォルトの名無しさんNGNG
>>607
参照か実体か、って、javaではプリミティブ以外は参照だよ。
608の言っているのも、そういうことだよね。
0610 NGNG
そうなの?
HashTableは例外?
0611 NGNG
StringBufferも例外?
0612 NGNG
関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
0613609NGNG
>>610,611
ごめん、言ってる意味がよくわからない。
>>612
関数(メソッド)にオブジェクトを渡すことはできない。
オブジェクトの参照を渡すことはできる。
外部で変更されてはこまるオブジェクト(の参照)は、外に漏らさない
ようにすることは大切。
0614デフォルトの名無しさんNGNG
>>607,610,611
だから、609が言ってるようにプリミティブ型以外は全て参照であって、
例外なんてない。
オブジェクトの実体は全てJavaVM自体が管理していて、どこからも参照されなく
なったものがガベージコレクションで回収されるといえばわかるかな。
アプリケーション側からは参照しか見えないわけだから、
当然ポインタなんてものは不要になる。

>>612
>関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
そりゃ設計自体が間違ってないか?
0615shige ◆5mzn8hAQ NGNG
....
0616デフォルトの名無しさんNGNG
ageとくね
0617名無しさんNGNG
なぜさがるのだ
0618©NGNG
>>601-602 Tomcat がコネクションプールサポートしていないから
データソースの参照に失敗してるんじゃないの?
0619デフォルトの名無しさんNGNG
ageておきます
0620601NGNG
>>618

Tomcat 4.0ではサポートされていると思ってたのですが・・・。

http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html
0621デフォルトの名無しさんNGNG

               
――――――――――――――――――――――
臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  ∧_∧
      .../   //(^∀^ )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻
0622デフォルトの名無しさんNGNG
サーブレットから、日本語名のファイルにアクセスすることは
可能でしょうか?(Linux/Windows環境)
0623デフォルトの名無しさんNGNG
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
0624デフォルトの名無しさんNGNG
>>632 自分のスレでやれ
http://piza2.2ch.net/test/read.cgi/tech/1001125342
0625 NGNG
サーブレットを使って、MP3などをダウンロードせずに、
サーバ側でアプリケーション(Media Playerなど)を起動・実行させて
クライアント側で聴くことはできますか?
0626デフォルトの名無しさんNGNG
>>625
できたら神!
0627デフォルトの名無しさんNGNG
テキストファイルのダウンロードなんですが、
一回目はダイアログボックスがでてファイルに保存できます。
そこでブラウザの戻るを押してダウンロードを押すと
2回目はキャッシュが効いてしまって画面に前回の内容が
表示されてしまいます。
キャッシュが聞かないようにヘッダーをセットする方法があったような
気がしたのですがご存知の方教えてください

ファイルを作成するサーブレットは<A href=
で呼び出してます。
ブラウザはIE5です
0628デフォルトの名無しさんNGNG
>>625,626
同じマシンなら問題ないデショ
0629デフォルトの名無しさんNGNG
>>627
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-control","no-cache");
response.setDateHeader("Expires", 0);
0630625NGNG
>>626
>>628
ってことは別マシンだと無理?
0631©NGNG
>>625
クライアントとサーバ間がケーブルで接続されていればできる。
まず、サーバ側の音声出力ジャックとクライアントの音声入力
ジャックを接続して (以下略)
0632デフォルトの名無しさんNGNG
>>625,631
クライアント-サーバ間がワイヤレストランスミッターだとなお良。
0633_NGNG
>598
JSPから入るなら技術評論社の[WEB+DB PRESS vol.1]がいい。
ヘタな参考書よりよっぽど入門向き。
コピーして新人研修の資料に使った。
0634デフォルトの名無しさんNGNG
>>625
サーブレットに限らずいかなるものを使おうが631の方法を使わんと無理だろ
0635デフォルトの名無しさんNGNG
うぉんちゅっ!
0636デフォルトの名無しさんNGNG
J2EE SDK1.3の日本語ドキュメントってどこでダウンロードできるんですか?
0637デフォルトの名無しさんNGNG
>>636
おまえが翻訳しれ
http://www.ingrid.org/jajakarta/servletapi/
0638デフォルトの名無しさんNGNG
阿気
0639デフォルトの名無しさんNGNG
Oracle8.0.5とJDBCについてなんですが、

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ()) ;
DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:ECDB", "ANUSER", "ANUSER00");

こんな感じでコード書いてるんですが、
接続でエラーして動かないんですよ、
ログにはこんな感じででてるんですけど
java.sql.SQLException: Connection refused: no further information

誰か情報もってないすか?
あ、ちなみに、ドライバークラスは、classes111.zipっての使ってます。
0640 NGNG
すみません、超初心者的な質問です。

HTML画面から入力した2つの数字の四則演算の結果をJSPで表示させたいのです。
サーブレットとビーンを使って。(使わなくてもできる処理なんですが、この三つの動きがどんなものなのかを知りたいので、こーいう仕組みにしています。)

以下はコードです。

HTMLファイル
<html>
<body>
<form action="servlet/KeisanServlet" method="post">
<input type="text" name="X" size="20" maxlength="20">
<input type="text" name="Y" size="20" maxlength="20">
<input type="submit" value="送信">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=Shift_JIS" %><html>
<title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean>
和:<%= my_bean.getWA() %>
<br>
差:<%= my_bean.getSA() %>
<br>
積:<%= my_bean.getSEKI() %>
<br>
商:<%= my_bean.getSYOU() %>
<br>
</html>

続く
0641640NGNG
サーブレット
import javax.servlet.*;
import javax.servlet.http.*;

public class KeisanServlet extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response)
{
try
{
String X = request.getParameter("X");
String Y = request.getParameter("Y");
KeisanBean my_bean = new KeisanBean();
my_bean.setX(X);
my_bean.setY(Y);
my_bean.execute();
HttpSession session = request.getSession(true);
session.setAttribute("my_bean",my_bean);
getServletContext().getRequestDispatcher("/keisan.jsp").forward(request,response);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

続く
0642640NGNG
import java.io.*;
import java.util.*;

public class KeisanBean
{
private String X = new String();
private String Y = new String();
public String WA = new String();
public String SA = new String();
public String SEKI = new String();
public String SYOU = new String();

public KeisanBean()
{
super();
}

public void execute()
{
int A = Integer.parseInt(X);
int B = Integer.parseInt(Y);
int C = A + B;
WA = Integer.toString(C);
C = A - B;
SA = Integer.toString(C);
C = A * B;
SEKI = Integer.toString(C);
C = A / B;
SYOU = Integer.toString(C);
}
public void setX(String str)
{
X = str;
}
public void setY(String str)
{
Y = str;
}
public String getWA()
{
return WA;
}
public String getSA()
{
return SA;
}
public String getSEKI()
{
return SEKI;
}
public String getSYOU()
{
return SYOU;
}
}

続く
0643640NGNG
JSP
<%@ page contentType="text/html;charset=Shift_JIS" %><html>
<title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean>
和:<%= my_bean.getWA() %>
<br>
差:<%= my_bean.getSA() %>
<br>
積:<%= my_bean.getSEKI() %>
<br>
商:<%= my_bean.getSYOU() %>
<br>
</html>

どーしても思ったように動いてくれません。
どなたか教えて下さい。
0644640NGNG
すみません、640のHTMLソースおかしかったですね。
最初の</HTML>で終わりです。
JSPと混じってしまいました。
それと、642はビーンズのコードです。

宜しくお願いします。
0645デフォルトの名無しさんNGNG
>>640-644
うざってぇ〜な、
いきなりソ〜ス書くな!
0646デフォルトの名無しさんNGNG
<<ちょっと参る一瞬>>

みなさんもありませんか?

マウスが動き悪いと思ってみてみると、
チンゲが絡まっている時。
0647デフォルトの名無しさんNGNG
JSPのエラーページを使った場合、
エラー発生元のページですでにストリームにコミットされていると
発生元の内容とエラー表示がごっちゃになりますよね?
バッファサイズをむちゃくちゃ大きくする以外に解決策はないかね。
0648デフォルトの名無しさんNGNG
Tomcat4.0 + BSB を試用しているんだけど、
Servletからjspにforwardして、jspがXML吐いて(ほぼ内容は静的、
一部分だけbeanから頂戴する)、そのXMLをBSBに処理させてHTMLにする
なんてことできます?
0649648NGNG
CocoonにはXSPってのがあるのか。。Cocoon使えって感じ?>識者
おしえて〜
0650デフォルトの名無しさんNGNG
>>648,649
ttp://java-house.etl.go.jp/ml/archive/j-h-b/038079.html
返事は無い…
0651デフォルトの名無しさんNGNG
サーブレットを使って
同じサーバ内にあるファイルのリンク先を指定って出来るのですか?

例えばコンボなんかを使ってAが選択されていたらAのファイルに移動
Bが選択されていたらBのファイルに移動みたいに
0652デフォルトの名無しさんNGNG
651の追記
さらにコンボを2つ使って
両方ともAならAファイル
両方ともBならBファイル
AとBならCのファイルに移動なんて出来ますか?

ちなみにtomcat3.2.1を使用しています
0653デフォルトの名無しさんNGNG
age
0654デフォルトの名無しさんNGNG
>>652
コンボってなに?
0655デフォルトの名無しさんNGNG
>>650
ただのしかばねのようだ
0656デフォルトの名無しさんNGNG
>>648
XSLT通すカスタムタグ作ればいいんじゃない?
既にどっかが出してたと思うが。

>>651
かんたんにできるよ。
wwwサーバー=FileServletだからね。
0657648NGNG
>>656
すんませんCocoon1.8使うことにしてしまいました。
XSLT勉強中…。

Cocoon(XSP)な質問してもいいすか?

.xslで、例えばi-mode pageで、
<a href="ふがほげ" accesskey="<xsp:expr .....
のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
怒られるんですが… どうするものですかね??

あと、 ?<xsp:expr ....
でも、?の直後に数字が来てないぞ!みたいにおこられます。

たすけて〜 ;_;
0658648NGNG
> .xslで、例えばi-mode pageで、
> <a href="ふがほげ" accesskey="<xsp:expr .....
> のような記述をすると、accesskey属性の中に < があるぞゴノレア!と

こっちは変数にブチこんで accesskey="{$var}" でいけました…
ふーーーー。
0659デフォルトの名無しさんNGNG
>>657
><a href="ふがほげ" accesskey="<xsp:expr .....
>のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
>怒られるんですが… どうするものですかね??
<xspのタグはhtmlのタグと同等と思われ。
だから、<a が閉じる前の属性の位置にほかのタグがあると起こられる。
htmlのタグは本来は<html:a/>だがhtmlの場合は暗黙に省略できると思われ。
だから、?<xsp も「ゴルァ!」となるのだ。
0660デフォルトの名無しさんNGNG
TOMCATのソースコードって公開されてるんでしょうか?
0661デフォルトの名無しさんNGNG
>>660
されてるよ。Jakarta projectなんだから...
0662デフォルトの名無しさんNGNG
便乗。
Cocoon1.8.2で、XSPなページをESQLでつくっておるのだが、
裏でサーブレットも使っておる。サーブレットでもTurbineの
DBコネクションプールを使いたいのだが、サンプルのソースだ
してくれるひといない?
0663デフォルトの名無しさんNGNG
age
0664デフォルトの名無しさんNGNG
>>662
ソースは出せないが、可能とだけいっとく。
esql.xsl と、ESQLを使ったxmlのCocoonの処理結果
(れぽじとり内)をよーく見れ。で、いろいろ想像して
書くと。

あと、Cocoonサーブレットは <load-on-startup/>
すること。
0665超初心者NGNG
いきなりレベルの低い質問で申し訳ないのですが
サーブレットで、
リアルタイムでキーやマウスを読んだり、画像を表示したり、というような
アプレットで作るゲームのような事ってできますか?
0666デフォルトの名無しさんNGNG
できません
0667デフォルトの名無しさんNGNG
>>666
想像してごらん、
出来たらすばらしいじゃないか、
皆が想像できたらすばらしいじゃないか、
って、じょんれのがいってたよ、
0668デフォルトの名無しさんNGNG
JASRACに怒られますよ
0669デフォルトの名無しさんNGNG
フォームの値をサーブレットにて取得する方法について教えて下さい。
ラジオボタン、ドロップダウンの値を受け取ることはできたのですが、
チェックボックスの値を取得するのがうまくいかないのでお願いします。
0670669NGNG
<form method="POST" action="サーブレットのURL">
<p>
<input type="checkbox" name="a">あいうえお<br>
<input type="checkbox" name="a">かきくけこ<br>
<input type="checkbox" name="a">さしすせそ</p>
<p>
<input type="submit" value="送信" name="B1">
<input type="reset" value="リセット" name="B2">
</p>
</form>

データをPOSTするHTMLは簡単に書くとこんな感じです。
実際はチェックボックスの数がもっと多いので、配列を使ってさくっと取得できるといいんですけど。
0671デフォルトの名無しさんNGNG
サーブレット側はgetParameterValuesを使う。
0672669NGNG
String a = request.getParameter("a");
String b = request.getParameter("b");
String c = request.getParameter("c");
String d[10] = request.getParameter("d[10]");

>>671
getParameterを使うことはわかったのですが、上記のように、
普通の変数と同じように記述してもコンパイルが通りません。
配列の場合は特殊な書き方をしなければならないのでしょうか?
0673デフォルトの名無しさんNGNG
String[] a = request.getParameterValues("a");

こう書く
0674デフォルトの名無しさんNGNG
<FORM ACTION="/servlet/xxxx" METHOD="POST">
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="AAA">AAA<BR>
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="BBB">BBB<BR>
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="CCC">CCC<BR>
<INPUT TYPE="SUBMIT" VALUE="SUBMIT">
</FORM>

String ParamValue[] = request.getParameterValues("a");
if(ParamValue!=null){
for(int i=0;i<ParamValue.length;i++){
out.println("value=" + ParamValue[i] + "<BR>");
}
}
0675お願いしますNGNG
JSPにて、if文を使って、
サーブレット通ってきたら表示させ、
直接JSP呼ばれたらサーブレットに返すプログラムを
作りたいのですけれど、宜しければ教えてください。(JSPの表記)
0676お願いしますNGNG
あげ
0677デフォルトの名無しさんNGNG
>>675
JSP直接呼ばれたくないならWEB-INFの下に置く手もあるよ
0678お願いしますNGNG
VAJでいうと、/web/WEB-INF/”ここにJSPファイルを置くと言うことでしょうか?”
0679677NGNG
>>678
VAJはしらない。
warファイルにしたときに/WEB-INF以下にあればいいよ
0680お願いしますNGNG
JSPに直接書き込む場合は、どのように書けばよいのでしょうか??
0681デフォルトの名無しさんNGNG
サーブレット側でJSPにforwardする前に、
request.setAttribute("omae","mona");
とかしておいて、JSP側で
if (request.getAttribute("omae") != null) {
...
} else {
...
}
でいいんじゃないの
0682お願いしますNGNG
if (request.getAttribute("omae") != null) {
...
} else {
ここの処理を知りたいのですが
}
申し訳ございませんが教えてください。
0683お願いしますNGNG
age
0684デフォルトの名無しさんNGNG
こんなんでどう?
<%
String destination;
destination="servlet/HelloWorld";
%>
<jsp:forward page="<%=destination%>" />
0685お願いしますNGNG
できました
ありがとうございました
0686デフォルトの名無しさんNGNG
esponse.setContentType("image/jpeg");として、画像を出力させるサーブレットを作ったのですが、
サーブレットを読み込んでから画像を出力するまでの時間を計測したい場合、どうすればいいでしょうか?
0687↑NGNG
ストップウォッチ持ってる?
0688686NGNG
…やっぱりそれしか方法ないですかねえ…。
周囲にも結構訊いたけど同じ答えしか返ってこなかった…
0689デフォルトの名無しさんNGNG
doGetの頭とケツで時間をログに吐くんじゃだめってこと?
0690686NGNG
>doGetの頭とケツで時間をログに吐くんじゃだめってこと?
すみません。ログに吐く、ってのがどういうことが分からないです。
doGetの中身を
(1)コンテンツタイプをtext/htmlに設定
(2)現在時間をAに代入
(3)画像出力する関数Image呼び出し
(4)現在時間をBに代入
(5)A-Bを出力
とすればOKかなと思ったんですが、エラー出っ放し
0691デフォルトの名無しさんNGNG
>>690
サーブレットがマルチスレッドで動いてるからだめじゃん。
クライアントがひとつだけでテストするならいいかもしれないけど。

ログを吐く→ログファイルに書き出すってことだよ。
0692690NGNG
どうも。
0693686NGNG
>>691
いろいろ。ありがとうございます。もう一回勉強しなおします。
それと、692は自分ではないです。念のため
0694デフォルトの名無しさんNGNG
tomcat 4.0.1 と apache を連携させるのって、
jakarta-tomcat-connectors を使うしかないんでしょうか?

んでもって、これって正式リリースもされてないし、jakarta.apache.org
にもドキュメントがない (ドキュメントはソースに含まれているものだけ)、
という認識は合ってますか?
0695デフォルトの名無しさん NGNG
>>690
セッションIDをファイル名にするのはだめ?
0696デフォルトの名無しさんNGNG
>>695
ファイル書き出しにsycronizedもつけるように。
あと、ストレスかけるなら、セッションの違うクライアントになるようにしないとね。
0697694NGNG
>>694
mod_webapps というのもあるみたい<Tomcat4.x と apache の連携。
でも、mod_webapps も connectors もまだ正式リリースされてない…
のかな?

設定がうまくいかないよ〜。
0698デフォルトの名無しさんNGNG
で、taglibに渡すデータって皆さんどうしてます?
Bean以外ありえないと思うのだけど、どう?
0699デフォルトの名無しさんNGNG
JSPで
<FRAMESET rows="50%,50%">
<FRAME src="a.jsp" name="a" >
<FRAME src="b.jsp" name="b" >
</FRAMESET>
のようになっているとき
a.jspの方にのみリクエストをとばすには
どうしたらいいんでしょうか?
0700デフォルトの名無しさんNGNG
>>699
意味がわからん
JSPに処理させたくないなら、b.jspをHTMLにすればよし
0701デフォルトの名無しさんNGNG
>>691
>サーブレットがマルチスレッドで動いてるからだめじゃん。
へ、どういうこと?
doGet内でいくつかnewしてほげるだけでMTもクソもないとおもうんだけど。
ログの吐きかたによっては

>ファイル書き出しにsycronizedもつけるように。
は真だろうけど。
0702699NGNG
サーブレットからJSPをよぶときに
    req.setAttribute("x",x);
    req.setAttribute("y",y);

    RequestDispatcher rd = context.getRequestDispatcher("z.jsp");
    rd.forward(req,res);
のようにやっていますが
JSPの中で
<%
request.setAttribute("x", x);
request.setAttribute("y", y);
%>

<FRAMESET rows="50%,50%">
<FRAME src="/jsp/skill/a.jsp" name="a" frameboarder="0" >
<FRAME src="/jsp/skill/b.html" name="b" frameboarder="0" >
</FRAMESET>
としてrequestをa.jspにとばしたいのですが
やり方が分かりません。
bをHTMLにしてもだめなようです。
JavaScriptを使う方法も考えたのですが
リクエストとしてHashTableをわたさなければならないので
できなさそうです。
0703699NGNG
うえのJSPではとばないことはわかってるのですが
どうやればとばせるのか分かりません。
0704デフォルトの名無しさんNGNG
scope="session" の bean渡しにして、a.jsp を、jspでなくて
適当なサーブレットにして、<frame src="ほげほげ" の ほげほげ
を response.encodeUrl(); しときゃイインジャネエノ?
サーブレット経由しなくてもええんかな。しらん。
0705699NGNG
>>704
scope="request"を"session"にするだけで
できました。ありがとです
0706デフォルトの名無しさん ?NGNG
>>702
ペトリネットとか書いてみたらいいのでは?
0707デフォルトの名無しさんNGNG
>705
意味わかってやってる?
大丈夫か…?
0708デフォルトの名無しさんNGNG
tomcatの環境変数TOMCAT_OPTSの値をコマンドラインで変更するにはどうしたらよいのでしょうか?
0709デフォルトの名無しさんNGNG
>>701
691=696だが、
690の言ってる、
>(2)現在時間をAに代入
>(3)画像出力する関数Image呼び出し
>(4)現在時間をBに代入
>(5)A-Bを出力
がだめってことだよ。ログ吐きのことじゃないっす。690に対する返事だよ。

>>702,705
forwardとredirectの違いをまず理解することをお勧めする。

>>707
705わかってないだろうな...大丈夫じゃなさそう....

>>708
OSの問題だよ。スレ違い。
0710デフォルトの名無しさんNGNG
>>709
>>(2)現在時間をAに代入
>>(3)画像出力する関数Image呼び出し
>>(4)現在時間をBに代入
>>(5)A-Bを出力
>がだめってことだよ。ログ吐きのことじゃないっす。690に対する返事だよ。
AとBはスレッド間で共有されないでしょ?
と言っているんですが…。
0711デフォルトの名無しさんNGNG
プロバイダの個人ホームページ公開サービスでサーブレット使えるところありますか。
月1000円以下ぐらいでないですかねぇ。
0712デフォルトの名無しさんNGNG
>>711

DDNS+Tomcat+Apacheで自サーバ立てろ。
0713デフォルトの名無しさんNGNG
>>712
自サーバは無理
0714デフォルトの名無しさんNGNG
>>711
1000 円/月 以下(!)って安すぎ
0715デフォルトの名無しさんNGNG
>>714 perl使えるとこならいっぱいあるんだけどね、、、(個人向け)
0716デフォルトの名無しさんNGNG
>>713

無料だけどなにがマズい?
0717デフォルトの名無しさんNGNG
Tomcat3.2 + Apache + postgre7.1.3で
サーブレットからデータベースに接続出来ねーす。
普通のJavaアプリからDBにアクセスするのはうまく行くので
JDBCまわりは問題ないと思うんですけど。
postgreのpg_hba.confがおかしいのかな?って思ったんですがおかしい所は
無い気がする・・・。
(host all 192.168.1.0 255.255.255.0 trust)

エラーは
>>718
0718717NGNG
DataBase Connect Failed : Something unusual has occured to cause the driver to fail.
Please report this exception: Exception: java.sql.SQLException:
No pg_hba.conf entry for host 192.168.23.2, user hoge_user, database test Stack Trace:
java.sql.SQLException:
No pg_hba.conf entry for host 192.168.23.2, user hoge_user, database test

at org.postgresql.Connection.openConnection(Connection.java:170)
at org.postgresql.Driver.connect(Driver.java:122)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:177)
at Dbconnect_serv.doGet(Dbconnect_serv.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java:166)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484) End of Stack Trace
0719デフォルトの名無しさんNGNG
>>717
192.168.1/24 を trust してるんだから 192.168.23.2 からの
アクセスを deny するのは当然。
0720ゴノレゴ|зNGNG
海外でもいいからJAVAサーブレットが使えるフリーのレンタルサーバの情報キボンヌ



と
0721デフォルトの名無しさんNGNG
実話なら、ダムの制御プログラムで符号間違えて、水位が低くなった時
全開で放水しちゃった事故があったね。
0722デフォルトの名無しさんNGNG
あれれ?すまん。スレ違い???
0723ゴノレゴさーてぃーNGNG
誰か俺の>>720の情報マジキボンヌ




と
0724デフォルトの名無しさんNGNG
>>720
探せばあるよ
0725ゴノレゴ|зNGNG
>>724
探しに逝くので検索キーワードだけでもヒントをキボンヌ





と
0726デフォルトの名無しさんNGNG
>>720
http://piza.2ch.net/tech/kako/973/973526847.html
0727デフォルトの名無しさんNGNG
JBuilder5 EnterpriseでStruts-1.0使って開発しようと思っています。

Strutsを必須ライブラリにすると、デバッグ時にTomcatの起動時のクラスパスに
追加されてしまい、Strutsのコード内からアプリケーションのクラスがロード
出来ずにClassNotFoundExceptionが発生してしまいます。

struts.jarは、WEB-INF/libに格納しているので、Tomcatの起動時に読み込まれる
必要がないのですが、必須ライブラリにしないとアプリケーションのコンパイルが
出来ません。

どなたか解決方法知りませんか?
0728デフォルトの名無しさんNGNG
>>727
オープンツール。
nostruts.zip
webinfextension.zip
0729686NGNG
今更ですが、できたので報告とお礼です。ご教授ありがとうございます。
0730デフォルトの名無しさんNGNG
このスレの>>448>>450と全く同じ状況なんだが、回答がなくて鬱・・・。
0731デフォルトの名無しさんNGNG
WEB-INF/web.xml書いたか?
0732デフォルトの名無しさんNGNG
examplesの下で動作したものをコピってあります。
0733732NGNG
web.xmlってクラス名直指定でやるなら書かなくても良いのかな、と思ってるのですが違ってます?
0734727NGNG
>>728
遅ればせながら解決しました
ありがとうございました
0735デフォルトの名無しさんNGNG
JavaBeans + Servletで作ってるときに、DBのコネクションとかはどんな感じ
で書きますか?
1,JavaBeansにあらかたの処理を書いてServletのinitでそれを呼ぶ。
2.Servletのinitだけに書いておく。
3.JavaBeansでDBに登録とか削除とかのメソッドでコネクションするようにしておく。
4.その他

みなさんどんな感じで作ってるんでしょ。
0736デフォルトの名無しさんNGNG
>>735
環境によっても違うと思うが少なくともinitに書くものはコネクションのための
初期化処理で、リクエスト毎に実行する部分には実際の接続、切断の処理を
書くように使い分けてる。つまり2+3
0737デフォルトの名無しさんNGNG
コンテナがConnectionPoolingできるものならそれを使う。
リクエスト毎に Connection conn = ds.getConnection();
できなかったら・・・PoolManとかどう?
0738デフォルトの名無しさんNGNG
なんかズレてるな・・・逝ってきます
0739仕様書無しさんNGNG
>>711
www.mycgiserver.com
DB & JSP & Servlet & PHP

しかもタダ。
0740仕様書無しさんNGNG
www.webappcabaret.com

こっちもタダ。
こっちの方がいいかも。
使った感じ軽い。
0741デフォルトの名無しさんNGNG
739,740は神!!
0742724NGNG
ここに書くと重くなるんじゃ・・・(;´Д`)
まぁWeb板みたいなことはないかな。忙しい奴等ばっかりだろうし
0743デフォルトの名無しさんNGNG
>>740
FREE for 30 Days だが?
0744デフォルトの名無しさんNGNG
>>743 最低月3.33$だから一応当初の希望は満たしているんじゃない?
0745デフォルトの名無しさんNGNG
なるほど。たしかに
0746デフォルトの名無しさんNGNG
tomcat4なんだけど、
startup.shで起動すると、
常駐しないで、10秒ほど落ちちゃうんだけど、
似たような現象に遭遇した人居ない?
ログにはまったく何も出力されていない、
tomcat3なら動くけど。。。
環境は、SlackwareのLinuxで、kernelは2.2.16
jdkは1.3.1_1
Win2kなら動くんだよなぁ〜
どして?
0747デフォルトの名無しさんNGNG
739か740を利用する人で、DBも使おうと思ってる人。
急造したjspのDBクライアントあるけど欲しい?
0748デフォルトの名無しさんNGNG
ほしい
0749747NGNG
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<STYLE type="text/css">
<!--
input { width:300px; }
TEXTAREA { WIDTH:512px; HEIGHT:189px; }
-->
</STYLE>
<%@ page language="java" import="java.io.*, java.sql.*, java.util.*" %>
<%!
final static String driver = "***.***.jdbcDriver";
final static String db_url = "jdbc:****:*******";
final static String dbUser = "*****";
final static String password = "****";
static boolean init = false;
%>
<%
StringBuffer result = null;
if((session.isNew() == true)||(init == false)){
//初期化前なら
result = new StringBuffer();
session.setAttribute("result",result);
try {
Class.forName(driver).newInstance();
}
catch(Exception e){
result.append("ドライバロード失敗\r\n" + e.getMessage() + "\r\n");
response.sendRedirect("./sql_client.jsp");
}
init = true;
}
else {
result = (StringBuffer)session.getAttribute("result");
}
%>
0750747NGNG
<!-- 初期化済み -->
<%
Connection con = null;
Statement stmt = null;
String buf = request.getParameter("mode");
if((buf != null)&&(buf.equals("execute") == true)){
result.insert(0,db_url + "\r\n接続\r\n--\r\n");
try{
con = DriverManager.getConnection(db_url,dbUser,password);
con.setAutoCommit(true);
stmt = con.createStatement();
result.insert(0,"成功\r\n--\r\n");
if(stmt != null){
buf = request.getParameter("execute");
if((buf != null)&&(buf.length() > 0))
buf = new String(buf.getBytes("8859_1"),"JISAutoDetect");
StringTokenizer tkn = new StringTokenizer(buf,";");
while (tkn.hasMoreTokens()) {
StringBuffer sql = new StringBuffer(tkn.nextToken());

int pos = 0;
while((pos = sql.toString().indexOf('\r', pos)) > -1){
String left = sql.toString().substring(pos + 2);
sql.setLength(pos);
if(left.length() > 0){
sql.append(" " + left);
}
}

boolean rb = false;
try {
rb = stmt.execute(sql.toString());
}
catch(SQLException e ){
result.insert(0,sql.toString() + "\r\n" + e.getMessage() + "\r\n--\r\n");
}
0751747NGNG
if(rb == true) {
ResultSet rs = stmt.getResultSet();
int col = rs.getMetaData().getColumnCount();
StringBuffer column = new StringBuffer();
for (int ct = 1;ct <= rs.getMetaData().getColumnCount();ct++) {
column.append("|" + rs.getMetaData().getColumnLabel(ct));
}
column.append("|\r\n");

StringBuffer res = new StringBuffer(column.toString());
while(rs.next()){
for (int ct = 1;ct <= rs.getMetaData().getColumnCount();ct++) {
buf = rs.getString(ct);
if((buf != null)&&(buf.length() > 0))
buf = new String(buf.getBytes("SJIS"),"8859_1");
res.append("|" + buf);
}
res.append("|\r\n");
}
res.append(column);
result.insert(0,res + "\r\n--\r\n");
}
//入力バッファにセット
result.insert(0,sql.toString() + "\r\n実行\r\n--\r\n");
}
}
}
catch(Exception e){
result.insert(0,"失敗\r\n--\r\n");
}
finally{
stmt.close();
con.close();
}

}
0752747NGNG
else {
//とりあえず接続確認
try {
con = DriverManager.getConnection(db_url,dbUser,password);
con.setAutoCommit(true);
stmt = con.createStatement();
result.append("接続成功!\r\n");
}
catch(Exception e){
result.append("コネクト失敗\r\n" + e.getMessage() + "\r\n");
return;
}
finally {
stmt.close();
con.close();
}
}
%>
<BODY>
<P>SQL Client</P>
<FORM method="post">
<input type="hidden" name="mode" value="execute">
<P><TEXTAREA rows="9" cols="56" name="execute"></TEXTAREA></P>
<P><INPUT type="submit" value="Query"></FORM></P>
<P><TEXTAREA rows="9" cols="56" name="result"><%= result.toString() %></TEXTAREA></P>
</BODY>
</HTML>
0753747NGNG
sql_client.jsp
って名前でupしてくれ。

上のTEXTAREAにSQL文を書いて
[Query]を押すだけ。
;で区切れば複数のSQL文を書いてもヨロシ。

とりあえず急ぎで作った程度の代物なので
細かなツッコミあればよろしく。
0754デフォルトの名無しさんNGNG
userとpasswordくらい打たせろよ(w
0755デフォルトの名無しさんNGNG
iniファイルにドライバ名とURLを書く形にして
ログイン、ログアウトに対応すればさらにいい。
0756明日提出NGNG
今、JAVAで簡単なWEBアプリ作ってるんですが、、

あるユーザーがログインしている時に、別のブラウザでそのユーザー名でログインするのは不可、という状態にしたいのです。
最初のユーザーがログインした時に、static変数でフラグを立てておけば別のユーザーのログイン不可状態には出来るのですが、最初のユーザーがブラウザを閉じる等で
ログアウトしたときに、フラグを変える方法が解りません。
sessionやservletcontext等も試してみましたが出来ませんでした。

どなたか教えて下さい〜〜。
ブラウザが閉じられたことをサーブレットに伝えることが出来れば
なんとかなるような気がするんですが、、。





ブラウザ(IE)が右上のボタンで閉じられたことをサーブレットに知らせるには
どうしたらいいのでしょうか。
0757デフォルトの名無しさんNGNG
画面にアプレット仕込んで TCP/IP でつなげとけ。
0758デフォルトの名無しさんNGNG
WinNT4.0 + Tomcat3.2.3 で販売在庫システムを作って
います。携帯電話(i-mode)から使います。
それで、ちょっと教えて頂きたいのですが、
HttpSessionによるセッション管理がうまくいきません。
PCのブラウザ(IEなど)だと、ちゃんと
request.getSession(true)で取れたセッション
オブジェクトにセッション属性を設定し、保存
されるのに、携帯電話からだと、うまくいきません。

というか、携帯電話ブラウザでは、
HttpSessionクラスを使ったセッション管理は
できないのでしょうか?
0759デフォルトの名無しさんNGNG
>>756
一定時間なんのリクエストもないようならログアウトしたことにしとけ。
0760デフォルトの名無しさんNGNG
>>756
右上のボタンが押されたことを通知するには、ユーザの
ブラウザ上で「右上のボタンが押されたことを関知できるもの」
が動いてなければならない
っていうふうに考えると------> >>757 だし(UDPでもよいけど)

そいうものを作りたくなくて、あくまでユーザの画面には
プレーンなHTMLだけを送るなら、セッション管理して
タイムアウト監視するしかない。ってことで ----> >>759
0761デフォルトの名無しさんNGNG
>>758
もしかしてクッキー管理のセッション使ってるんじゃない?

URL Rewritingでセッション変数を保持しなきゃダメよ。
0762758NGNG
>>761
>もしかしてクッキー管理のセッション使ってるんじゃない?
>
>URL Rewritingでセッション変数を保持しなきゃダメよ。

レスどーもです。サーブレットAPIが標準的にサポートしている
HttpSession APIについて、ものの本「コア・サーブレット&JSP」
によると
『ブラウザがクッキーをサポートしていればクッキーを使い
クッキーが使えない、またはディスエーブルされている場合は
自動的にURL Rewriting に切り替える』
とあるので、「あとはおまかせ」でうまくいくのかと思った
んですが…
もし、自分でセッション管理ロジック作って
>URL Rewritingでセッション変数を保持
するとなると、タイムアウト機構も自分で
書かなければいけませんね…?
0763 NGNG
割り込んですまない。

JDBCでMicrosoft SQL Serverに接続できます?
だったら、ASPから乗り換えてみようかな。
0764デフォルトの名無しさんNGNG
出来るよ。
0765763NGNG
>764
ホント?

ありがと。
0766デフォルトの名無しさんNGNG
>>746
一番新しい UNIX Magazine に、同じように tomcat4 が起動直後に
こっそり落ちる症状について書いてあったようななかったような。
0767デフォルトの名無しさんNGNG
>>758
漏れも最初試したけど、結局うまくいかなかったよ、
結局セッション維持は自分でやった
パラメータの暗号化&圧縮もしたかったしな
0768デフォルトの名無しさんNGNG
>>766
おっ!、情報どうも、探してみるわ
0769766NGNG
>>766
すまんけど、何月号か思えてない?
0770デフォルトの名無しさんNGNG
最近サーブレットプログラミングをはじめた初心者です。
WinNT4.0上でTomcat3.2.3を使ってサーブレットを開発しており、開発段階
では、TomcatのWebサーバ機能を使っているのですが、Tomcatを開始した
ウィンドウ(bin\startup.batで開く)に以下のようなメッセージが、自作サーブ
レットへのリクエスト送信タイミングと無関係に時々出ます。


2001-12-08 19:56:11 - Ctx( ): 404 R( + /scripts/root.exe + null) null
2001-12-08 19:56:12 - Ctx( ): 404 R( + /MSADC/root.exe + null) null
2001-12-08 19:56:12 - Ctx( ): 404 R( + /c/winnt/system32/cmd.exe + null) null
2001-12-08 19:56:13 - Ctx( ): 404 R( + /d/winnt/system32/cmd.exe + null) null
2001-12-08 19:56:14 - Ctx( ): 404 R( /scripts/..%255c../winnt/system32/cmd.exe) null
2001-12-08 19:56:14 - Ctx( ): 404 R( /_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe) null
2001-12-08 19:56:15 - Ctx( ): 404 R( /_mem_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe) null
2001-12-08 19:56:15 - Ctx( ): 404 R( /msadc/..%255c../..%255c../..%255c/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe
) null
java.io.IOException: Invalid argument
at java.io.Win32FileSystem.canonicalize(Native Method)
at java.io.File.getCanonicalPath(File.java:440)
at org.apache.tomcat.util.FileUtil.safePath(FileUtil.java:184)
at org.apache.tomcat.core.Context.getRealPath(Context.java:797)
at org.apache.tomcat.request.StaticInterceptor.requestMap(StaticInterceptor.java:196)
at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java:835)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:786)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)

これは、いったい何が起きているのか、詳しい方教えてください。
0771デフォルトの名無しさんNGNG
>>770
Nimda か何かの攻撃を受けているだけだ。セキュ板逝って聞いて来い。
0772デフォルトの名無しさんNGNG
>>771
げげっ!!そーなんですか?!
ありがとう
0773デフォルトの名無しさんNGNG
>>758
URL Rewriting についてちゃんと調べたのか?
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html#encodeURL(java.lang.String)
でURLに ;jsessionid=XXX を付加することだよ。

>というか、携帯電話ブラウザでは、
>HttpSessionクラスを使ったセッション管理は
>できないのでしょうか?
よって、できる。767のように自分でセッション維持のコード書いたりして
まわりに迷惑かけてはイカンぞ。
0774773NGNG
つーか
ttp://www.dmz.hitachi-sk.co.jp/Java/Tech/servlet/sample/SimpleSessionWithoutCookie.html
ホレ。 >>758
0775デフォルトの名無しさんNGNG
hageていいですか?
0776デフォルトの名無しさんNGNG
>>775
勝手に禿げて下さい。
0777デフォルトの名無しさんNGNG
Linux版のtomcat4
起動時、CLASSPATH継承しないから、
気をつけれ!
0778ウマナミナノネーNGNG
えっと、特定のファイルをダウンロードダイアログに表示させてダウンロードさせるServletと作ったのねん。
IEではちゃんと動いたのねん。
だけどNetspaceでは動かないのねん。
ファイル名がバケるとかぢゃなくて、Servletの名前が「DLOAD」だとすると

http://www.hogehoge.net/Download/DLOAD?file="もなー"

とかすると、「DLOADをダウンロードします」とか出てくるのねん。
もちろんIEだと、ちゃんと「ダウンロード中:もなー」って出てくるのねん
(日本語ファイル名問題は解決済みなのねん)

・・・Netspaceなんてだいっ嫌いなのねん(T_T)
0779デフォルトの名無しさんNGNG
>>778
なんだおまえ?
0780778NGNG
>>779

白い珍獣と呼んで欲しいのねん(^^;
0781あぼーんNGNG
あぼーん
0782778NGNG
>>781
……まぁ、別にいいけど(^^; JavaHouse-MLでも読んでるのけ?

(以下マジ)
こういう場合、削除要請出したほうがいいのでしょうか?>ALL

ちなみに問題は未だ解決せず。Netscapeはリンクの名前しか見てないのか?
0783デフォルトの名無しさんNGNG
データベースかと思いましたが一応サーブレットなのでここで教えてください。
HPのフォームから番号を入れるとDBを参照するようにしたいのです。
とりあえず,標準出力にと思いましたが,エラーが発生します。

エラー:java.sql.SQLException:[Microsoft][ODBC Driber Manager]データ ソース名および指定された既定のドライバが見つかりません。

なぜなのでしょう?お願いします。DBにはしっかりとデータはあるのですが。
環境は jdk1.3.1_01 Apach1.3.20 Tomcat3.2.3 Access2000 win98 です。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class ShowForm extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

String number = request.getParameter("number");
String name = request.getParameter("name");
System.out.println(number+":"+ ( new String(name.getBytes("8859_1"),"JISAutoDetect")));

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection myCon = DriverManager.getConnection("jdbc:odbc:FRIEND");
Statement mySt = myCon.createStatement();
ResultSet myRs = mySt.executeQuery("SELECT * FROM FRIEND_DAT WHERE Number=\"" + (new String(number.getBytes("8859_1"),"UTF-16")) + "\"");

if(myRs.next()){
long id = myRs.getLong("ID");
String Dname = myRs.getString("Name");
String Dnumber = myRs.getString("Number");
String DSyutu = myRs.getString("Syutu");
System.out.println(id + "/" + Dnumber + "/" + Dname + "/" + DSyutu);
} else {
System.out.println("該当するレコードはありませんでした。");
}
} catch(Exception e) {
System.out.println("エラー発生:" + e);
}

response.setContentType("text

 ・
 ・
 ・
 ・

AccessのUnicode圧縮は”はい”になっていますが関係ありますか。
いろいろ試しましtがまったくわかりませんでした。よろしくお願いします。
0784779NGNG
>>778
失礼したな。
丸山っつんだぁ〜
0785デフォルトの名無しさんNGNG
>>783
FRIEND ってのは ODBC Administrator (だっけ?) にちゃんと登録されてるのか?
そもそもユーザが "AND" とか付けたらエラい事になるぞ。
0786デフォルトの名無しさんNGNG
>>785
はい,コントロールパネルから行くやつですよね。
登録してあります。フォルダ内にそれらしき設定のファイルがありますし。
0787デフォルトの名無しさんNGNG
>>785
>そもそもユーザが "AND" とか付けたらエラい事になるぞ。
まずいですね,それ。
気が付きませんでした。
0788デフォルトの名無しさんNGNG
>785
すみません,今確認したところ,設定がなくなっていました。
パソコンを再起動したときにレジストリを修復がどうのこうのといっていましたので,
そのときにでも消えたのでしょうか。
登録しなおしました。
さっそくプログラムを実行しなおしてみたところ。
新しく
[Micorosoft][ODMC Driver Manager]パラメーターが少なすぎます。1を指定してください。
と出てしまいました。
こちらについてはまだ調べていませんが,お教え願いますか。
0789デフォルトの名無しさんNGNG
>>782
個人名晒したお詫びにネタを振ってやろう。サーブレット名 (というかそのエイリアス名) の後ろに
保存を希望するファイル名をくっつけてやってみな。

http://www.hogehoge.net/Download/DLOAD/もなー.zip <-- Shift-JIS の URL エンコードが必要かも

サーブレットからは request.getPathInfo() でファイル名が取得できるし、クライアントにはタダの
ファイルに見せることが出来る。Netscape ではどういう動きをするかわからんがな。やってみる
価値はあろう。
0790デフォルトの名無しさんNGNG
>>789

いえ、その書き方は日本語URLがらみでマズイっつー話が……(^^;

出来れば、Content-Dispositionで直接指定する方法を取りたいのです。それで読めなきゃブラウザが悪いという事で(苦笑)
0791デフォルトの名無しさんNGNG
>>783
ドライバ指定、もしくはURL間違ってたりすんでねぇ〜の?
他のテーブルは参照できるのか?
0792デフォルトの名無しさんNGNG
>>791
おなじようなプログラムからなら大丈夫なんです。
サーブレットではなくDosから値を渡す場合は。
0793ありがとうC ◆.aIRklLA NGNG
>>C#
一周年。おめでとうございます!
C#さんがこのスレを一人で支えてきました。
それに対してここを見たみんなでお礼の言葉を。
一言でいいです。お礼の一言をお願いします。
0794デフォルトの名無しさんNGNG
>>778
わきからすいません。
日本語ファイル名対策ってShift_JISで送るやつのことでしょうか?
0795デフォルトの名無しさんNGNG
しつもーん
Servletのセッションがタイムアウトしたことを
イベント(またはコールバックっぽいもの)
で検知することはできますか?
0796デフォルトの名無しさんNGNG
>>795
SessionBindingListener を implements した Bean をセッションに放り込んでおけ。セッションから
切り離されたタイミングで valueUnbound() が呼び出される。明示的にセッションから削除 (もしくは
セッションが invalidate) されたか、タイムアウトかどうかを判断するロジックは自分で作れ。

というか HttpSession#getLastAccessedTime() + HttpSession#getMaxInactiveInterval() * 1000 が
System.currentTimeMillis() より小さければタイムアウトということでよいのかな? これはやったこと
ないので不明。報告求む。
0797デフォルトの名無しさんNGNG
Tomcatで、負荷分散とかする方法ってあるの?
逆に言えば、高いアクセス負荷に耐えうるTomcatの運用方法はどんなものがある?
0798デフォルトの名無しさんNGNG
 はじめまして。タグリストについて、めちゃめちゃ初心者な質問があります。
根本的な間違いだと思うのですが・・・。
 症状としては、JSPに埋め込んだ「prefix」がInvalid attributeと怒られて
しまいます。
 ここに至るまでの手順は、
 1.TagSupportを継承したクラスを作り、「doStartTag()」を実装
 2.tldファイルを作成。
(tagclassはプロジェクトから指定し、nameはshowtextとする)
 3.JSPに「<%@ taglib uri="testlib.tld" prefix="test">」と
   ディレクティブを書く
 4.JSPに、「<test:showtext />」と書く。

こんな感じです。
 TOMCATでは、このtldファイルのuriをweb.xmlに書くそうですが、
VisualAgeのテスト環境なので、JSPで直接指定するそうです。
 断片的な情報ですが、なにか間違いがあるようでしたら教えてください。
0799798NGNG
タグリストじゃなくて、タグライブラリです。
おおボケですいません。
0800デフォルトの名無しさんNGNG
>>798
 (1) ${TOMCAT}/webapps/examples/WEB-INF/jsp/example-taglib.tld
   を参考に、tldファイルを作成
  
 (2) ${TOMCAT}/webapps/examples/WEB-INF/web.xml の <taglib/>
   を参考に、tldファイル所在を登録

 してみそ。
  
0801798NGNG
>>800
 早速のお返事、ありがとうございます。
ただ、悲しいかな、説明の内容が理解できるところまでいってません。

TOMCATの環境で、参考になるファイルを教えていただいたように
思うのですが、そのTOMCAT環境がないためそれすら叶いません。
 いろいろと調べながら書いたので、tld自体は大丈夫な
気がします。(それなら動くはずですが・・・)
 原因として、サーバーからtldが見えていないような気がします。
tldファイルの所在を登録しようとしても、今の環境(VisualAge
のテスト環境である、WebSphereの小さい版)ではweb.xmlが
ありません。
 これって、デフォルトでは存在せず、自前で作るファイル
なのでしょうか?
0802デフォルトの名無しさんNGNG
PrintWriter の flush() とは何をするメソッドですか
0803デフォルトの名無しさんNGNG
>>802
IOバッファに残っていて、デバイスにまだ書き込まれて
いないデータを掃きだします。
0804質問!NGNG
TomcatでDB内容閲覧Servletを製作している者です。
DB検索に時間がかかるので、getメソッドをSyncronizedにしないとうまく動いてくれません。
少しパフォーマンスが悪いようなのですが、何か解決策があったら教えて下さい。
お願いします。
0805デフォルトの名無しさんNGNG
DBの構成やSQL(使ってんだろ?)を見直す。
0806質問!NGNG
一応、SQLは単純にSELECT * FROM <Table名>です。
Type1からType4まで試してみましたが、効果があがりません。
LANの通信速度やOracleのレスポンス等の方面からの切り込みよりも、
ソース上でのチューニング方法があれば教えていただきたいのですが!
おねがいしまふ。
0807  NGNG
>>804
チューニングから始める奴は駄目。
0808あたー!!!!         NGNG
トムキャットって昔北斗の拳の主題歌を
歌ってたグループですか?
0809デフォルトの名無しさんNGNG
Apache SOAPの質問はスレを分けるべきなんでしょうか?>>ALL
ttp://xml.apache.org/soap/index.html
0810デフォルトの名無しさんNGNG
>>806
まずprofileとってみろ。まず間違いなくDBの待ちがほとんどだから。
時間を喰ってないところをどんなにチューニングしたって全然速くならない。
0811810NGNG
あ、「DB検索に時間がかかるので」って分かってんじゃん。
時間がかかってるところをいじらずにどこをいじるっつーんだ。
0812デフォルトの名無しさんNGNG
>>806

チューニングするより、まずはDBMSの学習を始める事を勧めます。
0813デフォルトの名無しさんNGNG
*を止める、きちんと列名を書く。
0814デフォルトの名無しさんNGNG
>>804
DB閲覧するだけのWebアプリ作ってるの?
WebObjects使うと、そんなの3分で作れるよ。
マジ。
0815デフォルトの名無しさんNGNG
>>804
毎回connectionを張りに逝ってるとか
0816質問!NGNG
>>815
connectionはずっとつなげっぱなしなんですが、、、
SQLの実行についてはなるべくインスタンスは最小に、かつnullになったりgcに食われないようにしたりしています。
>813,>815さん、色々とアドバイス有難うございます。
>810さん、実際、僕が聞いていたのは、レスポンスを早くするのにどんな工夫をしているのかを皆さんに聞きたかったのですが。
例えば、「Type1よりもType4の方が、、、」と言った事や、「3秒以内に同一のリクエストがある時、CSVファイルに書き出しておいた結果を利用する」と言うようなことです。
ドライバーの適材適所だとか、いろいろ軽くこなすテクニックとかですね、、
>813さん、*を使わずカラム名を直接指定してみます。
ありがとございました!
0817 NGNG
質問です。
サーバー群の入り口についてるロードバランススイッチの説明書に書いてある
「セッション」とサーブレットのセッションは関係あるんでしょうか?
0818デフォルトの名無しさんNGNG
>>817
半分くらいしか質問の意味がわかんないんだけど、一般的なロードバランシングとセッションについて書くと、もしセッション情報がメモリにあると、
ラウンドロビンなロードバランシングでは1度目と2度目のアクセスマシンが違っていたら、その2つのマシンでセッションは共有できていないわけ。
だから、セッション情報を共有する仕組みが必要。
0819 NGNG
>>818
説明書にはロードバランススイッチがセッションを保持すると書かれているのです。
20000セッションとか性能が書いてあるのです。
意味不明なのです。
0820デフォルトの名無しさん NGNG
質問です。
OSがXPなんですけど、JAVA2SDK1.3.1_02って対応してるんですか?
sunのHPではwin2000proまでしか書いていないので。
後J2EEとの違いってなんですか?
0821 NGNG
J2EEはサーバーサイド用
XPは知らない。
0822デフォルトの名無しさんNGNG
>>820
Sunにそう書いてあるのなら対応してないんだろう。
趣味で使うだけならためしに入れてみたら?
0823デフォルトの名無しさんNGNG
それにしても、ここあがんねぇ〜な
Java結構書き込みあんのに
まぁ、とりあえず、あげとく
0824デフォルトの名無しさんNGNG
>>820
たしかβ版があったと思われ
0825Java厨NGNG
Weblogicの場合
サーブレットで一時的にファイルを作成して
それを<IMG>タグのsrcに指定するような場合ですが、

作るときはWLSのHome以下のパス指定で出来たとして
参照させるにはURLにしないとだめなのですが、
この変換が分かりません…。

っていうか、
getServletContext().getRealPath("/");でnullが返ってきちゃったりするわけで…


勝手にサーバーのディレクトリいじるようなap作るなって言うなら、
どうすれば良いんですかね?
0826デフォルトの名無しさんNGNG
>>825
テンポラリファイル置くディレクトリが固定だったら、
URL自体も固定にならんの?
WebLogicをよく知らんのだがパスのマッピングしておいたら
すみそうな。
0827デフォルトの名無しさんNGNG
JSPファイルの中で自前クラスを使用する時に、
自前クラスが宣言されているclassファイルと
JSPファイルをどのように関連付けさせれば良いのでしょうか?
0828デフォルトの名無しさんNGNG
>>827
じゃぁ java.lang.String とはどう対応づけ(?)してるのかと問いたい。
0829超初心者NGNG
最近始めた超初心者です。
先輩方教えてください。

自分のパソでJSPをテキストエディタで作りました。

―――――――――――――――――――――――――――
<html><body>
<title>JSPのテスト</title>
<%
out.println("<html><body>");
    out.println("<br><h1>");
    out.println("a<br>");
    out.println("</h1></body></html>");
%>
</body></html>
―――――――――――――――――――――――――――

で、このファイルにtest.jspっていう名前を付けて保存して、
ブラウザで開いたんですけど、なにも表示されません。
どうしてですか?
0830JSP&rlo;PSJ&rle;NGNG
>>829
Tomcatかなんか、サーブレット/JSPコンテナなるものは使ってる?
0831超初心者NGNG
>>830
JSPコンテナっていうのが必要なんですか?
手元には入門用の本が一冊しかないんですが、
このサーブレットエンジン(?)に関しての説明が
はしょってあるので,よく分からないんです。
基本の基本を覚えるだけで時間かかりそう・・・。
とりあえず、>>829のhtmlで”a"を表示したいんですけど。
0832デフォルトの名無しさんNGNG
>>831
jspとしても間違ってます。。
Tomcat and Windows and jsp でgoogleして適当に入門してくださいな…
0833超初心者NGNG
>>832
ども。がんばって適当に入門します。
0834厨級者NGNG
>831
http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/
http://www.asahi-net.or.jp/~JZ6H-YMMT/servlet/
http://www.atmarkit.co.jp/fjava/javafaq/index/javafaqindex.html
0835デフォルトの名無しさんNGNG
>>829
htmlとしても間違ってます
0836デフォルトの名無しさんNGNG
>>835
確かに…。
0837J2EEチューボーNGNG
ワタクシWebLogic6.1でWebアプリケーション開発しとる物なんですが、
IE6.02とIE5.5に去年の12月に出たセキュリティーパッチを当てたブラウザから操作すると
途中でセッションが切れてしまってどうなってるんだ!
です。
どうしたもんなんでしょう?
解決策はありますか?
0838827NGNG
>>JSPファイルの中で自前クラスを使用する時に、
>>自前クラスが宣言されているclassファイルと
>>JSPファイルをどのように関連付けさせれば良いのでしょうか?
>
>じゃぁ java.lang.String とはどう対応づけ(?)してるのかと問いたい。

123.classで宣言されているabcっていうクラスなら
<jsp:useBean id="abc" class="123" scope="session">
で良いのでしょうか?
0839超初心者NGNG
>>832
ども。超初心者です。
サーブレットコンテナが必要なんですね。
それがTomcatって分けですね。
なんかだんだん分かってきたっす。

付録の入門書にTomcatついてたんですけど、
これってLinuxが必要みたいで・・・。
今のところマシン一台しかないので出来ないです。

別のマシン漁って挑戦してみたいと思います。
ありがとうございました。
0840デフォルトの名無しさんNGNG
>>839 Winでも動くよ。>>tomcat
適当に展開してbinディレクトリにあるstartup.bat起動。
そしたらブラウザで
http://localhost:8080/
にアクセスしてみ。
JDKとクラスパスの設定は済んでる仮定で。
0841デフォルトの名無しさんNGNG
トムキャットをインストールしたのに
起動しねえー
2時間もかけてやったのにー
startup.shすると、
using classpat /usr/local/・・・
って、クラスパスがずらずらでてきて、
エラーメッセージらしいのもないし
どこが悪いのかわからない・・・
0842デフォルトの名無しさんNGNG
>>841
それはstartup.shが適当に捜してきた実行時に使用するクラスパス一覧だろ。
べつにエラーメッセージじゃないと思うが。
他になんかエラーでてんのか?
http://[そのマシンのアドレス]:8080/
にアクセスしてみたか?
もしかしてWinでcygwin使って起動とか回りくどいことしてないか?
0843841NGNG
OSはレッドハットの7.2です。
もう一度やってみます。
0844デフォルトの名無しさんNGNG
>>843
tomcatバージョンいくつ?
あと、Apacheでmod_jk.so 使ってる?
0845841NGNG
少し前の本に入ってたやつだから
古いかもしんないです。
やっぱ新しいほうがいいですよね?
0846デフォルトの名無しさんNGNG
Tomcat のデフォルトポート 8080 は HTTP プロキシポートとカブってるから気をつけや。
0847デフォルトの名無しさんNGNG
>>841
新しいものを拾うより、ちょっと古めのほうが解説が転がっててやりやすいよ。
エラーが出てないんなら起動できてる気がしなくもないが。
0848(TOMCAT)&rlo;(TACMOT)&rle;NGNG
>>839
Windows版ならインストーラーのexeがある。
インストール終了後スタートメニューからスタートを選べばとりあえず起動するはず。
JSPとか動かすにはちょっと設定した方がいいけどね。
0849富猫 NGNG
tomcat3.2使ってるんですけど、よく落ちます。
JSPやサーブレットでエラーが発生すると、落ちるように
なるんですかね?
4.0.1とかに上げれば、もう少し安定するようになりますか?
0850デフォルトの名無しさんNGNG
>>848

お前何者。
0851841NGNG
む、ダメだ。
起動させたあとshutdownしようとすると
おかしくなる。
もういちどはじめからやってみよう・・・
0852デフォルトの名無しさんNGNG
>>841
漏れ、3.3使ってるけど、設定ファイルの置き方とかが、
Web上にある3.2系列の情報とビミョウに変わってて結構苦労した(初Tomcat)。

とりあえず、ps axf とかの情報を何か出さんと、誰も答えられん。

ちなみに、漏れもRedHat7.2使ってる。
0853841NGNG
>852
どっかインストール方法のってるHP
ありませんかね?
Linux自体、あまりなれてないもので・・・
0854デフォルトの名無しさんNGNG
>>852
>Web上にある3.2系列の情報とビミョウに変わってて結構苦労した(初Tomcat)。
4.0〜はweb.xmlの検証(DTDとの突き合わせ)をしますから、DTD読めないと
更に苦労しますよ(w
0855852NGNG
>>853
おいらのブラウザのヒストリには、

http://servlet.good-day.net/tomcat_ug_j.html
http://www.atmarkit.co.jp/fjava/rensai/jsp01/jsp01.html
http://www.itnavi.com/apaTomcat3.htm
http://www.nekoyanagi.com/servlet/tomcat_ug_3_2_2j.html
http://ash.or.jp/ash/java/tomcat_env.htm

あたりが残ってた。
0856J2EEチューボーNGNG
他のスレでも聞いたのですが結構困ってます。
WebLogic6.1でWebアプリケーション開発してるんですが、
IE6.02とIE5.5に去年の12月に出たセキュリティーパッチを当てたブラウザから操作すると
途中でセッションが切れてしまってしまうのです。
どうしたもんなんでしょう?
解決策はありますか?
というかこんな目に遭った人は他にはいないのでしょうか?
0857J2EEチューボーNGNG
あ、誤爆。

↑
ということを他のスレで書こうとしたのでした
0858デフォルトの名無しさんNGNG
一番安定してる環境はどれだとおもいますか?
0859デフォルトの名無しさんNGNG
>>851
linuxでtomcat4から起動してから安定稼動するまでに結構時間がかかるようになった。
ps -ef | grep java でボロボロプロセスが増えるのがみえる。
(数秒〜数十秒。linuxのスレッド実装のせいかも)

その間にシャットダウンするとおかしな事になる。
0860デフォルトの名無しさんNGNG
>>856
こちらはweblogic 5.0.1 Sp5 or Sp10
ですが IEのウインドウから子ウインドウを上げ
子ウインドウを閉じると親ウインドウで
セッションタイムアウトのエラーになります。
同じですか?

原因、対処方法等わかってますでしょうか?
0861デフォルトの名無しさんNGNG
>>856
他のスレってどこ?
0862デフォルトの名無しさんNGNG
セッションについてどなたか教えてください。
セッションはrequest.getSession(true)することで初めて
存在するものだと思っていたのですが、例えばセッションを意識せず
(request.getSession(true)を行わず)servletからJSPにforwardし
再び元のservletに戻ってきたときなどに試しにrequest.getSession(false)を
実行するとnullではなくセッションを返してきました。
これはJSPにforwardしたからなんでしょうか?
0863超初心者NGNG
WebLogicGETしました!
これで、スタンドアロンで勉強できそうです。
>>856とか>>860を読む限りなんか問題ありそうですね。
俺はまだインストールすらしてないんですけど。
がんばろーっと。
0864超初心者NGNG
>>840、>>848
ありがとうございました。
0865超初心者NGNG
追伸
>>840,848
ありがとうございました。
0866デフォルトの名無しさんNGNG
>>862
JSP は <%@ page %> タグで session="false" と明示的に記述してやらないと勝手にセッションを作っちゃう。
0867862NGNG
>>866
なるほどそういうことでしたか。
ありがとうございました。
0868J2EEチューボーNGNG
>>860
Q313672のセキュリティーパッチは当ててます?
それだけではなんとも言えないとこです。
まだ解決できない。

>>861
「他のスレ」ってのは
サーバーサイドJAVAをまたーり語るスレ http://pc.2ch.net/test/read.cgi?bbs=tech&key=1004972840&ls=100
です。
またーり語ってる場合じゃないんですが。
かなり問題。
このシステム使ってもらってる人にブラウザ限定
するわけにはいかないですし。
今のところお客さんからは聞かないですが。
0869デフォルトの名無しさんNGNG
>>868
番号は忘れましたが去年くれの
パッチ(サイトスクリプト関係含む11月付けのパッチ?)
を当ててから発生するみたいです。

他のスレそれ見ました。文体がそっくりだったので同一人物かと 笑
0870デフォルトの名無しさんNGNG
74
0871デフォルトの名無しさんNGNG
servletからサーバ上にある2つのファイルをクライアントにダウンロードするにはどうやればいいのでしょうか?
いつのファイルであれば
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "inline; filename=\"xxxx.xxx\"");
でいいのでしょうけど,続けて2つ目のファイルを送りたいのですが。
0872デフォルトの名無しさんNGNG
通常のWebインターフェイスでそんなことをしているものがあるかと問いたいが、
返送したHTML上からframeやJavaScriptを使って二つのリクエストを出させればできるでしょう。
0873871NGNG
回答ありがとう。
説明不足でした。
ブラウザ上は1つのプラグインを起動、つまりフレームはひとつです。
そのプラグインは複数のファイルをマージして表示させるビューワなんですわ。
んでoutputStreamで送り込むときに、それぞれのファイル名を指定したい,と。
無理ッすかね。
0874デフォルトの名無しさんNGNG
そのPlug-inから複数のリクエストを出させれば良い。
Appletなら楽勝。あるいはサーバ上でPlug-inが表示できるように
マージしたコンテンツを返す。
0875871NGNG
プラグインは他社のものなので修正できないんです。

>サーバ上でPlug-inが表示できるようにマージしたコンテンツを返す。
マージしたコンテンツを返そうと考えているんだけど,
それぞれのファイル名をどうやって返せばいいのか,がわからんのです。
0876デフォルトの名無しさんNGNG
PlugIn関係まじめに調べた事ないんですが、、、

Webの「サーバ・プッシュ」や、メールの添付ファイルで使われる、
「MIMEマルチパート」という形式を使えば、
MIMEタイプやファイル名を個別に指定した
複数のファイルを送る事ができる。

例えばこんな感じ:
================================================
Content-type: multipart/mixed; boundary="(^^;)"

--(^^;)
Content-type: image/gif; name="がぞー.gif"
Content-Disposition: inline; filename="C:\がぞー.gif"

gifのバイナリー・イメージ
--(^^;)
Content-type: text/html; name="てきすと.txt"
Content-Disposition: inline; filename="C:\てきすと.txt"

がぞー.gifを送りましたので見れ。
--(^^;)--
================================================

んで、PlugInが MIMEマルチパートを解釈できるかどうかとか、
送付した複数ファイル内(例:html)で相互参照をしたい時どうするか、
というあたりは、PlugInを詳しく調べてみないとわからないYO!
0877871NGNG
>>876
ありがとう。

ほほー、マルチパートで送るのですか。
おっしゃるとおりプラグインが「MIMEマルチパートを解釈できるか」
にかかっているわけですけどね。
0878876NGNG
>>877
ところで素朴な疑問なんですが、
どうして1リクエストで複数ファイルを受け取る必要があるんですか?

仕様要求 or できることはわかっているが詳細情報がない ?
0879871NGNG
>>878
私はサーバ側なので、送る方です。
ブラウザのプラグインビューワがあって、複数の画像(CAD)ファイルをマージして
表示できるらしいのですが,ご想像のように詳細情報がないのです。「できるらしい」とだけ。
いろいろ調べた結果,どうもそのビューワは親ファイルを送ると,その親ファイルに
書き込まれている複数の子ファイル名でそれら子ファイルの内容を読み込んで,結果、
マージして表示するみたいです。子ファイルは親ファイルと同じパスにある必要が
あるみたい。

なんかびっどい仕様だと思いません?
0880デフォルトの名無しさんNGNG
ひっどいですね(藁

ためしに、
子ファイル名をURLで指定したら、勝手に取りに逝ってくれる、
なんつー事はないだろうか?

だめなら、
Script or 別PlugIn で、しこしこ必要ファイルをダウンロードして、
LiveScript! か OLEscriptingかなんかで、
ターゲットPlugInをキーックしてみますか?(面倒そうなんで逝ってくる)
0881デフォルトの名無しさんNGNG
あー
ようやくtomcatのインストールおわって猫がみれた。
満足。
3時間かかっちまった。。
0882デフォルトの名無しさんNGNG
>>879
それは単にリンク付きのHTMLを返せといっているのと同じことでは?
だから、複数のファイルを生成したあとでそれらへの参照を含んだ
親ファイルなるものを送れば終わりってことでしょ
0883デフォルトの名無しさんNGNG
倉庫行き帽子
0884マルチチポストなんだけど、こっちのほうが意見期待できるのでNGNG
JRUNとTOMCAT、どっちが安定してると思いますか?

今、試作版をNT+IIS+JRUN3.1環境で作ってテストしてるのですが、
一週間に一回くらいOSごとかたまっちゃうんですよね
(たぶんJRUNが原因っぽい)
本番はlinuxになるのですが、
もしTOMCATが安定してそうだったら、乗り換えようかと思ってるのですが・・・
0885デフォルトの名無しさんNGNG
あがる?
0886デフォルトの名無しさんNGNG
すみません。
サーブレットってWindows98での開発(勉強の為)は無理ですか?
0887デフォルトの名無しさんNGNG
聞く前に試そう
0888デフォルトの名無しさんNGNG
>>887
↓を試して見ました。

http://java.sun.com/j2ee/sdk_1.3/ja/index.html
にあるJ2EEをWin98にインストールしてから、

http://java.sun.com/j2ee/sdk_1.3/ja/install.html#win_soft
を見て環境変数をAutoexec.batで設定、
リブートしてから、パスが通ってるか試す為に

------------
import javax.servlet.*;
class Test {}
------------

をjavacでコンパイルしてみたら、"パッケージjavax.servletは存在しません"
と表示されます。

で、↓「J2EE SDK v. 1.3 日本語版追補」のインストールをしてみると
http://java.sun.com/j2ee/sdk_1.3/ja/ja_sup_webpage.html

「英語版のSDKがインストールされていない」とエラーが出て、インストールできません。

そこで、「そもそもWin98での開発は無理なのかな?」と疑問に思った次第です。
0889デフォルトの名無しさんNGNG
一年ほど前にWin98でもJSDKで少しサーブレットを作って見たことがあるのですが
なんか、JSDKってJ2EEに完全に統合されちゃった(?)みたいだし、
今はWin98での開発は完全に無理なのかな・・。
0890デフォルトの名無しさんNGNG
aaaaa
0891デフォルトの名無しさんNGNG
>>888
CLASSPATH通ってないとか?

>>889
J2EEってサポート外かもしれんけどWin98に入るよ。
Servlet使いたいだけならTomcat入れるでもよい。
0892デフォルトの名無しさんNGNG
>888
http://java.sun.com/j2se/1.3/ja/download-windows.html
からj2sdk-1_3_1_02-win.exeを落としていれてみたらどうで
しょう。英語版のSDKだと思います。
0893デフォルトの名無しさんNGNG
TOMCATのJDBCで、日本語は扱えますか?
0894メールを読めば1,250円をくれました!!NGNG
1ヶ月で1通のメールが届きます(登録メールアドレスに)
このメールを確認するだけで1250円を差し上げます。
通帳の口座番号は要らない。(家に直接配達してくれる。)

わが国のサイトでもメール1通を確認すれば1〜5(円)
を貰いますが、Net先進国アメリカでは10ドルを貰います。
(広告業界はここまできている証拠です。)

このサイトはアメリカUSAのサイトで、
2002年現在日本ではほとんど加入者がいない状態です。
もう世界的に(アメリカ、韓国等で200万人以上の会員が
加入済みで実績有り)

http://www.MintMail.com/?m=1941971
このURLをクリックして入力すれば登録完了です。
0895デフォルトの名無しさんNGNG
そんな
はした金
いらねぇよ
ボケ
0896デフォルトの名無しさんNGNG
サーブレットやるのって、
J2EEじゃないとダメなんですか?
0897デフォルトの名無しさんNGNG
IBM-JDK, Apache, Tomcatでやってますが何か?
0898デフォルトの名無しさんNGNG
まちがった。
JDKのスタンダードじゃなくて、エンタープライズじゃないと
ダメなんですか?
0899デフォルトの名無しさんNGNG
あああ
きにしないでください
なんでもないです
0900スレ違いだけど、ここしかないので・・・NGNG
JSPの中で、
JavaScriptの記述や、プラグインさせるための記述(<OBJECT>や<EMBED>で)
を(HTMLと同じように)扱う事はできますか?


0901デフォルトの名無しさんNGNG
>>898
サーブレットエンジンさえ動けば何でもいいんじゃない・
0902デフォルトの名無しさんNGNG
>>900
やってみたらいいじゃん・・・
0903デフォルトの名無しさんNGNG
apaheとtomcatの設定もおわり、
それぞれがちゃんと起動するようになったんですが、
2つがちゃんと連携しているかどうかテストするには
どうすればいいんでしょうか
0904デフォルトの名無しさんNGNG
>>903
ポート指定なしで動けばれんけいしているのでは・
0905デフォルトの名無しさんNGNG
あ、:80のポート指定なしでも
apacheのページがでました。
解決?
0906デフォルトの名無しさんNGNG
>>905
アパチ止めて、確認してみる。
動かなければ連携している。
0907デフォルトの名無しさんNGNG
JRun-Studio ってどうよ?
JBuilder以上に使い方わからん……。

なんかこれで作った「らしい」害虫のプログラム、
今度DB乗せ換えするからって投げられたんだけど、
チェックロジック探そうにもモジュール構成ごちゃごちゃで
どこをいじればいいのか、ちっともわからん。

ただの愚痴になったからsage
0908デフォルトの名無しさんNGNG
HP-AS 日本語版 2月末リリースに延期マズーsage
0909デフォルトの名無しさんNGNG
個人でWebサーバーたててる人、
どんなモノおいてます?
0910質問者NGNG
クライアントからファイルのアップロードさせるとき
そのファイルの種類のチェックはどういう方法があるのでしょうか?

拡張しだけで判断するのは判断は避けたく、
ヘッダからマジックナンバーを抽出するとかあるようですが、
JAVAでそれを確認する方法をご教授願えないでしょうか?


また、その他のチェック方法もありましたら
教えて頂きたいです。

よろしくお願いします。
0911デフォルトの名無しさんNGNG
バイナリでとるんだろうから、バイナリを解析するしかないんじゃない?
あるいは、クライアントにファイルの種類を選択してもらって、それもパラメータとして送るか。

どっちにしろ、サーブレットの中でファイルのないよう解析を行うなら、形式に縛りは必要だよね。
0912デフォルトの名無しさんNGNG
Tomcat 4 で http://localhost:8080/tomcat-docs/ にあるガイドに従って
データソースや JavaMail を JNDI に配置しようとしていますが、どうも
実行時に 「java:comp がバインドされていない」と言われてしまいます。
何がいけないんでしょうか?

<Context path="/foo" ...>
  ...
  <Resource name="jdbc/XYZDS" auth="SERVLET" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/XYZDS">
    <parameter><name>user</name><value>abc</value></parameter>
    <parameter><name>password</name><value>abc</value></parameter>
    <parameter><name>driverClassName</name><value>foo.bar.Driver</value></parameter>
    <parameter><name>driverName</name><value>jdbc:foo:XYZ</value></parameter>
  </ResourceParams>

  <Resource name="mail/Session" auth="Container" type="javax.mail.Session"/>
  <ResourceParams name="mail/Session">
  <parameter><name>mail.smtp.host</name><value>localhost</value></parameter>
  </ResourceParams>
  ...
</Context>

これって java:comp/env/jdbc/XYZDS と java:comp/env/mail/Session に
オブジェクトを配置する設定ですよね…。っていうか、配置できないならその
エラーメッセージはどこに出てるんだー。
0913質問者NGNG

JPEGやGIFなどのマジックナンバー知っている方見えますか?
いろいろ調べたのですが、見つけれなくて・・・


>>911さんのご指摘により
一応、JPEGファイルを直接調べたところ、ヘッダ12バイトは
FF D8 FF E0 00 10 4A 46 49 46 00 01で固定のようです。

もっと詳細な(画像系の)仕様が知りたいのですが、
ご存知の方、もしくは仕様が載っているページなど
ありましたら、教えて頂きたいです。


よろしくお願いします。




0914デフォルトの名無しさんNGNG
file のソースでもみれば。
0915デフォルトの名無しさんNGNG
JRUN無償版怪しくないか?
不安定なようにおもう。
まあ無料版だからな
0916デフォルトの名無しさんNGNG
>>913
GIF だけなら http://www.mars.dti.ne.jp/~torao/program/appendix/gif.html に書いてあるけど、
いったんファイルかバイト配列にして URLConnection#guessContentTypeFromStream() で良いのではないか?
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/URLConnection.html#guessContentTypeFromStream(java.io.InputStream)
自前でやるにしてもここのソース見れば参考になると思われ。
0917質問者NGNG
>>916

ありがとうございます!!

参考にさせていただきます!!





0918デフォルトの名無しさんNGNG
>>871
>servletからサーバ上にある2つのファイルをクライアントにダウンロードするにはどうやればいいのでしょうか?

亀レスだけど ZIP でまとめて落とすという手もある。
ディレクトリ構成ごと落とせるので、折れはサーバ側ファイルの退避&復元とかでよく使う。
0919デフォルトの名無しさんNGNG
age
0920デフォルトの名無しさんNGNG
>>915
今の仕事のプロトタイプ版で使ったけど、
やっぱり たまにOSごと止まる

本番用に製品版を購入する予定
どれだけ差があるのか気になるところ
0921デフォルトの名無しさんNGNG
今 weblogic (5.10sp10) で開発してるんですけど,JSP や Servlet で
標準エラー出力をファイルに出したい場合,
各ファイルの先頭に System.setErr(...) を書かなくては
いけないんでしょうか.
それとも,ほかに何か方法はあるのでしょうか.
0922デフォルトの名無しさんNGNG
web.xmlの<?xml version="1.0" encoding="ISO-8859-1"?>
という記述の部分でUTF-8を指定するとエラーになりました。
このencodingには何の文字コードを指定してやるのが
一般というか正しいのでしょうか?
0923デフォルトの名無しさんNGNG
>>922
一般的には utf-8 だろうけど、それでだめなら Shift_JIS とか?
0924923NGNG
それでだめならというか、Shift_JIS で日本語書いたなら、だ。
0925デフォルトの名無しさんNGNG
>>922
utf-8 で書いていないのに、encoding="utf-8"としてない?
web.xmlを書いた文字コードを指定するべし。
たとえば、Windows 環境なら Shift_Jis とかね。

utf-8 か utf-16 で書いてあるなら、xml宣言は省略可だよ。
試してみたら?
0926デフォルトの名無しさんNGNG
JRUNの漢字が化ける。
リクエストしたとき値をGETしたとき。なぜじゃ。
0927デフォルトの名無しさんNGNG
>>925 XML宣言じゃなくてencoding属性ね。
0928デフォルトの名無しさんNGNG
>>926
> JRUNの漢字が化ける。
> リクエストしたとき値をGETしたとき。なぜじゃ。
ttp://www.ingrid.org/java/jserv/i18n/corruptedchar.html

によると,

if ((s = req.getParameter("s")) != null) {
 try {
  s = new String(s.getBytes("iso-8859-1"), "Shift_JIS");
 } catch (UnsupportedEncodingException e) {
  // エラー処理を記述する
 }
}

とかするといいみたいですが,自分もあまりよく分っていない.
0929デフォルトの名無しさんNGNG
>ServletContext sc = getServletContext();
このgetServletContext()はクラスですか、それとも
インターフェースなんでしょうか?
インターフェースServletConfigの中に、getServletContext()
というメソッドがあるのは分かるんですが、
インスタンス名.メソッド
のような書き方をされていないので?です。
なんだか関数単独で書かれているみたいで、こんな文法がJavaに
あったっけ?と悩んでいます。
厨房で申し訳ありませんが、教えて下さい。
0930923NGNG
>>929
this.getServletContext() と同義 (多分この場合は super.getServletContext() と同じ動き)。
0931929NGNG
>930
うをっ!ありがとうございます〜
サンプルプログラムを見てみると、HttpServletを継承した
クラスの中で使われていました。で、HttpServletには
ServletConfigインターフェースが実装されていて、
その中にはgetServletContext()メソッド!
superは省略できるのですね?
これだけで回答できるとはさすが・・・感謝です!
0932ほげほげNGNG
>>912
以下の記述でいけたyo
 <Context ...
  <Resource name="jdbc/HOGEDB" auth="Container" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/HOGEDB">
   <parameter>
    <name>user</name>
    <value>hoge</value>
   </parameter>
   <parameter>
    <name>password</name>
    <value>hoge</value>
   </parameter>
   <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
   </parameter>
   <parameter>
    <name>driverName</name>
    <value>jdbc:oracle:thin:@SPIKE:1521:HOGEDB</value>
   </parameter>
  </ResourceParams>
 </Context>
0933デフォルトの名無しさんNGNG
セッションとコネクションについて悩んでいます。

一日6万HITくらいする企業HPのコンテンツのひとつがJSPでできてるんですが、
最近、DBサーバが不調になりました。
というのも、DB(Sybase)の最大接続数が25で、常にその接続を使い切ってる
からです。
JSPは、その最初のページにアクセスした時点で、すぐにDBを見に行ってしまいます。
接続プーリングはJRun3.0に任せきっているので、最大接続プーリング数の
設定ができず、プーリングのタイムアウト時間を短くして対応しようと考えました。
そしたら、SEが「いくらプーリングを短くしても、25ヒット以上したら
ダメなんだから、セッションの最大数を25に制限しよう」と言い出しました。

そんな簡単なことでいいんすか?
0934923NGNG
>>933
あのさ…
まさかとは思うけど、ひょっとしてDBのコネクションを HTTP セッションに入れてんの?
もしそんなことやってるんだったらそのSEをSEと呼ばなくても良いよ。

そうじゃなくてコネクションを使い切っちゃうんだったら、ちゃんと使い終わったコネクション
クローズしてないだけでしょ。この場合、セッションの最大数じゃなくて同時受付リクエスト
数だから、どのみちそのSEはSヨに降格だな。
0935933NGNG
>>934
ありがとうございます。

>セッションの最大数じゃなくて同時受付リクエスト
>数だから

これで、Javaに詳しくない私にも、ピンと来ました。
納得です。
ちなみに、そのSEがそのJSPを設計したわけではないので、
単純にWebに疎いだけかと(^^;
とはいえ、どっちにせよ、降格は免れませんな。Sヨって方向で。
しかし、頭固そうなんで、彼が納得できるように説明できるか、不安です。
0936933NGNG
あげてしまった…
ウツダ……
0937デフォルトの名無しさんNGNG
カスタムタグむずかしすィー
表示できねー
0938デフォルトの名無しさんNGNG
あ でけた
0939デフォルトの名無しさんNGNG
ひーん
Tomcatとcocoonで携帯用のページつくってるんだけど、
session変数としてVectorにパラメータを
入れようとすると、j-sky用だけ少ししか突っ込めなくて
こまっているのれす

servletからDBで取ってきた値をXSPにわたそうとすると、
するときで、一定量を超えると500エラーになってしまうのれす。
imodeもezWEBも大丈夫なのに、

同じ現象の人で解決した人いないですか?


0940デフォルトの名無しさんNGNG
>939

500ってサーバサイドのエラーだろ?
エラーメッセージ、出てない? 出てたら教えれ。
0941939NGNG
解決ちまちた
Java関係なかった
J-phoneはパラメータの中で@とか.は使えないのね。
0942デフォルトの名無しさんNGNG
こんにちは。
どうしても原因がわからないので質問さしてください。
セッションについてなんですが、
サーブレットからJSPにリダイレクトときに
response.sendRedirect
(response.encodeRedirectURL(URL));
を使ってるのですが、サーブレットでセッションにセットしたのに
リダイレクト先のJSPでゲットしようとするとゲットできません。
しかもこれ、ちゃんとセットできてるときとできないときがあります。
できてない場合はもう一度フォームから送信するとセットされます。
極めてまれに起こる現象なので再現性がなく困っています。
どなたか分かる人いたらぜひおしえてください、お願いします!
0943デフォルトの名無しさんNGNG
クライアントのCookie受付可否の設定は?
0944942NGNG
>>943
特になにもしておりません。
というか今頃考えてわかってきたのですが、
Redirectだからまずいんじゃないかなと思ってきました。
一旦クライアントに返してるせいでセッションにセットできて
いないのかなと思ってるんですが、、、
とりあえずJSPにフォワードしてみました。
再現性がないのでまた起こるかどうかがよくわからないのですが、、、
全然関係ないですか?
知識不足でまじでわからず、ほんとにすいません。
いずれにせよ、Cookie受付可否の設定はしたほうがよろしいのでしょうか?
0945942NGNG
度々すいません。
やはり、forwardにしてみたのですが、
だめなときがありました。
やはりクッキーの設定がなんかしらの影響をおよぼすのでしょうか?
クライアントのクッキー設定なんですが、943は全く答えになって
ませんね。すいません。クッキーは無効になっていました。
初めて自分のたてたサーバにアクセスするマシンがこのような
セットされていない現象を起こしていました。
いろんなPCを用いて(学校なのでたくさんあります)
やってみたのですが、すいませんクッキーの設定が
どうなっているかはどれも確認してませんでした。
またそれらのPCは
一時的に使えただけなのでそのマシンがクッキーの設定を
許可していたか確認できません。 すいません。
原因わかればぜひよろしくお願いします!
0946デフォルトの名無しさんNGNG
クライアントに表示されるURLにjsessionidうんたらは見えてる?
あとServletとJSPは当然同じContextにあるよね。
あと、セッションのセット/ゲットって具体的にどういう操作のことを言ってる?
0947デフォルトの名無しさんNGNG
>>942
環境を書け。
IBM Visual Age for Java の WebSphere Test Environment はたまにセッションが消える。
0948デフォルトの名無しさんNGNG
>>942
オートリロードが設定されてクラスが更新されたりするとセッション消えそうだけど、
そういうことはないのか?
0949 NGNG
Forte for Java って使ってる人いる?
0950942NGNG
>>946
はい、JsessionIdは見えています。
ログイン直後のコマンド選択画面のURLに現れています。
ただ、その後なにかサービスを実行するときには消えています。
これは別にいいんですよね?
Contextも同じです。
セットとゲットはsession.setAttributeとsession.getAttributeです。

>>947
Tomcat3.2.3です。Webサーバも兼ねています。
たまに消える環境もあるんですね。そんなことがあるとは・・・

>>948
オートリロードはtrueに設定されています。
クラスが更新されていると、そのサーブレットにいったときに
セッションが消えてしまうのですか?

それでさきほど再び、初めてそのサーバにアクセスするマシンを
使ってみたのですがやはりこの現象がおきてしまいました。
それで気づいたのですが、サーブレットからJSPの連携に関して、
encodeURLメソッドを使用したURLを引数にして
redirectとforward両方でためしたのですが、
forwardメソッドでページを移動している間はセッション情報が保持されて
いるのですが、途中でredirectメソッドを使用している場所から
セッション情報が受け渡されていないことがわかりました。
(もちろんこれは最初の1回だけで次に試すときにはうまく動きます)
forwardとredirectの原理はわかっているつもりなんですが、
セッション情報に関係してくるとは考えてなかったのですが
分かる方いらっしゃったらぜひ教えてください。
よろしくお願いします。
0951デフォルトの名無しさんNGNG
セキュリティパッチを当てたIE6でセッションが引き継がれないバグ
いうのは関係ないかな?
0952942NGNG
ブラウザの問題ではないと考えています。
ブラウザはネスケやIE6.0、5.5など
さまざまなもので試してみましたがどれもこの現象が
起こるやつはおこってしまいます。
0953デフォルトの名無しさんNGNG
>>950
環境知らんし直るか分からんけど、とりあえず Tomcat 4 にしてみれ。
0954デフォルトの名無しさんNGNG
ほんとにencodeRedirectURL()使ってる?
950にはencodeURL()って書いてあるよ。ただのtypoならいいけど
0955942NGNG
>>953
tomcat4でてるんですか?知らなかった、、、
機会があるときに変えてみたいと思います。

>>954
tomcatでは実装上でencodeRedirectURLとencodeURLに違いは
ないとどっかで読んだのですが、、、
自分のプログラムでは、ログイン処理を行なうサーブレットで
ユーザを管理者と利用者で行き先を変更しているのですが、
この場合はencodeURLのほうがいいのかなと思ってそちらを現在は使っています。
ただ一応encodeRedirectURLでやってみたこともあったのですが
特に変わりありませんでした。
申し訳ないですが、この2つのメソッドの違いを詳しく教えていただけない
でしょうか?
調べたのですが詳しい情報がどこにもありませんでした。
なんか質問ばかりですいません。よろしくお願いします。
0956デフォルトの名無しさんNGNG
>>955
Tomcat 4 でそれ系のバグがフィクスされてた様な…
わすれた
0957デフォルトの名無しさんNGNG
所で何で Cookie じゃなくて URL Rewriting 使ってるの?
0958デフォルトの名無しさんNGNG
960 踏んだ奴、そろそろ次スレ立ててくれ。
0959942NGNG
>>956
あ、そうなんですか!
ちょっと後で調べて見ます。ありがとうございます。

>>957
とりあえずはクッキーを使用したくない人を考えて
URL Rewritingすればいいかなと思っていました。

ああ、実は全然たいしたシステムじゃないんですが、
学生の研究兼、すでに実用化されてしまっているシステムなんです。
動いているのに、このバグを依然取り払うことができないとは、、
なにがつらいって再現性がないんですよね。
決まった規則で起こる現象なら原因解明できそうですが
いつ起こるかわからないとなると、、、
自分が使ってるPCでは絶対におこんないし、、、
0960942NGNG
スレたてさしてもらいます。
実は、プログラム板に来たのは今回が初めてなんですが、
新スレ立てたら即ウメがここも普通ですか?

0961デフォルトの名無しさんNGNG
>>959
逆に URL Rewriting でやってるならアクセスログにセッション ID が残ってるんじゃないの?
再現した時のアクセスログのセッション ID おっかけてみては。
0962942NGNG
>>961
そうですよね。ログに残ってるはずなんだから
IDおっかけてみればどうなってるかわかるかもしれませんよね。
ちょっとそういう風に記述してみます。
ありがとうございます。
問題は次にいつ起こるかか、、、
0963デフォルトの名無しさんNGNG
System.out.println(sesison.getSessionId());
してみりゃいいじゃねぇか。
Cookie効いてたらencodeURL()してもURLは変わらない。
0964961NGNG
>>962
あのさ、もしかしてなんだけど、サーブレットがマルチスレッド未対応なんじゃない?
↓みたいにローカル変数にすべきところをサーブレット内でインスタンス変数として宣言してない?

public class AbcServlet extends HttpServlet{
  private HttpSession session = null;

  protected void doGet(HttpServletRequest request, HttpServletResponse response){
    session = request.getSession(true);
    …
    session.setAttribute("hoge", "烏龍茶");
    …
    response.sendRedirect("...");
    return;
  }
}

とりあえずサーブレット内のインスタンス変数確認して、それ以外に static 宣言
されている変数やメソッドを疑ってみ。
0965質問者NGNG
(すみません、ダブルポストしています)


JSPから
<input type='file' name='img' size ='50'>
を使い、ファイル(画像)をアップロードしてDB(POSTGRES)にINSERTする場合、どのような手順になるのでしょうか?

ローカルファイルのINSERTの場合は、参考ページとして
http://www.postgresql.jp/document/pg653doc/ej/programmer/x8420.htm
には
create table images (imgname name,imgoid oid);
-----------------------------------------------
File file = new File("myimage.gif");
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement("insert into images values (?,?)");
ps.setString(1,file.getName());
ps.setBinaryStream(2,fis,file.length());
ps.executeUpdate();
ps.close();
fis.close();

とありますが・・・
これをブラウザからアップロードするやり方に変形させる場合どのようになるのでしょうか?


また、「他の方法でやっている」というのもありましたらよろしくお願いします。


初歩的な質問かもしれませんが、よろしくお願いします。


0966デフォルトの名無しさんNGNG
>>965

サーブレット
multipart/form-data
ファイル
アップロード

でぐぐれ。
0967烏龍茶NGNG
このすれはパート2が立っています。質問等はこちらへお願いします。

http://pc.2ch.net/test/read.cgi/tech/1012728608/l50
レス数が950を超えています。1000を超えると書き込みができなくなります。