5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

JAVAサーブレットQ&A

1 :厨房 :2000/10/23(月) 00:42
日本語の参考書のまったく出てないサーブレット。
それに関するQ&A



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



3 :名無しさん@お腹いっぱい。 :2000/10/23(月) 01:04
掲示板程度でもサーブレットで組んだら何か良いことありますか?


4 :>3 :2000/10/23(月) 01:30
掲示板程度なら生産性とかあんまり関係ないのでPHPの方が軽い分だけ適しているでしょう。


5 :名無しさん@お腹いっぱい。 :2000/10/23(月) 01:35
SevletよりJNIの方が参考書は少ない。
実用性はJNIの方が高いと思うんだけど。

6 :名無しさん@お腹いっぱい。 :2000/10/23(月) 05:43
JNIはただのインターフェースなので、ソース見てすぐに使えるけれど、
サーブレットは色々と細かいTipsがありそう。性能とか。


7 :名無しさん@お腹いっぱい。 :2000/10/23(月) 17:31
とりあえず数冊出てるので間違い。>>1

8 :名無しさん@お腹いっぱい。 :2000/10/23(月) 20:08
JavaServletっていまいちよくわかんないんですけど、
簡潔に説明して下さいませんか

9 :名無しさん@お腹いっぱい。 :2000/10/23(月) 23:22
8>サーバーサイドジャバだよん



10 :名無しさん@お腹いっぱい。 :2000/10/23(月) 23:26
XMLの本はスゴイ勢いで増えてのに・・・
なぜサーヴレット本はすくないの?
東鳩サーブレット ぽっぽっぽ

11 :名無しさん@お腹いっぱい。 :2000/10/23(月) 23:29
ServletはCGIのようなシステムの代替案でしかない。

XMLはテキストデータフォーマットの標準化共通化の
最右翼。これがディファクトスタンダードになれば
どんだけのコストを削れるか。。。

12 :名無しさん@お腹いっぱい。 :2000/10/23(月) 23:33
EJBとサーブレットっていまいち違いがわからない

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

って感じ?
両方勉強するひつようあり?

13 :名無しさん@お腹いっぱい。 :2000/10/24(火) 00:39
11>
今まで彼女がいなかった奴がはじめて女ができた
ずっともてもての奴が今の彼女に飽きて違う女にしてみた

みたいな〜

14 :厨房 :2000/10/24(火) 00:52
サーブレット初心者でもわかりやすい解説のあるHPありますか?
http://home.catv.ne.jp/dd/chiba/ken/Java/JavaMain.html


15 :名無しさん@お腹いっぱい。 :2000/10/24(火) 01:01
>7はコテコテの理系っぽい.

16 :名無しさん@お腹いっぱい。 :2000/10/24(火) 01:16
つーか厨房がサーブレットで何やるんだよ?

17 :名無しさん@お腹いっぱい。 :2000/10/24(火) 12:45
XMLを動的に生成する場合だとServletの人気が高いですよね。
なぜなんだろ?

18 :名無しさん@お腹いっぱい。 :2000/10/24(火) 12:49
自分が勉強しないことを棚に上げて資料が少ない
とほざいてる?

19 :名無しさん@お腹いっぱい。 :2000/10/24(火) 13:01
Servletってのは CGIみたなもの。
特徴としては Perlの様に毎回起動されないので
・そのぶんのレスポンスが速い
・ServletEngine内である程度の永続性があるのでセッション管理が楽ちん
・Perlみたいな便利な正規表現は(標準では)無い
・Perlみたいなヒアドキュメントも無い(Printの嵐)
・Javaがネットワークに強いので負荷分散とかが楽チン

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

EJBってのは Beanの一種
J2EEに準拠したコンテナで管理されます。
一般にはDBと連携してることが多いです。

20 :名無しさん@お腹いっぱい。 :2000/10/24(火) 13:03
んで Servlet自体はインタフェースなんで使い方っていっても
本を書くまでも無いことなんだと思います.
ServletEngineまわりのKnowHowのほうは必要あるかも。

引数がどうやってわたってきて どうすれば出力できるかって
ところだけ理解しちゃえば あとは普通のプログラムです。
Java特有の機能をつかっていろいろするのは また別の本を
読むのがいいでしょう

21 :名無しさん@お腹いっぱい。:2000/10/24(火) 20:51
>>18
同感。
少なくともJavaでコード書いたことあるやつなら
そのへんのHPでServletの簡単なプログラムの作り方
ぐらいは理解できる。そうすれば、次は排他制御とか
インターフェースの切り分け方とか具体的な疑問が
出てくる。じゃぁそういうこと書いた本はありませんか
という質問に最低なるもんなんだが...
もしかするとJavaすらやったことないのかも。だったら
まずServletよりも前の段階で学ぶことはいっぱいある。


22 :>21:2000/10/24(火) 22:28
排他制御とか インターフェースの切り分け方とか書いた本はありませんか


23 :名無しさん@お腹いっぱい。:2000/10/24(火) 22:33
排他制御とインターフェースの切り分けってなんですか?

DBとかの排他制御みたいな感じ?

24 :名無しさん@お腹いっぱい。:2000/10/24(火) 22:51
htmlを生成するとき

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

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

ってやるのって違いはでる?
面倒なので後者でやる場合が多いけど
(JSPを使えばいんだろけど)


25 :名無しさん@お腹いっぱい。:2000/10/24(火) 23:26
誰か、MSのCOM+と比較してほしい。

26 :名無しさん@お腹いっぱい。:2000/10/24(火) 23:58
>24

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

2.printlnは行末に改行文字挿入して出力してる。

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

もし聞かれたらこんな感じで答えるけど、満足?? >> 22


28 :21:2000/10/25(水) 01:47
そいや、クライアントから渡された文字列がgetParameter*()で文字化けとかも実際にやっていれば出そうな疑問だけどこういう実装依存なとこがある話は書籍だとつらいですか。かえってMLとかのアーカイブ検索したほうがいいかもね。


29 :名無しさん@お腹いっぱい。:2000/10/25(水) 04:04
>> 24
後者は以下のコードと同じ.

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

なんのことかわからなかったらまず String の API Document を読め.


30 :名無しさん@お腹いっぱい。:2000/10/25(水) 11:38
multipart/form-data もサポートされてないね

31 :22:2000/10/25(水) 12:31
満足っす

32 :名無しさん@お腹いっぱい。:2000/10/25(水) 21:06
26>29>
満足っす

まずはJAVAからっすね。
サーブレット書きながら、
いきつもどりつ勉強しとります。

33 :名無しさん@お腹いっぱい。:2000/10/29(日) 12:06
cookieのことなんですが、IE5.5とJSQDK-1.0.1を使ってます。
cookieをブラウザに送って、ブラウザからクッキーを受け取ることは
できるのですが、そのcookieがどこにできたのかなぞです。

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



34 :名無しさん@お腹いっぱい。:2000/11/01(水) 05:35
インターネットキャッシュの中にないか?

35 :名無しさん@お腹いっぱい。:2000/11/01(水) 19:43
ないんですよ〜

すごいなぞ

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



36 :>33:2000/11/01(水) 22:47
クッキーが実際にファイルに書き込まれるのは、
ブラウザを閉じたとき。


37 :>28:2000/11/01(水) 22:55
MVCの切り分け、悩みます。切り分けとはいえ、MVCそれぞれ
の結合度が強く、例のアーキテクチャパターンの本に書いて
あるデメリットをまともにくらいました。

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


38 :名無しさん@お腹いっぱい。:2000/11/02(木) 23:29
36>

ありがとうございます!

39 :名無しさん@お腹いっぱい。:2000/11/03(金) 00:12
VisualAge3.5についてるWTEって
サーブレットチェーンできんのかあああ!?

40 :名無しさん@お腹いっぱい。:2000/11/03(金) 08:29
素直にWebsphereそのものを入れちゃいえばいいのに。
開発者ならタダだよね。


41 :>40:2000/11/04(土) 00:24
39には同感。
40の言うことは正論なんだけど。
WSS+VAJ+WAS+DB2をまともに動かすには512MBくらいメモリ必要でしょ。
うちはビンボーだし。マシン買うには上の上の上まで説得しないと
稟議通らないし。



42 :39:2000/11/04(土) 00:29
業務でもWebsphere使ってません。
っていうか今はJavaの仕事してません。

仕方ないので、JavaWebServer落として来ました。

43 :40:2000/11/04(土) 01:57
>>41
>うちはビンボーだし。
あらら、それは失礼。


44 :???????????????B:2000/11/05(日) 19:41
VAJの無料バージョンにもサーブレットのテスト環境みたいのあるの?
J2EE対応でタダのRAD ないか

45 :5流SE:2000/11/05(日) 21:31
>例のアーキテクチャパターンの本
ってどの本でしょうか?
サープレット/JSPを使ったシステムのいい見本
って有りませんか?どうも、自分の設計に自信が
もてないんですが。

46 :名無しさん@お腹いっぱい。:2000/11/08(水) 19:15
charset=iso-2022-jp
にしてもネットスケープで文字化けします

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

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

いろいろ試して頭が混乱してしまいました


47 :名無しさん@お腹いっぱい。:2000/11/09(木) 08:48
>以下の過程で使用すべき文字コードってなんでしょうか?
>1 コードを書く

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

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

この二つが問題。

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

というけど、2と3のどちらの段階でcharsetを指定しているの?
具体的には2だと<meta>タグ中での指定。3だとHTTPレスポンス
ヘッダ中のcontent-type:で指定。
ここで重要なのはnetscapeは2よりも3を優先させるということ。
getWriter()で得たストリームに出力するときにcontent-type:を
指定していると思うからそこでcharsetの指定をしてみよう。


48 :47:2000/11/09(木) 08:59
付け加えるけど、2と3のどちらかでcontent-typeのcharsetを指定していない場合は、
デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。
ただhttp転送においてレスポンスヘッダ中のcontent-type:ヘッダは必須だから、ここ(3)での
charsetの指定も必須となる。だから、2のMETAタグ中でcontent-typeの指定は,やらないほうが
無難ね。<META>タグ中での指定が必須となるのは、ユーザがブラウザの保存機能で
htmlデータをローカルに保存することが想定される場合。この場合は、メタ情報がなくなる
から、htmlデータ中にメタ情報を置く必要がある。


49 :47:2000/11/09(木) 09:02
文章わかりにくいなぁ。反省。
>デフォルトでus-asciiが指定されたと規格上は見なされるから、二つの間で矛盾が生じる。
(2と3のうちcharsetを指定していない側のcharsetは)デフォルトで〜〜、二つの間で矛盾が生じる。
ね。


50 :名無しさん@お腹いっぱい。:2000/11/09(木) 19:26
ありがとうございます!

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

ということですよね??


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

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

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

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

pw.println("<html><head>");

51 :47:2000/11/09(木) 22:50
>1 ソースを書く文字コードは何を使ってもOK。
基本的にはプラットホーム依存だけど、-encodingオプションで
明示的に指定してあげる限り、なに使ってもOK。それ以上は
あなたの環境がわからないので答えられません。

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

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


52 :名無しさん@お腹いっぱい。:2000/11/09(木) 23:33
こーどの後ろはpw.printlnでHTMLを書いて終ってるので、
怪しいことはしてないと思います。
(getByte()とかはいれてないです)



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

エディターで書かれたコード

コンパイル時にコードを使用しているコードを明示指定

unicodeに変換される

ですよね

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

とりあえずエディタで使用する文字コードの謎はとけました
ありがとうございます

54 :JRun3.0:2000/11/10(金) 03:20
Apacheを1.3.6から1.3.14へバージョンアップしたのと同時に
JRunも2.3から3.0へとバージョンアップしました。
ところが、これベンダーが代わったらしく
管理ツールが大幅に変更になってしまいました。
おかげで、サーブレットのクラスファイルを何処においていいのやら
さっぱりわかりません。
ドキュメントを探しても2.3のばかりです。
3.0の有用なドキュメント等ご存知でしたら教えてください。

55 :名無しさん@お腹いっぱい。:2000/11/11(土) 21:26
>54
adminServerを立ち上げるとチュートリあるがでてくるから、
そのとおりにやってみては?
日本の資料は確かにふるいんで訳に立たなくて苦労した想い出がありました

56 :6流SE:2000/11/12(日) 19:14
>45
>>例のアーキテクチャパターンの本
>ってどの本でしょうか?

"Pattern oriented software architecture -- A system of patterns"
個人的に、GoFのDesign Pattern よりもわかりやすく面白いと
思ってます。


57 :名無しさん@お腹いっぱい。 :2000/11/13(月) 01:59
ていうか、JAVAってSUNに超大金払うか、パートナーにならないと
サポートしてくれないんだろ?ってことは所詮お遊び言語としてしか
使えないような気がするんだが・・・・・
JSPでシステム構築しても、結局は信頼性がおけない。
そんなんだったらASPでコード書いた方がマシってスレ違いですか?
すいません。

58 :名無しさん@お腹いっぱい。:2000/11/13(月) 03:40
>57
今ごろ何言ってんの
使ったこと無いくせに

59 :名無しさん@お腹いっぱい。:2000/11/14(火) 20:40
あの〜JRUN3.0のdefaultServerがどうも不安定です。
restartをかけて、ブラウザからアクセスすると、
「このサイトは大変混雑うんぬん」と言われてはじかれます。
ポートを8100から8010とかにかえてみたりしたのですが、
どうもつながったりつながらなかったりです。

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

同じような現象が起きたかたいらっしゃいますか?

60 :名無しさん@お腹いっぱい。:2000/11/15(水) 06:40
tomcat使ったら?

61 :名無しさん@お腹いっぱい。:2000/11/15(水) 18:50
EJBも使いたいのです



62 :名無しさん@お腹いっぱい。:2000/11/16(木) 01:43
ASPに戻ったら?

63 :名無しさん@お腹いっぱい。:2000/11/16(木) 16:52
.aspならスレ違い

64 :はとサーブレット:2000/11/17(金) 10:18
JRunってJ2EEのペットショップみたいなサンプルついてないのですか?

65 :名無しさん@お腹いっぱい。:2000/11/17(金) 18:27
なんかPDFの詳細なマニュアルにJ2EEの解説も詳しく書いてあった
>JRUN

EJBのセッション管理とかってSERVLETより楽そうなんだけど、
やっぱりどっちも勉強すべき?
EJBをメインで足りない所をServletで補うスタイルで
勉強すべきかなぁ

66 :はとサーブレット:2000/11/17(金) 18:36
>65
C:\Program Files\Allaire\JRun\docs\pdfのマニュアルですか?
英語やないですか。

67 :NTTGM:2000/11/17(金) 19:24
http://www8.tok2.com/home/NttWkk/


68 :名無しさん@お腹いっぱい。:2000/11/17(金) 20:43
66>
/opt/jrun/docsのなかのPDFです

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

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

とか言いつつ日本語でEJBの解説ページないかな〜
って聞いてみたりして

69 :名無しさん@お腹いっぱい。:2000/11/17(金) 20:45
会社のIIS3.0にこっそりJRUNとかTOMCATをくっつけてみたいのですが、
あとで簡単に戻せますか?

JRUNのマニュアルを詠んだられIISの設定を書き換えちゃうようなことが
かいてあったんでちょっと恐いです

70 :名無しさん@お腹いっぱい。:2000/11/17(金) 20:58
>69
こっそりとではなく責任をとるつもりでやれ。

71 :えっ!:2000/11/18(土) 01:11
>>47
もしかして、

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

とかやるのって最低っすか?
よくやっちゃうんですけど。


72 :あぅ。:2000/11/18(土) 01:15
>>71
しまった。間違った。

A = new String(A.getBytes("8859_1","JIS_AutoDitect");
>A = new String(A.getBytes("8859_1","JIS_AutoDitect"));
だ。右括弧1こ足んなかった。

73 :名無しさん@お腹いっぱい。:2000/11/18(土) 03:01
47のはソースで使うの文字コードで
これはpostされる文字なんでいいんでないの?
自分で決められないし。

74 :47:2000/11/18(土) 16:08
>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だった気がする。


75 :71=72:2000/11/19(日) 00:40
73&74さん
 レスありがとうございます。
 47さんの「getBytes最悪」で、getBytesだけに意識がいってしまいました。
 で、8859_1は、BEAのサイト(アドレス失念)のオラクルとの接続、とかいう所に
 あったのをそのま使ってました。
 そろそろUTF-8って方も勉強しなくちゃ、なんですね。
 もっと精進しなくては。

76 :名無しさん@お腹いっぱい。:2000/11/19(日) 06:00
JavaアプレットからはネットワークJDBCドライバでDBアクセスするわけですが、
Javaサーブレットからは何でDBアクセスするんですか?
サーバ側で実行するからJDBC-ODBCブリッジですか?

あと、サーブレットがアプレットより優れている点て何ですか?


77 :名無しさん@お腹いっぱい。:2000/11/19(日) 14:35
サーブレットもJDBCですよ

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

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



78 :名無しさん@お腹いっぱい。:2000/11/19(日) 14:50
>>68

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

これくらいっきゃ知らねぇ。
他にもぼしゅー


79 :名無しさん@お腹いっぱい。:2000/11/20(月) 07:54
age


80 :今皿:2000/11/20(月) 11:48
76さんの質問は
CGIがJavaScriptより優れている点は何ですか?
という質問と同質ですね。

81 :名無しさん@お腹いっぱい。:2000/11/20(月) 19:52
79>サンキュー


82 :名無しさん@お腹いっぱい。:2000/11/23(木) 01:01
JSPなんですけれど、上手く理解できない部分がありました。

<%@ include file="hogehoge.jsp" %>

<jsp:include page="hogehoge.jsp"/>

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

CQ出版社の「OPENDESIGN増刊 JAVA SERVER PAGE詳細」て本を
買ってみましたけれど、「動的/静的なリソース(ファイル)」
という言葉が漠然とあるだけで、よく理解できませんでした。

83 :名無しさん@お腹いっぱい。:2000/11/23(木) 01:05
>>82
実行結果をインクルードするのと、実行前のソースをインクルード
することの違いじゃない?

84 :名無しさん@お腹いっぱい。:2000/11/28(火) 02:27
あげるべきか、上げざるべきか。上のスレでservletの話題出てないから
定番スレってわけでもなさそうなので、とりあえずageず。


85 :名無しさん@お腹いっぱい。:2000/12/02(土) 00:40
JRUN3.0のWEB-INF/classes/フォルダに置いたアプレットの
正しい指定の仕方で悩んでいます

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

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

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


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

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

アプレットの起動はNetscapeから↓です
http://localhost:8100/hoge/AppletTest.html

86 :名無しさん@お腹いっぱい。:2000/12/02(土) 17:09
問題がしぼれたのでもう一度整理します

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

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

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

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

servletフォルダ以下にはappletを置いても呼び出せないのでしょうか??

87 :名無しさん@お腹いっぱい。:2000/12/07(木) 11:35
Apache + TOMCAT3.2 final 使ってるんですが、マニュアル通りサーブレットの
置き場所としてmyappをbuild.batでビルドしたらエラーが出ました。
TOMCAT3.2のバグですかね?
Apacheのクラスがないみたいなエラーでした。

88 :名無しさん@お腹いっぱい。:2000/12/07(木) 11:55
>87
build.xmlの13行目が/>でxml的に閉じられていないようです。
あと、CLASSPATHにtool.jarが要ると思います

89 :名無しさん@お腹いっぱい。:2000/12/09(土) 03:25
>>86
>servletフォルダ以下にはappletを置いても呼び出せないのでしょうか??
馬鹿すぎて放置されているようだが…できません。

90 :名無しさん@お腹いっぱい。:2000/12/10(日) 01:34
ありがとうございます


91 :バカ学生:2000/12/13(水) 23:52
すいません、セッションについて教えてください。

A、B、Cと3つのサーブレットがあります。
Aでログイン(認証)を行い、成功すると、セッションを生成して、
Bにリダイレクトして、BのdoGetを行います。
このときは、URLにも、sessinID(ながい文字列)が付いていて、
特に問題はありません。
その後、Bのdogetで生成されたHTMLフォームに対して書き込み、
BのdoPostを行い、CのdoGetへ、リダイレクトします。
このとき、Cでsessionがgetできないのです。
Aで生成したセッションは、Bをまたいで、Cに持っていくことは
できないのですか?または、私のプログラムミスですか?
どうぞ、よろしくお願いします。

92 :馬鹿社会人:2000/12/14(木) 00:01
>>91
頭いいよ。
俺の方が馬鹿だ。

93 :名無しさん@お腹いっぱい。:2000/12/14(木) 00:30
>>91
関係ないけど、
HttpSession て クッキーでやるんじゃないの? クエリー使うの?
実装依存という気もしますが。
逃避的回避策としては
RequestDispatcher.forward 使うのはダメですか。



94 :バカ学生:2000/12/14(木) 01:02
ありがとうございます。

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

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

RequestDispatcher.forwardというのは、初めて見ました。
APIで調べても、いまいちわからず・・・
サーブレットの日本語APIなんてあるのでしょうか。。。


95 :名無しさん@お腹いっぱい。:2000/12/14(木) 03:19
>>94
HTTP 自体にセッションという概念はなくて、
(基本的に毎回接続しなおすと思って良い)
HttpSessionっていうのは、クッキーなりクエリーなりを使って
そういう下回りを意識せずに
セッション == 永続的な接続情報保持を
実現する仕組み(というかクラス)です。

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

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



96 :名無しさん@お腹いっぱい。:2000/12/14(木) 23:33
原田洋子の「JavaServlet」って本。序盤から誤記・誤字だらけ
勘弁してくれ

97 :名無しさん@お腹いっぱい。:2000/12/14(木) 23:48
>>96
個人名を出すな!
っていうかプログラム系の本って間違いだらけじゃない?(特に個人が執筆してるやつ)
自分も DirectX の本買って書いてある通り覚えたら思いっきり間違ってた。
たまたま自分のコンピュータでは動いてたが他のコンピュータで動かしたら
起動しなかったり途中でハングったり大変だったよ。

98 :バカ学生:2000/12/14(木) 23:54
91の問題はクリアしました。
session変数を、メソッドの中でなく、外で
グローバル宣言(?)したらできました。。
メソッド内だと、だめなんですか?

ただ、サーブレット間を行き来するときに、
なぜかセッションが消えていたり、復活していたり、
なんか動きが怪しいです。

99 :名無しさん@お腹いっぱい。:2000/12/15(金) 00:22
<<98
それだと thread-safe じゃないのでヤメてください。
つーか getSession で毎回取得すればいいのに。

100 :名無しさん@お腹いっぱい。:2000/12/15(金) 00:33
>>97
だって7刷もしてるのに全然訂正が入らないってのはひどいじゃない。
初心者向けの本だってのにさ。

101 :バカ学生:2000/12/15(金) 02:24
>>99
thread-safe というのがわからないのですが。。

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

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




102 :名無しさん@お腹いっぱい。:2000/12/15(金) 03:19
>>101
getSession(false) です。(true)でもいいけど。
getSession(true) はなにも毎回新しいのを作るわけではなく、
無いなら作る、というだけです。

thread-safe の話は servlet の資料を読むと必ずでてくるので
探してください。


103 :名無しさん@お腹いっぱい。:2000/12/15(金) 17:37
sessionがらみで便乗質問させて下さい。
96の本を参考にしてるんですが、
sessionにputValue()でStringの値をセットした場合は
問題ないのですが、参照型のインスタンスだと、
実行時にClassCastExceptionでエラーになってしまいます。

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

こんな感じなんですが…
キャストの仕方がまずいのでしょうか。

104 :むぎ茶:2000/12/15(金) 19:46
Object o = session.getValue("user");
System.out.println(o);
でもして 実際に何が帰ってきてるのか確かめろ

105 :103:2000/12/18(月) 10:53
レスありがとうございます。
println()で出力すると、
"User@"に続いてアドレスらしき値が表示されます。
Stringの場合は、Objectで出力しても文字列がそのまま出力されるので、
なにか値の取り出し方に違いがあるのでしょうか?



106 :むぎ茶:2000/12/18(月) 12:44
"User@"って表示される時にも ClassCastException でますか??
System.out.println(o.getClass());
のほうがいいかな。

107 :103:2000/12/18(月) 13:31
Objectクラスに代入してる分には
ClassCastExceptionは出ないです。
getClass()でやってみた所、
"class User"と出力されました。


108 :むぎ茶:2000/12/18(月) 15:51
o.getClass eq User.class なのに
User u = (User)o; で
ClassCastException がでるの??
本当にそうだとすると処理系のバグ??
同名で別の User クラスがあるとか?
わかんね

109 :103:2000/12/18(月) 17:04
もう少し調べてみます。
勉強になりました。
ありがとうございました。


110 :バカ学生:2000/12/20(水) 17:29
>つーか getSession で毎回取得すればいいのに。
>getSession(false) です。

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

thread-safe というのは、スレッド関係ですね。勉強してみます。
ありがとうございました。

111 :バカ学生:2000/12/20(水) 17:33
もう一つご相談なんですけど、HTMLから
ボタンを押して、他の(サーブレットが出力した)画面に
行くようにしたいのですが、
単純に考えて、get とpostの2つしかないので、
2つしかボタンが作れず、分岐も2つだけですか?
どなたか教えてください

112 :バカ学生:2000/12/20(水) 17:37
あ、バカだ俺。
FORMのactionを変えれば、いくらでも作れますね。。
すんまそん。。

113 :名無しさん@お腹いっぱい。:2000/12/22(金) 17:19
JDBC経由でMySQLに接続したいのですが
mm.mysql.jdbc-1.2のmysql_comp.jar mysql_uncomp.jarを
どこにおいたらいいのですか?
Tomcatのlibとかにおいているんですけど、No such driverいわれます。
現在の環境は apache1.3.14 tomcat3.1 jdk1.2.2です。


114 :バカ学生:2001/01/08(月) 13:02
ログインservletを作ったんですけど、
管理者がログインしたときだけ、管理者用の画面を
出力したいのですが、単に、管理者のID,passを、プログラム中で
文字列比較して、管理者なら、別のHTMLを出力するような
プログラムでいいのですか?

115 :デフォルトの名無しさん:2001/01/08(月) 17:07
>>113
環境変数CLASSPATHをちゃんと設定すればどこでもいいんじゃないの?
# いや、サーブレットはやった事ないんで嘘かもしれんが

116 :デフォルトの名無しさん:2001/01/09(火) 17:32
関係無いんですが、Tomcat3.2.1で使うmod_jk.soってどこかでDLできないんですか?
コンパイルして作るしかないんでしょうかね?
ちなみに構築は Red Hat + Apache + Tomcat の予定です。


117 :デフォルトの名無しさん:2001/01/14(日) 12:08
 >116 つまり、apxsしたくないってことですか?

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

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

 今月のUnixUSERにもないんでやんの....。


118 :デフォルトの名無しさん:2001/01/14(日) 12:32
>117 自己レス

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

 通らなかった場合、redhatのapacheはDSO使えない。つまり、apache
の再コンパイルとなるわけ。

119 :デフォルトの名無しさん:2001/01/14(日) 14:05
>116
mod_jk.soはここから落とせますよ
http://jakarta.apache.org/builds/tomcat/archives/v3.2-beta-8/bin/linux/i386/
でもRedHatだったら、コンパイルしたほうがよいかも。


120 :緑茶:2001/01/15(月) 15:49
ACCESS2000を使ってServletのプログラムを書いたのですが実行できません。
No suitable Driverなどというエラーが出てきます。
なぜでしょう?
ちなみにACCESS97で作ったDBを使うと動くらしいのですが、
2000で動かしたいので誰か解決策教えてください。

121 :デフォルトの名無しさん:2001/01/15(月) 19:53
ACCESSを使ってJavaなプログラムが書けるわけが無いだろ!っていうチャチャは置いといて、
ACCESS2000用のJDBCドライバを使えば良いのでは?
ACCESSは使ったこと無いからどこにあるのか知らないけど。


122 :初心者:2001/01/17(水) 20:00
サーブレットからEXCELのファイルを読み込んで、
それをブラウザに表示することってできますか?
OLEの扱いって、よく分かりません。
ダレカタスケテー

123 :デフォルトの名無しさん:2001/01/20(土) 02:00
ACCESSだったら、jdkについてるjdbcドライバが使えると思います。
jdbc-odbcブリッジってやつです。

124 :デフォルトの名無しさん:2001/01/20(土) 22:00
>>122
ServletからExecel?XMLを使え。DOMだ。
IEは5以上じゃないとダメだぞ。
って、オレもXMLは使ったことないけど。スマソ。

125 :デフォルトの名無しさん:2001/01/20(土) 23:33
ServletからJSPに日本語の値を渡してるのですが、
文字化けします
IE5.5
エディタはSJIS

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


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

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

<HTML>
<%
String parm = (String)request.getAttribute("name");
%>
<%= parm%>
</HTML>

126 :デフォルトの名無しさん:2001/01/21(日) 00:00
122>
ODBCのDSNにExcelファイルを登録できるからそれを
使ってみては?



127 :デフォルトの名無しさん:2001/02/20(火) 00:31
hoge

128 :デフォルトの名無しさん:2001/04/11(水) 06:58
hage

129 :デフォルトの名無しさん:2001/04/11(水) 09:32
>>125
サンプルじゃないけど参考文献
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html

とりあえず、JSP 冒頭の @page で指定してる文字コードと、
実行プラットホームの文字コードを確認してください。


130 :デフォルトの名無しさん:2001/04/11(水) 09:35
みんなえらい苦労してますね。
僕は富○通のサンプルをベースにhtmlライブラリ
クラスを作成してやっています。doServiceだから
getもpostも関係なし。
今までやってる仕事で近年になく楽々。
一応イメージについて補足しておきますが、ブラウザ
からアクセスすると対応するスレッドに接続できます。
出来ない場合には新規のスレッドを生成します。
そのスレッドにセッションを保存できるわけです。
当然DBなんかもコネクションは1つだけ。使い回す
からそれなりに速くできます。
ということでどの言語でもそうだけど、問題となる
のはデザインとプログラムの分離だけです。
#文字はShift JISで大体解決。〜がひっかかるけど。

131 :デフォルトの名無しさん:2001/04/13(金) 00:38
みなさんマシンはどれぐらいのスペックですか?
CPUよりメモリの方が大事なのかな?

132 :デフォルトの名無しさん:2001/04/13(金) 01:17
doService() みたいのを用意する例を結構見ますが、
なんで service() 使わないんだろね。

133 :デフォルトの名無しさん:2001/04/13(金) 08:36
ネタ心者歓迎!今更ながらにJavaを学ぼう!
の543です。

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

http://piza.2ch.net/test/read.cgi?bbs=tech&key=981424252&st=543&to=543&nofirst=true
↑こんな内容ではまってしまっています。


134 :デフォルトの名無しさん:2001/04/16(月) 15:15
ローカルから送信されたデータをサーブレットを利用して
サーバー内のtxtに書き込みたいのですが、どのようにすればいいですか?

ちなみに使用サーバーはLinuxです。


135 :>134:2001/04/16(月) 16:45
じぶんでコレを実装すれ。なぜかServletAPIではサポートされてない。
ttp://www.yo.rim.or.jp/~getsu/document/rfc1867j.txt

136 :135:2001/04/16(月) 16:52
>>134 135は早とちりだったかもしれない
ファイルのアップロードでないなら普通に好きにファイルIOすれ。

137 :134:2001/04/16(月) 21:48
>135
解決しました。
ご助言、ありがとうございました。

138 :デフォルトの名無しさん:2001/04/16(月) 21:56
サーブレットよりJSPをフォワードしたいのですが、

    getRequestDispatcher("/jsp/filename.jsp")

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

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

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



139 :デフォルトの名無しさん:2001/04/16(月) 22:02
>>138
J2SE java.util.Propertiesつかえ。
Windowsのiniファイルの機能と同じモノを
メモリ空間にキャッシュできる。

140 :デフォルトの名無しさん:2001/04/16(月) 23:51
>>138
初期化パラメータでサーバ名を指定できるようにしておいて、
init()の中で serverName = getInitParameter("serverName");
とかやっといたらどうっすか。


141 :138:2001/04/17(火) 21:25
レスありがとうございます。

>java.util.Propertiesつかえ。

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

そこで、

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

としたら、ちゃんと参照することができました。
でも、絶対パスを書いたら意味がないような。。。
やり方間違ってますか?
よろしければ解決方法、せめて参考URLを教えてください。

142 :デフォルトの名無しさん:2001/04/17(火) 22:05
>>141
???
Properties.load()の引数はInputStreamじゃないか?

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

だと思うが。あと、相対パスでもオッケイなはずだよ。


143 :コンパス:2001/04/18(水) 01:21
>>141
ClassLoaderクラスのgetResource()メソッドでURLクラスを取得できる。
当然クラスパス内にプロパティファイルがないと駄目だけど。



144 :デフォルトの名無しさん:2001/04/18(水) 13:12
"getParameter()"で取得した文字ではなく、サーブレットから直接、文字を出力しようと
思うのですが、どうやっても文字化けします。
なにか、解決策はないでしょうか?

145 :デフォルトの名無しさん:2001/04/18(水) 16:29
>144
書式(setContentType(...))を指定する時に
charsetしないと、日本語使えないよ。

具体的には
res.setContentType("text/html; charset=iso-2022-jp");
とか。


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

jsp
L jspname.jsp

Web-inf
L classes
L pac
L servlet.class


147 :コンパス:2001/04/19(木) 00:43
>>146
難しくないって。
下のかんじでOK。

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

ClassLoader loader = ClassLoader.getSystemClassLoader();

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

prop.load(input);
System.out.println(prop.getProperty("TEST"));


148 :デフォルトの名無しさん:2001/04/19(木) 01:03
リフレクションによるメタプログラミングと、ClassLoaderの使い
こなしは、Javaの真髄の一つだと思うね。

URL指定で動的にクラスローディングできるって凄い楽だとおもう。
例えば、サーバプロセスを動作したままの状態でアップデートでき
たりする。


149 :デフォルトの名無しさん:2001/04/19(木) 06:44
>>147
Weblogic使ってるけど、ファイル名を相対パスで指定する場合、
クラスパスじゃなくて、Weblogicのホームディレクトリからの相対パスになるよ。
(test.propertiesはc:\weblogicに置かなければならない)
146は置き場所が悪いんじゃないの?

150 :デフォルトの名無しさん:2001/04/19(木) 06:52
>>146
試しに new FileOutputStream("hoge.txt")
でファイルを作ってみな。
そんでExplorerでファイル検索する。そこがホームディレクトリだ。

151 :138:2001/04/19(木) 07:29
ありがとうございます。
朝から涙が出そうですぅ。早速会社でやってみます。
実は、本格的にWEBの仕事するの私的にも会社的にも初めてなんです。
JAVAだって自分でコツコツ勉強して、私以上に知ってる人誰もいない。
まだまだペーペーなのに、私が開発のリーダーのような感じになってしまって。。。
でも、ここで覚えて会社でデカイ顔してやるんだ!!!
と思ってがんばってます。

152 :デフォルトの名無しさん:2001/04/20(金) 23:41
サーブレットでBeanに値をセットして
JSPのカスタムタグでその値を表示する方法の
サンプルor参考URLありませんか?
普通にJSPにJAVAのソースを埋め込む方法(スクリプトレット?)
ならできるんですけど、
「カスタムタグでやれ」との命令が下り、
足踏み状態です。田舎なので本もありません。
どうぞよろしくお願いします。

153 :with:2001/04/21(土) 00:49
File より Context なり CLASSPATH なりのリソース系を使うのが
比較的無難な気が。
(これのマッピングも実装系でバラバラだけど・・)

154 :デフォルトの名無しさん:2001/04/21(土) 01:32
>>152
jsp:useBean をGoogleで検索するといっぱい出てくるよ

155 :デフォルトの名無しさん:2001/04/21(土) 06:53
サーブレットって何がいいのでしょう?
いろいろWEB見て回ったんだけどいまいちよくわからなかった。
perlプログラマにもわかるように超簡単な説明くださいませ。


156 :仕様書完璧:2001/04/21(土) 12:54
>>155
全てのPerlのCGIをひとまとめにして
アプリケーションと呼ぶ事はできますか?
サーブレットの集合をアプリケーションと呼ぶ、
っていうより使いこなすとそう見えてくる。
もうCGIには戻れません。

157 :初心者:2001/04/21(土) 20:49
みなさん、WebのApplication Serverって何を使っていますか?
最近Oracle9iASかWebsphereの導入を考えているんですけど、どうでしょ?
ちなみにOSはWIN2000。
使っている方、性能の善し悪しなんかをおしえてください。

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

初心者なもんで質問ばかりですいません。

158 :今度のプロジェクト:2001/04/21(土) 21:50
アパッチ+トムキャット+viクローン(たまにJBuilder)
ちゃんと金取ってやってる仕事。


159 :155:2001/04/21(土) 22:21
>>156
ううむ。大変申し訳ないがその説明理解できないです。
Perl で組んだ CGI を組み合せてアプリケーションと呼ぶのはマズイのでしょうか?
CGI に戻れないというならそこらへんの深いお話しが聞きたいです。
>>155 で 超簡単な説明くださいませ とか書いといてすんません。

160 :Webアプリは...:2001/04/21(土) 22:50
関わっている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

161 :デフォルトの名無しさん:2001/04/21(土) 23:35
WebSphere3.5+DB2+VisualAgeJava でやってます。
最低メモリは1GB欲しい>WASサーバ



162 :デフォルトの名無しさん:2001/04/22(日) 02:24
>>101
なにも考えずに、すべて getSession(true); でやってみそ。
ところで、J2EE API マニュアルの日本語版ってどっか無いかなぁ。

163 :162:2001/04/22(日) 02:27
すまん。タイムマシンに乗ってた。
# 101 っていつだ?

164 :with:2001/04/22(日) 02:46
>>155
なんにしろJava であるってのがでかい。
まずは保守性。XML や JDBC のような標準化されたライブラリの多さ。

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

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

規模によってはもちろん CGI が良いって場合も多々ある。

165 ::2001/04/22(日) 05:48
HORB

166 :デフォルトの名無しさん:2001/04/23(月) 11:03
みなさんにお聞きしたいことがありますので、質問させてください。
私はPerlでCGIを作ることができるのですが、今後のステップアップのためにJSPを
勉強しようと思っています。そこで質問なのですが、JavaサーブレットはPerlやPHP
と比べて生産性はどうなのでしょうか?
みなさんがWeb系のシステムを構築するのに、Javaサーブレットを選択された理由を
お聞かせ願えるとありがたいです。よろしくお願いします。


167 :無党派さん:2001/04/23(月) 12:11
>>166
>>164 にその答えがある。俺の答えは>>164と同じ。


168 :デフォルトの名無しさん:2001/04/23(月) 22:30
サーブレット+JSPで、DBを検索して画面に結果を表示させたいです。
Beanにはテーブルの項目名を持たせます。
データが複数件ある時はどのように処理したらよいですか?
ArrayListを使おうと思ってますが、どのように使ったらいいかわかりません。

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

自分でなんとか考えた1件だけあった時のソースです。
複数件の時はどこをどう変えたら良いのでしょう???


169 :デフォルトの名無しさん:2001/04/24(火) 01:07
なんでその ArrayList をそのまま詰めない・・・・謎だ。


170 :デフォルトの名無しさん:2001/04/24(火) 07:37
そうするとJSP側で受け取るのはBeanでなくても良いの?


171 :デフォルトの名無しさん:2001/04/24(火) 16:23
JDBCを使って他のマシンのDBにアクセスするにはどうしたらいいですか。
使用しているのはAccess97です。

172 :ノットイコール169:2001/04/24(火) 16:52
ArrayListだってBeanだ

173 :168:2001/04/24(火) 21:59
jspでMyListをBeanにキャストしたらできました。
なるほど、こういう使い方もできるのですね。
ただし!別スレにも書きましたが、
for文で回して、get(i)で取り出すと、
最後にセットしたBeanの値が出てきてしまいます。
どこが問題なんだろう。



174 :デフォルトの名無しさん:2001/04/24(火) 22:53
scriptletでサッサと済ますとか

<%
Bean[] beans = (Bean[])request.getAttribute("mybeans");
if ( beans != null ) {
for ( int i = 0; i < beans.length; i++ ) {
out.println(beans[i].toString());
}
}
}
%>

175 :デフォルトの名無しさん:2001/04/24(火) 22:56
>>最後にセットしたBeanの値が出てきてしまいます。
>>どこが問題なんだろう。

whileの中で new Bean(); してないからでしょ

176 :168:2001/04/24(火) 23:13
とりあえず明日会社でやってみます。
ありがとうございます。

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



177 :一仕事おわった!:2001/04/25(水) 21:32
>>157
思ったよかJServ安定してる。Intel Solarisいれると
勝手にはいっちゃったりするおちゃめさんだし。
個人的評価では
JServ > tomcat > websphere > jrun >>>>> InterStage
かなぁ。
InterStageっちゅうか、あれについてるDBがだめ。

178 :Java初心者:2001/04/26(木) 11:05
どなたか教えてください。
J2EEの対応OSはWin NT4.0/2000、Solaris、Linuxとなってますが、
Win 95/98で動かしたいのです。
「起動用のバッチファイルなどをいくつか修正すれば正常に動作する」
なんて話を聞いたことがあるんですが、具体的にどのファイルを
どう修正すればいいかご存知だったら教えてください。

179 :デフォルトの名無しさん:2001/04/26(木) 11:16
>>178
動かないの?知らなかった。
起動用のバッチってサーバ起動のやつですか?

180 :デフォルトの名無しさん:2001/04/26(木) 16:03
サーブレットを使用して
Linuxサーバー上でフォルダの所有権を変更したいのです。
(フォルダ生成時にroot以外の所有権を持たせても可)
何かいい方法はないでしょうか?

181 :デフォルトの名無しさん:2001/04/27(金) 00:08
フレームで分割されたHTMLをサーブレットで呼ぶにはどうしたら良いでしょうか?
メニュー(html)メイン(jsp+Bean)で構成されています。
今はフレームの構成が設定されているhtmlをfowardしています。そうすると、
HTTPエラーがそれぞれのフレーム内に表示されてしまいます。

182 :デフォルトの名無しさん:2001/04/27(金) 07:07
>>180
runtime.execでシェルスクリプトを実行すればいいよ。
csh chown..で直接実行してもいい。
でもnobodyであまり権限ないから気をつけてね。
>>181
言ってることが分からないけど、フレームを作成したいなら、
フレームメインと、それぞれのフレームに対応するサーブレット
作成すればいいよ。
特定のフレームを決め打ちして実行したいのなら、Formのtarget
指定すればいい。どっちかってぇとJavaScriptな話題なのかな?
ttp://www.irt.org/でほぼ解決すると思うよ。

183 :デフォルトの名無しさん:2001/04/27(金) 07:09
だれかoracleのutf-8をサーブレット環境で使ってる人
いますか?
文字の"−"が化けちゃいます。内部コードがutf-8
とJavaのunicodeではちゃうんでしょうかね。誰か
解決策ご存じでしたら教えて!

184 :デフォルトの名無しさん:2001/04/27(金) 07:55
>>183
http://www.asahi-net.or.jp/~hc3j-tkg/unicode/index.html

185 :180:2001/04/27(金) 11:49
ご助言、ありがとうございます。

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

でうまくいきました。


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



187 :182:2001/04/27(金) 13:40
>>184
情報ありがとうございます。やはりOracleutf-8
とJava内部でのUnicode実装が違うみたいですね。
ということはthinDriverでなくすると意外に
よめちゃったりするんだろうか。解決方法に
悩みますね。

188 :デフォルトの名無しさん:2001/04/27(金) 14:00
>>186
結構本当です。開発中はどのようにリセット
するかが問題になります。が、あまり問題に
ならない処理系もあります。経験的な話で,
申し訳ないですが、サーブレット起動の一番
頭のクラスファイルの日付で自動更新される
処理系が多いです。サーブレットスレッドの
上限はたいてい設定できると思います。
リソースは喰いまくりです。なるべく消費しない
ようにしましょう。


189 :187:2001/04/27(金) 14:15
>>188
早速のレスありがとうございます。
やっぱりリソースくいまくりですか?
気をつけます。

>サーブレット起動の一番頭のクラスファイルの日付で自動更新される
>処理系が多いです。
↑すいません。ここでいう処理系っていうのはサーブレットコンテナの
ことでしょうか。
それとも、そういう処理(リソースを解放するプログラム)を自分で
つくろうということですか?


190 :186:2001/04/27(金) 14:22
189です。
僕の名前が187になってすが186です。

191 :188:2001/04/27(金) 18:45
>>189
サーブレットコンテナっちゅうかサーブレットエンジンですね。
みたかぎり非常に楽なのがJServ,Tomcat。
JRUNは今ひとつ不明な動作がありますね。
そうそう、JSDKは毎回サーバ立ち上げ直さないと
だめですね。stopとstartのコンビのバッチ作ってます。
リソースはやはりDBアクセス大きいですね。
connectionは1セッションに1つにしましょう。

192 :181:2001/04/28(土) 09:00
フレームメインに下のように設定して
<FRAMESET>
<FRAME name="frame1" src"menu.html" >
<FRAME name="frame2" src="サーブレット" >
</FRAMESET>
このフレームメインを呼ぶようにすればいいとうのはわかりましたが、
問題は、サーブレット内でDBを検索して、
該当データがあったらフレームあり、
該当データがない時はフレームなしで単独の画面にしたいのです。
どういう方法があるでしょうか?
どなたかご存知の方お願いします。


193 :デフォルトの名無しさん:2001/04/28(土) 09:34
>>192
だからtarget決めるだけだと思うけど??
サーブレットがやるのは、その根っこの
htmlを吐くときに>>192みたいなフレームに
するか、フレームなしhtmlにするかだけでしょ?
targetきちんと決めればフレーム中のフレームとか
任意のところ狙えるじゃん。


194 :181:2001/04/28(土) 11:54
忘れてた。サーブレットではJSPをFowardしてます。
今は、ただメインフレームを呼ぶと
サーブレットが起動して、サーブレット内で指定したJSPが
そのフレーム内に表示されます。

193さんのやり方だと、
まず、サーブレットによりメインフレームを吐き出し、
そうするとそのフレームで指定したサーブレットがまた起動、
というような1画面表示するのに2回サーブレットを起動させる
イメージでよろしいですか?

195 :181:2001/04/28(土) 11:56
もう1つ質問。
<FRAME name="frame2" src="サーブレット" >
これをPOSTで呼びたいんですけど、それは可能ですか?

196 :デフォルトの名無しさん:2001/04/28(土) 22:45
>>195
JavaScriptと組み合わせれば可能だろうけど、なんでGETじゃダメなの?

197 :デフォルトの名無しさん:2001/04/30(月) 23:39
すみません、JSPでの文字コードの件なんですけど。
JSPに関係する文字コードって、

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

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

 例えば、Win環境でJSP書いて、空リス上で実行するときには、
ソースがSJIS、ContentTypeもSJIS、実行環境のデフォルト文字コードは
EUCになると思うんですけど、そういう場合は、ソースもContentTypeも
EUCで書かないといけないとか、そういうことはあるんでしょうか。
もSJIS、

198 :デフォルトの名無しさん:2001/05/01(火) 08:10
>>194
サーブレットと考えない方がいいとおもうんだけどな。
作り方にもよるけど必要なhtmlの数だけservletが必要だと。
もちろん同じservletで出力切り替えるのはできるけど
簡単に考えるならね。
>>195
たぶんセキュリティなんだと思うけど、そういうのは
セッションオブジェクトにつむのよー


199 :186:2001/05/01(火) 09:38
>>188,191
188さんどうもありがとうございます。
現状WinNT+Apache + Tomcatでサーブレットを
うごかそうとおもっています。
(あくまで勉強用の環境ですが、、)
で、たびたびもうしわけないんですが、

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

ってもう少し詳しく具体的に教えてもらえませんか?
ウチの社員に質問されまくりで困ってます。
もしくは詳しいドキュメントとかあればおしえてほしいです。。


200 :デフォルトの名無しさん:2001/05/02(水) 00:50
age

201 :デフォルトの名無しさん:2001/05/02(水) 13:05
あれー、ここのスレ、見え方おかしくなってますね。
コメントきれてたりしてますね。おれだけかな。

202 :デフォルトの名無しさん:2001/05/03(木) 08:44
>>191
 JServって、Tomcatの昔のバージョンの名前じゃないんですか?
 別のモノ?

203 :デフォルトの名無しさん:2001/05/04(金) 23:39
すみません。どなたか助けて下さい。
ClassLoader loader = ClassLoader.getSystemClassLoader();
InputStream input = loader.getResourceAsStream("properties");
こんな感じにプロパティファイルを取得したいのですが、
どうしてもgetResourceAsStreamでストリームが取得できません。
サーブレットのクラスパスのルート(WEB-INF/classes/)にファイルを置いて
ありますがなぜか読み込めません。どうしてなのでしょう・・・

#助けて下さい。

204 :デフォルトの名無しさん:2001/05/04(金) 23:40
揚げ忘れました。

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

#それではどうやってサーブレットは呼び出されるんでしょうか・・・(謎

206 :デフォルトの名無しさん:2001/05/07(月) 10:12
>>205
ZONE切ってるからでない?

207 :デフォルトの名無しさん:2001/05/08(火) 17:25
VisualAge3.5を使っています。
ViusalAgeのWebSphereテスト環境を使いたいのですが、
テスト用のWebサーバにサーブレットをどうやっておくのが
常道なんでしょうか?

先にフォルダにjavaファイルをつくってインポートすると、
classファイルもそこに生成されますか?
それともコンパイル→エクスポートを繰り返さなくてはならいとか?

208 :デフォルトの名無しさん:2001/05/08(火) 17:56
知ってるか?某F社のODBC-JDBCはqueryするだけでも
commitしないとだめなんだぞ。かなりクラクラ
きて、文句つけたら「仕様」なんだと...

209 :デフォルトの名無しさん:2001/05/09(水) 11:39
>>202
別ものみたいですよ。
Jserv開発チームから発展したJakarta-Projectが開発した
ServletコンテナがTomcatです。

くわしくは↓
http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/engines/engines.html#tomcat

210 :デフォルトの名無しさん:2001/05/09(水) 13:58
VAJ3.5Professionalを使っています。
VAJでサーブレットを作成して、
コンパイルしたときにWebサーバのservletの実行フォルダに
自動的に出力するようにできますか?

VAJでWebアプリの作り方の常道みたいのがあれば
教えてください

211 :デフォルトの名無しさん:2001/05/09(水) 14:24
個別の環境はわからないなー。
うちはJDKとJSDKしか使ってないからな。
結構サーバーでコンパイルする人いるけど
必要ないと思います。開発は95/98/meで十分。
あとファイル日付更新管理するソフト作って
活用してます。

212 :205:2001/05/09(水) 21:10
>206
ClassLoaderの取得をこのようにしたら大丈夫でした。
WEB-INF/classesの下のリソースも取得できるようになりました。

this.getClass().getClassLoader()

それにしてもクラスパスってよくわからないなー

213 :デフォルトの名無しさん:2001/05/09(水) 21:46
>>211
J2EE1.3やりたいので、Win98系じゃなくてせめてNT系にしましょうよ。

214 :デフォルトの名無しさん:2001/05/11(金) 02:20
J2EEとJ2SEの違いって、JTA?(トランザクションの管理する人)とか
EJBが使えるAPIがついてるってだけで、
TOMCATとかでJ2SEでやってたのを、J2EEにしてもJDBCのPOOLINGも
EJBでトランザクション管理とかも部品もしくはアプリケーションサーバ
などを買ってこないと出来ないのでしょうか?
その他、J2EEにするといいことってなんかあるんですか?
(というか、基本的な考え方が間違ってるのか?)

215 :デフォルトの名無しさん:2001/05/11(金) 10:47
データベースから受け取ったデータをブラウザに表示するプログラムをつくっています

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


データベースにURL TITLE COMMENTの3つの列があって、
ブラウザには
<TD><A HREF ="URL">TITLE</A>COMMENT</TD>
と言う風に表示します

216 :デフォルトの名無しさん:2001/05/11(金) 23:29
>>215
ServletからJSPを呼ぶってのはダメなのか?
その方がすっきりすると思うが。

217 :デフォルトの名無しさん:2001/05/12(土) 00:37
>>215
質問の意味がいまいちわかんないけど、こうしたいの?

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

即興だからバグは許して。

218 :217:2001/05/12(土) 00:37
あ、ごめん。
インデントなくなっちゃった。

219 :デフォルトの名無しさん:2001/05/12(土) 01:07
>>214
JMAとかJNDIとかJTAとかって、その気になれば自分でも実装できる
だろうけど(まあ、その気になればRMI相当だって自分でプロトコル
実装できるしね)、そういうのがAPIになってて、今更作って試験して
という作業しないで済む標準な手段があるのって、すっごい楽でいいと
おもうけど。

220 :デフォルトの名無しさん:2001/05/12(土) 01:27
age

221 :214:2001/05/12(土) 01:41
>>219
うん、確かにそれはすごく分かる。だって、楽したいもん。
でも、結局はベンダー(AP鯖など)に依存してて貧乏プロジェクトや
個人では使えないってことでよいのかな?
まぁ、個人で使うってことってないと思うけど(藁

貧乏プロジェクトで使いたいとなったら自分たちで実装して試験して
って、やってるくらいならJ2SEで無理やりゴリゴリ作っちゃったほうが
早いのかなって思う。

222 :デフォルトの名無しさん:2001/05/12(土) 12:42
>>210
とりあえずネットワークで共有しておいて
export で Directory 書き出しするとか。

たぶん、IBM的にはWebSphere Studioを組み合わせろ、
ってのが本流なのかな?(自分は使ってないけど

223 :デフォルトの名無しさん:2001/05/16(水) 23:07
まだServletはマイナーかなage

224 :デフォルトの名無しさん:2001/05/17(木) 02:44
>>223
つうか、すでにJSPが主流かもage

225 :デフォルトの名無しさん:2001/05/17(木) 10:51
今度スレあげるときはJSPとServletは一緒にすべきage

226 :デフォルトの名無しさん:2001/05/17(木) 13:10
サーブレット楽でいいじゃん。
関係ないけど、HORB使えって平野さんいってた
からこれから実装sage

227 :デフォルトの名無しさん:2001/05/31(木) 22:20
EJBを学び始めたんですがバリバリ使ってる人います?

うちのチームはサーブレットばかりか、Javaも初心者なので、
技術的なレベルの問題で使う機会はなさそう・・

228 :バカプログラマ:2001/06/02(土) 20:39
うちらのチームもJSP&Servletを使い始めましたが、みな初心者です。

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

ひとつのコントローラで複数のJSPからの要求をうまく処理する方法ってないものでしょうか?
初心者ですみません。

229 :デフォルトの名無しさん:2001/06/02(土) 20:44
ファイルの数が莫大なのってまずい?
たとえばコントローラをひとつのファイルにしてしまうと
みんながそのファイルをいじりたくなって、
効率がおちないかなぁ

おれも初心者だから教えてほしい

230 :デフォルトの名無しさん:2001/06/05(火) 11:54
生サーブレットってよくないか?
ちょっと思い立ってサーブレットBBS作ったけど、
便利だぞ。staticなメッセージクラスがexpireするときだけ
ファイルに書き込みだ!
でもクラス名考えないとstaticだからね。
しかも書き込みはWriteObject1行でおしまいだ。
同じ仕組みでchatもできる。

231 :デフォルトの名無しさん:2001/06/08(金) 00:26
サーブレットのサンプルソースが見られるところ知りませんか?
・掲示板
・オークション
・ショッピングカート
などを探してます。
自分で作ってみたんですが、できれば人のソースもみて改善すべきところや、
実装のセオリーをしりたいです

232 :デフォルトの名無しさん:2001/06/08(金) 08:35
>231
掲示板は掲示板日記で見つかると思う。
オークション、ショッピングカートは奥が深いのよ。
ただでは見せられない。了見狭い俺なのさ。

233 :名無しさん@お腹いっぱい。:2001/06/08(金) 10:13
>>232
んなこといわず、インターフェースだけでもみせてくで

234 :デフォルトの名無しさん:2001/06/08(金) 15:46
>>233
しょーがないなー。
tabi100.com

235 :デフォルトの名無しさん:2001/06/15(金) 16:24
オークションで時間切れの出品物を削除するのは
SQL一発でOK?

236 :デフォルトの名無しさん:2001/06/16(土) 03:38
セッション管理なんですけど
クライアントが同じ画面を二つとか
三つ立ち上げた時ってどうやって
管理すればいいんでしょ。

237 :デフォルトの名無しさん:2001/06/16(土) 10:44
Javaサラブレット

238 :デフォルトの名無しさん:2001/06/16(土) 13:38
>>236
画面ごとにユニークなIDでも振ってhiddenタグでも使ったら?
各々の画面で保持したいオブジェクトはHashtableに突っ込んで置いて
それをユニークなIDをキーとしてsessionオブジェクトに入れておく、とかね。

239 :デフォルトの名無しさん:2001/06/17(日) 08:08
かき氷とservletはじめました
PerlのText::Template.pmみたいなことできる
ありものText文字列変換classないでしょか?
(Perlのハッシュ変数が便利すぎてservlet挫折かも)

240 :デフォルトの名無しさん:2001/06/20(水) 19:13
ふたつのWebサーバがいて、片方のサーバのServletへのPOSTリクエストを
もうひとつのサーバのServletへPOSTとして転送する方法ってないかなぁ。

sendRedirectだとリクエストは無視されるし、RequestDispatcherだと
同じサーバじゃないと転送できない・・・

241 :デフォルトの名無しさん:2001/06/20(水) 23:25
動画や画像ファイルにアクセス制御するのってどうやってますか?
ふつうに誰でも見れるところに置くのはちょっと出来ないのです。
ログインしたユーザーのみ見られるとかってできないかなぁ・・・

242 :デフォルトの名無しさん:2001/06/20(水) 23:27
>>241
ServletでMIME type(Content Type)をimage/jpegとかにしたらいいだけじゃない?HTTPわかってる?

243 :デフォルトの名無しさん:2001/06/21(木) 00:08
Responseのどこにファイル名を設定したらいいのでしょうか?
素人丸出しですみません・・・>>242

244 :243:2001/06/21(木) 00:12
sendRedirect()じゃ、みんなが見える位置にしかファイルを
置けないですよね?

245 :243:2001/06/21(木) 00:31
まず、HttpServletResponse#addHeaderで、
MIMEを設定して、それから
javax.servlet.ServletResponseWrapper#getOutputStreamで、
ServletOutputStreamを取得して、printメソッドで書き込めば
いいんですね?>>242
あってますか?

246 :デフォルトの名無しさん:2001/06/22(金) 15:55
基本的な質問かもしれないんですが、
リダイレクトを使うときは
out.printは使わないのがベターなんでしょうか?
closeもしくはflushすればエラーはでないのですが
closeとflushの違いがいまひとつわからないです

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


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

try {

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

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

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

}
}

247 :デフォルトの名無しさん:2001/06/22(金) 21:29
>>246
flushだと、出力は続いているから、ブラウザと入出力が続いている。
延々と持ち続ければ、画面をどんどん更新したりするプログラムが
かける。closeすると縁が切れて、ブラウザは描画に専念する。

248 :デフォルトの名無しさん:2001/06/22(金) 21:41
つながってる状態でrquestDispatcher.foward
すなってことですね

249 :デフォルトの名無しさん:2001/06/23(土) 00:45
マルチポストになるのですがむこうではリプライがなかったのでサーブレット/JSPの
プロがいると思われるここへ書かせていただきます。
コアサーブレット&JSPと言う本で勉強しているのですがエクセル表示で詰まってます。
本どうりpage contentTypeでエクセル表示を指定、テーブルに値を代入
<%@ page contentType="application/vnd.ms-excel" %>
<TABLE BORDER=1>
<TR><TH>  </TH><TH> a</TH><TH> b</TH></TR>
<TR><TH>aaaa</TH><TD>100</TD><TD>200</TD></TR>
</TABLE>
のように書いてもエクセル表示できません。response.setContentTypeやデータを
タブ区切りにしても駄目でした。エクセル2000も入ってます。IEは5.5を使っています。
他になにか設定が必要なのでしょうか?

250 :241:2001/06/23(土) 20:59
このようにしたらできるようになりました。ありがとうございました
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++;
}

251 :241:2001/06/23(土) 21:01
つづき
bos.write(bytearray);
bos.flush();
bos.close();
out.flush();
out.close();
return;

252 :デフォルトの名無しさん:2001/06/23(土) 21:16
>>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;
}
とかやろうよ

253 :デフォルトの名無しさん:2001/06/24(日) 02:18
>>252
ありがとうございます。
java.io.*は初めて使ったのでこんなになってしまいました。逝ってきます・・・

254 :249:2001/06/24(日) 07:01
レスつかないので号泣していたところ昨日なぜかエクセル表示できました。
なんもやってないのに。こないだは何やっても駄目だったのに。自分7不思議
に入れときます。

255 :デフォルトの名無しさん:2001/06/26(火) 11:07
タグライブラリについて教えて下さい。
JSPのタグを自作できるとの事ですがこれは結構重要な事なのでしょうか?
XMLをXSLやpaserで操作するようなものですか?それならXMLで事足りるような
気がするのですが。どうもpaserを自作するような感じに思えてしまうんですが。
トンチンカンな事ぬかしてたら叩いてください。

256 :デフォルトの名無しさん:2001/06/26(火) 16:15
TOMCATが生成してくれるjasper.logが、文字化けしちゃって
盛大に困りまくっているのですが、なんとかなりませんやろか?

257 :デフォルトの名無しさん:2001/06/26(火) 23:27
>>255
カスタムタグは便利ですよ。
JSP Spec を読んで,勉強してみてはどうですか?
(ちなみに、かなりトンチンカンな事をおっしゃってますので
お気をつけてください。)

258 :デフォルトの名無しさん :2001/06/26(火) 23:46
EJBはServlet、JSPほどメジャーになってないけど実際のシステム開発
にはどんどん導入されてるよ。EntityBean(CMP)とスレートレスSessionBean
は開発経験した。EntityBeanは使いどころ間違うとパフォーマンスが激烈に落ちるから
注意しないといけないけどね。EJB2.0で導入されたメッセージ駆動型Beanを
各アプリケーションサーバは実装したらもっと使われるようになるだろうね。
(今のとこメッセージ駆動型Beanに対応してるのはWeblogicくらいか?)

259 :デフォルトの名無しさん:2001/06/27(水) 00:01
PerlCGIが使えるレンタルサーバ、ウェブスペースは多いのに
JavaServletJspが使えるとなると高価な専用サーバくらいし
かないのは何故?TOMCATってただで導入できるはずなのに・・・

260 :デフォルトの名無しさん:2001/06/27(水) 00:04
>>256
文字化けって…
もしかして、Unicode?

261 :デフォルトの名無しさん:2001/06/27(水) 00:26
>>259 実際問題セキュリティ関係が難しいよ。全員がひとつの
プロセス内で動いているわけだから、UNIX のファイルパーミッ
ションを利用できないとか、ある人のサーブレットがリソース
(メモリ/CPU) 食いまくると他のサーブレットの速度が落ちる
とか。1 スレッドあたりの メモリ/CPU 使用率まで制限しようと
思ったら、プロバイダが Java VM 作るしかないね。後はユーザ
ごとに Tomcat 立ち上げるとかだけど、Tomcat が落ちたときの
リスタートは誰がやるか、とか。現状、プロバイダにとってセールス
トーク以上のメリットがないし。

262 :デフォルトの名無しさん:2001/06/27(水) 00:57
カスタムタグは使うだけが吉。作り方を覚えてる間にどんどん出てくるから。
(当初の)JavaBeansと同じ思想だ。

263 :261:2001/06/27(水) 01:01
ちと意味不明だな。スマソ

264 :デフォルトの名無しさん:2001/06/27(水) 18:26
同時に存在するセッションの数を制限したいのですがぁー
Tomcatでー
どうしたらー
よいー?

265 :デフォルトの名無しさん:2001/06/27(水) 21:22
server.xmlのどっかに上限値がかいてあったと思う。

266 :デフォルトの名無しさん:2001/06/27(水) 23:13
>>265
それは、セッションのタイムアウトではなくて?
間違ってたらゴメソ。

267 :266:2001/06/27(水) 23:14
うう、ゴメソ。
それはweb.xmlでした・・・。
逝って来ます・・・。

268 :255:2001/06/28(木) 01:59
レスありがとう。かなりトンチンカンなやつです。ホンのいくらか勉強してみました。
サ−バーサイドでのサブルーチンですな。(またもやおかしい?)

269 :255:2001/06/28(木) 04:59
今思いついた。これってプログラマとデザイナを分けるってこと?

<myjsp:unko><%--ここにはウンコを入れといてね(はあと)--%>
とデザイナが書いておけばいいというわけだな。これが最大の利点
なのかな?

270 :デフォルトの名無しさん:2001/07/03(火) 22:35
検索機能のユーザの入力補助で
参照サブウインドウを開くプログラムを作ってます
(企業コードをサブウインドウの中から選ばせる)

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

いくらがんばってもDBから引っ張ってくる限り
遅いのは覚悟すべきなんでしょうか?

271 :デフォルトの名無しさん:2001/07/04(水) 13:01
>>270
そのウインドウに入るときに、threadで、セッションに
突っ込んでおいたら?セッションにはいってなかったら
もう一度検索するってことで。

272 :デフォルトの名無しさん:2001/07/04(水) 18:28
>271
ありがとうございます

connectionPoolingなどいろいろ考えていましたが、
ページに入ったときにセッションにいれるのは
いい感じですね
タイミングとか難しそうですがためしてみます

273 :デフォルトの名無しさん:2001/07/04(水) 18:42
HTMLのselectのなかのoptionの値って
どうやって受け取ればいいのでしょうか?
<SELECT>
<OPTION value="0" name="option1" >option1 </OPTION>
</SELECT>
はだめみたいで
getParameter("option1");
はnullになってしまいました

274 :デフォルトの名無しさん:2001/07/04(水) 19:47
>>273
nameはselectの属性じゃないの?

275 :デフォルトの名無しさん:2001/07/06(金) 17:53
サーブレットを使うのに、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

276 :VB厨房:2001/07/06(金) 18:28
今度はじめてSolaris+Servletシステム設計開発やるんだけど
なんか助言ある?

277 :デフォルトの名無しさん:2001/07/06(金) 20:23
>>273
それはサーブレットの問題じゃなかろう
HTMLも勉強しろや。

<SELECT NAME="test">
<OPTION VALUE="0" >option1</OPTION>
<OPTION VALUE="1" >option2</OPTION>
</SELECT>

278 :デフォルトの名無しさん:2001/07/06(金) 20:44
>>276 サーバサイドでは安易にシングルトンを使うな、かな。
他にも思い出したら書く。

279 :デフォルトの名無しさん:2001/07/06(金) 21:25
>276
業務が忙しくなる前に、APサーバ周りのツール類を使いこなせるようにすること

エディターでがんばっちゃう人もいるが生産性が断然ちがう

280 :デフォルトの名無しさん:2001/07/07(土) 21:42
>>278
なぜ?

281 :278:2001/07/07(土) 22:49
>>280 サーバサイドのプログラミングはマルチユーザ、マルチ
スレッドが基本。安易にシングルトン使う人ってマルチユーザ、
マルチスレッド意識してない人が多いのよね。で、後で
synchronized つけようとしても全ユーザの全スレッドがその
シングルトンの部分でシリアライズされちゃったり。

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

実例挙げればきりないけど、今までサーバサイドのフレーム
ワークの中枢部分にシングルトン持ち込んだ莫迦SEのアプリ
開発はことごとく動かなかったという経験則から (俺ではない)。
ツール程度なら問題ないかもしれないが十分注意。

282 :278:2001/07/07(土) 22:55
ちなみにそいつは COBOLER。プロシジャ型言語しか設計したこと
ない人に Java の設計させてみると、大抵シングルトンとコマンド
パターンを設計の中核に持ってくるよ。

283 :デフォルトの名無しさん:2001/07/07(土) 23:16
>>281-282
サブレの経験はないがOOP畑の勘(わら)として、
凄く適切な解説だと思う。

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

だから、OOPの効能を機能(=プロシジャ)ベースで説明しよう
などとしている入門書は、全部ドキュだ。焚書しろ焚書。

284 :278:2001/07/08(日) 01:16
とりあえずコードレビューする人は grep で static 宣言引っ掛けて、
その変数/メソッドがマルチスレッド対応してるかくらい確認せれ。
大抵何ヶ所か未対応部分が見っかるぞ。個人的には static を使用
する部分には設計責任者の承認ハンコくらい必要だとも思っている
(極論だが; もちろん static final は除外して)。

285 :デフォルトの名無しさん:2001/07/08(日) 09:14
static じゃないメンバ変数もヤバいと思うぞ?

286 :デフォルトの名無しさん:2001/07/08(日) 10:02
>>281
激しく同意。XMLじゃないけどサーブレットにネームスペース
導入して欲しい..ってパッケージ宣言か(w
関係ないけどtomcatでstatic使ったchat作ったら、サーブレット
削除してもずーっとメモリーに残っていてかなりあせった。

287 :278:2001/07/08(日) 22:09
>>285 もちろん。とりあえず static はクリティカルにマルチスレッドの
影響を受けやすいというコトで。

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

288 :280:2001/07/08(日) 22:13
>>278
さんきゅ。

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

マルチスレッドなんだから、同期非同期意識してるよな?という意識が
いるってことね。

289 :278:2001/07/09(月) 17:16
ログ出力とかキャッシュ機能みたいにシングルトンでまとめて管理しておきたい
部分はどうしても出てくるよ。シングルトンにすべきところとやっちゃいけない
ところの見極めが、よく意識しないと見えにくいかな。なんせ非同期の問題は
単体テスト通っちゃうんだから。

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

# 前に書いたエキスパート COBOLERs + 初心者 VB 使いたちのデスマーチは
# 毎回上記の問題を繰り返している…。これもスパイラル開発の一種? (藁

290 :デフォルトの名無しさん:2001/07/09(月) 18:21
私も同じコト考えてました。>>278-289 はかなり的確に表現してる
と思います。>>289 のようにインスタンスのスコープによってスキル
レベル分けるのが良いですね。

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

そうなるとサーブレット実装する人は上級者ということになってしまい
ますが。。。

291 :デフォルトの名無しさん:2001/07/10(火) 23:32
激しくアゲとこう。

292 :デフォルトの名無しさん:2001/07/11(水) 00:59
なんでtomcatはあんなんでしょうか?
フリーのものの中でも最悪の部類に入りそうなものなのに、
なぜかサーブレットエンジンとなると"TOMCAT!!"ってなるのがどうもねぇ。

他に良さそうなものって沢山ありそうなもんだけど、ないのか?

293 :デフォルトの名無しさん:2001/07/11(水) 01:12
JRunRunRun♪

294 :デフォルトの名無しさん:2001/07/11(水) 01:23
292desu
一応仕事はしてくれるってのが一番始末に悪い。
動いたり動かなかったり。。。こっちはもう心身ボロボロだっての!

295 :デフォルトの名無しさん:2001/07/11(水) 01:35
>>292
Resinいいんじゃない?
ちょっとしか使ってないけど日本語は普通に通ったよ。(shift_jis)

296 :デフォルトの名無しさん:2001/07/11(水) 01:59
>>295
それは知ってる。Resinの使いやすさや速度は。
でも今回は仕方ない。金ないし時間ないし。
それにオンボロtomcatにしても使いこなしている人だっている
わけだし。。。

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


それにしてもResinはバージョンアップの頻度が高いですな

297 :デフォルトの名無しさん:2001/07/11(水) 15:19
DBBeanがデータベースの検索結果をresultsetが持っています。
JSPで検索結果を表示したいときは、resultsetをDBBeanから受け取るべきなのか、
それともDBBeanでVectorにいったん格納して、DBのコネクトをクローズしてから、
Vectorを受け取るべきか悩んでます。
検索結果は15列で最大で200行です。

298 :デフォルトの名無しさん:2001/07/11(水) 16:17
データベース開発はまだやったことないんですがそろそろ勉強しておきたいと思ってます
JDBCに関するお勧めの本があったらぜひ教えてください
ちなみにODBCも触ったことがないのでそこらへんについても書かれている本がいいです

299 :デフォルトの名無しさん:2001/07/11(水) 17:16
>>297 後者。理由はコネクションのクローズのタイミングを JSP 側が
意識しなくて済むから。でも他人とのインターフェースに安易に
Vector 使うなよ。インターフェースの曖昧化は抽象化とは違うぞ。
レコード1個に対して Bean のインスタンスを1個作れ。

300 :デフォルトの名無しさん:2001/07/11(水) 17:50
Vectorの中にDBからとってきたレコードを格納するくらすを
格納してます

public class Emp {
String name;
String emp_id;

〜 後ろはaccessor 〜
}

301 :デフォルトの名無しさん:2001/07/11(水) 17:50
public class DBBean{

public Vector getVector() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@emp", "dbuser", "dbuser");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from T_EMP");
Vector vc = new Vector();
while (rs.next()) {
vc.add(
new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID")));
}
return vc;
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
stmt.close();
conn.close();
} catch(SQLException ex){
ex.printStackTrace();
}
}
return null;
}
}

302 :デフォルトの名無しさん:2001/07/11(水) 17:51
<TABLE>
<TBODY>
<%
Vector vc = dbBean.getVector();
Iterator iterator = vc.iterator();
while (iterator.hasNext()) {
EMP emp = (EMP)iterator.next();
%>
<TR>
<TD>
<% out.print(emp.getName()); %>
</A>
</TD>
<TD>
<% out.print(emp.getEmp_ID()); %>
</TD>
</TR>
<% } %>
</TBODY>
</TABLE>

303 :デフォルトの名無しさん:2001/07/11(水) 17:52
301
誤)
new Todofuken(rs.getString("NAME"), rs.getString("EMP_ID")));
正)
new Emp(rs.getString("NAME"), rs.getString("EMP_ID")));

304 :デフォルトの名無しさん:2001/07/11(水) 17:56
DBBeanに切断用のメソッドを作っておいて
ResultSet渡しで
JSP側で
finally{
dbBean.close();
}
ではだめでしょうか?
検索結果ごとにデータクラスを作らなくていいので、
コードは少なくなりそうですが・・

305 :299:2001/07/11(水) 18:09
>>304 JSP への forward に失敗したらどうする?やるなら
チェーン元 (サーブレット側) でやれ。APサーバでDB
接続の開放忘れはかなりクリティカルだぞ。

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

一人で作る分には JSP 内で finally も Vector 返しも良いが、
せめて Iterator か Enumeration にしといたほうが後で幸せ
かもな。それから JSP 内でレコードを取り出す場合に SQLExcepiton
が発生したらどうするんだ?ページのレイアウトが中途半端に
崩れることになるぞ。

306 :デフォルトの名無しさん:2001/07/11(水) 19:30
なかなか経験豊かな方のようですね。アドバイス参考になります。
エラーページのことは考えてなかったですが、例外をキャッチして、
エラーページにforwardにするのかなと思ってます。
これは仕様によってでしょうけど。

サーブレット側でVectorに検索結果を格納するのと、
JSP側で展開するのでロープが2度になるので、
ちょっとスピードが気になるのですが、このあたりは
安全な方法で作ってみて、とろかったらスピードを上げてこうと思います

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

一人でわめいてみたが、人の好みにもよるので強制する気はない。
まぁ自分の好きなように楽しめや。

308 :デフォルトの名無しさん:2001/07/11(水) 21:43
やっぱりJSPかなぁ。自作のHTMLライブラリで、
構築しているが、デザイン変更すんの面倒だからなぁ。
HTLMテンプレート利用すんのじゃだめ?
DB接続もSQLで陽にコントロールできるし楽だと
おもうんだがなぁ。

309 :デフォルトの名無しさん:2001/07/11(水) 22:22
JSPとXML+XSLTって相性悪くない?そんなことない?
両方を一度に使うのってありえるのかな?
表示に関する処理をやらせるって考えるなら、
xalanなんかの処理をJSPの中でやることになるけど、
なんだかなぁ。。。

310 :デフォルトの名無しさん:2001/07/11(水) 22:26
>>301
話それるけど、ちゃんとimplements Serializable
しようよ。
>>302
<% out.print(emp.getName()); %> じゃなくて、
<%= emp.getName() %> でしょ、ふつう。

311 :デフォルトの名無しさん:2001/07/11(水) 22:36
>>309
条件入力のフォームはJSPで検索結果はXML+XSLT、って感じで使ったことはあるけど
両方同時にってのは無いなあ。

312 :デフォルトの名無しさん:2001/07/11(水) 22:42
>>297
結果が200行程度ならServlet側でDBとの接続は完結しといた方がいいと思われ。
DWHのフロントエンド作るとかならいろいろ考えるところだが。

313 :デフォルトの名無しさん:2001/07/11(水) 23:03
>310
ObjectOutputStreamにする気はないんですが
implements Serializable
すると何かいいことあるんでしょうか?
サーブレットの本とかでよくimplementsしてるんですが、
いまだに理由がわかりません

<%= emp.getName() %>
確かにそうですね。ありがとうございます!

314 :デフォルトの名無しさん:2001/07/11(水) 23:53
>>313

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

永続化できる。

315 :デフォルトの名無しさん:2001/07/12(木) 17:27
<SELECT name="hoge">
の値をservletで
request.getParameter("hoge");
すると選択されている値でなくて、
選択されている値の順番が出てしまいます。
値を受け取るにはどうすればいいのでしょうか?

316 :デフォルトの名無しさん:2001/07/12(木) 17:33
>>315 <OPTION> タグに VALUE 属性付けてないだろ。
HTML の入門書嫁。

317 :デフォルトの名無しさん:2001/07/12(木) 17:34
>>315
順番ってなに?

318 :デフォルトの名無しさん:2001/07/12(木) 17:35
>316
valueに番号が入っていました。
大変失礼しました

319 :デフォルトの名無しさん:2001/07/12(木) 17:37
はずかしいなぁ、もう。ってネタか。。。

ところでJakarta関連のツール、みんな使いこなしてる?
おれ、Antぐらいしか使ってないんだけど他のものはどうなんだろう

320 :310:2001/07/12(木) 20:57
>>313
Beanをsessionに格納するときに、Serializableにして
永続化できるようにしておかないと、クラスタを組んでる
場合や、DBにセッション情報を持たせるようにした場合に
正しく動作しなくなります。

世の中に出回ってる書籍や雑誌の例では、Serializable
にしてないものも多いので注意しましょう。

321 :デフォルトの名無しさん:2001/07/12(木) 23:06
なるほど
sessionに入れるものが絡んでくるんですね
昨日いろいろSerializableの理由を考えていて、
APサーバーと関係があるのはなんとなくわかったのですが。
これですっきりしました

322 :名無しさん:2001/07/12(木) 23:38
>>313
>>314も分かってないから安心しろ。

323 :≠314:2001/07/12(木) 23:51
>>322 言ってる事は正しいと思うが...
ひょっとしてセッションを恒久化できると読んだ?
そういえば知らない人が見たらそう読めるかも。

324 :デフォルトの名無しさん:2001/07/12(木) 23:58
>>323
マシンが分散していない場合にもSerializableは意味があるのでしょうか?

325 :デフォルトの名無しさん:2001/07/13(金) 00:55
再起動がかかった時、処理中のセッションをファイルなどに保存して
おいて、起動完了後に復元するサーブレットエンジンがあるよ。
ってうろ覚えだけど JRun がやってたような気がする。

326 :デフォルトの名無しさん:2001/07/13(金) 09:11
うわぁぁ
誰が正しいこといってるのかわからなくなってきた

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

Webサーバの機能もしらないといかんですね。
調べてきます

327 :デフォルトの名無しさん:2001/07/13(金) 13:35
javax.servlet.Filterってかなり良さそうなんだけど、
tomcatが未だにservlet2.2までしか対応してない。。。

いつになったらtomcat4は正式リリースなんだ、ゴルァ!

328 :320:2001/07/13(金) 23:46
>>326
例えば、
http://www.beasys.co.jp/e-docs/wls60e/cluster/servlet.html#391123
を読もう。

> セッション データはシリアライズ可能でなければならない
>
> HTTP セッション ステートのインメモリ レプリケーションを
> サポートするには、すべてのサーブレットと JSP のセッション
> データがシリアライズ可能でなければなりません。
> サーブレットまたは JSP でシリアライズ可能なオブジェクト
> と不可能なオブジェクトが組み合わせて使用される場合、
> WebLogic Server ではセッション ステートがレプリケート
> されません。

329 :デフォルトの名無しさん:2001/07/13(金) 23:49
要するに、「サーバが、場合によってはストレージに
そのクラスのテンポラリの永続化インスタンス作るか
もしれないから、作れるようにSerializableしとけ」

ってことですね。

330 :320:2001/07/13(金) 23:50
あと、こことか。
http://www.beasys.co.jp/e-docs/wls60e/servlet/progtasks.html#929826

> シリアライズ可能な属性値の使い方
>
> 永続セッションを使用する場合、セッションに追加するすべての
> 属性 value オブジェクトは java.io.Serializable を実装する
> 必要があります。

331 :320:2001/07/13(金) 23:50
あ、入れ違い。
>>329
そういうことです。

332 :デフォルトの名無しさん:2001/07/14(土) 14:55
servlet JSP DBによる開発もなんとなくできてきたので、
EJBも勉強したいと思ってます。
個人でやるので開発環境自体にお金をかけずに勉強したいのですが、
やはりJBuilder+InplizeApplicationServer+Oracleが王道でしょうか?
WebSphere+VisualAgeだとVisualAgeにクラス数の制限があって
機能追加ができませんでした

333 :名無し:2001/07/14(土) 15:02
jbossじゃだめなの?

334 :デフォルトの名無しさん:2001/07/14(土) 20:34
EJBを勉強するならWebLogicがいいんじゃないの。
最新EJB仕様への対応が一番早いし。

評価版は同時コネクション数以外は制限も無い。

335 :デフォルトの名無しさん:2001/07/16(月) 10:58
ネームサーバってクライアントと別マシンでも当然OKなんでしょうが、
別マシンにあるネームサーバのデータソースってどうやって見に行くんですか?

ctx.lookup("データソース");
だと同一マシンしか見に行け無そうな感じですが・・・

336 :デフォルトの名無しさん:2001/07/16(月) 20:20
>>335
InitialContextのコンストラクタでPROVIDER_URL
を明示的に指定すればOK。

…という話ではなくて?

337 :デフォルトの名無しさん:2001/07/16(月) 20:54
>336
とういう話でした。
今日チュートリアルを読んでみてわかりました。

338 :デフォルトの名無しさん:2001/07/17(火) 03:56
サーブレットからブラウザを起動させる
よい方法はないですか?

339 :デフォルトの名無しさん:2001/07/17(火) 04:17
>>338 ええっと... (藁
サーブレットを呼び出すのはブラウザじゃないですか?

340 :339:2001/07/17(火) 04:22
>>338 それともこういうこと?

protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
{
  Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE");
  ...
  return;
}

341 :338:2001/07/17(火) 13:56
>>340
そんな感じです。
それを、Runtimeを使わずに
やりたいんですよ。

342 :339:2001/07/17(火) 14:13
>>341 ネタだったんだが... やりたいことがまったく分からん。
まず、何をどうしたらどうなって欲しいか説明せれ。
クライアント側のブラウザでサーブレットを起動したときに、
サーバ側のブラウザを起動したいのか?

343 :デフォルトの名無しさん:2001/07/20(金) 11:14
勉強中なんでDQNな質問かもしれないですが
sendRedirect(url)したURLがない場合どういう感じで
sendErrorにもってけばいいのでしょうか
try〜catchでは駄目でした

344 :デフォルトの名無しさん:2001/07/20(金) 11:28
sendRedirectしたら、先のURLが存在するかどうかなんて
わからないのでは。単にブラウザにREDIRECTレスポンスを
返すだけだから。

sendRedirectの前にRequestDispatcherを取得してみるとか。
リダイレクト先が同じサーバのときに限られますが。

345 :デフォルトの名無しさん:2001/07/20(金) 11:44
>>344
そうなんですか。sendError(response.SC_NOT_FOUND,"no")みたい
なのはどういう時に使うのかな、と思っていたもので。sendRedirect
に渡すパラメータがおかしい時に使うぐらいですかね。どうもでした。

346 :344:2001/07/20(金) 12:31
>>345
えと、response.sendError(response.SC_NOT_FOUND)は、
例えばforwardしようとしたけど、RequestDispatcherが
取得できなかったときとかに使えます。

forwardとredirectの違いとかは、お分かりですよね?

347 :デフォルトの名無しさん:2001/07/20(金) 13:16
>>346
なるほどどうもです。ステータスコードのところで2つとも
出てくるのでワンセットで使うもんだと思ってました<sendRedirect、sendError

redirectはクライアントにそのまま行っちゃうので無理なんですよね

348 :デフォルトの名無しさん:2001/07/20(金) 15:56
J2EEについてくるJ2EEサーバーってどうやってとめるんですか?

スタートさせるバッチはあるんですが、とめるバッチがないような・・
マニュアル見てみたんですがなぜか記述が見つからなかったです

349 :デフォルトの名無しさん:2001/07/20(金) 17:33
>>319
JMeterを使おうかと考えてる。
strutsなんかも楽しそうだね。

350 :デフォルトの名無しさん:2001/07/20(金) 20:25
>>348
Ctrl-C

351 :デフォルトの名無しさん:2001/07/20(金) 20:39
>350
まじっすか!

352 :デフォルトの名無しさん:2001/07/20(金) 20:41
よにサーブレット本はかずあれど、
基本的なAPIの使い方で終わっていて
ECサイトを構築するのに役に立つ実践的な本って少ない気がします。
DBからJSPへのデータの渡し方とか、エラー処理の方法とか、
痒いとこに手が届く本ないものでしょうか?

やっぱいり経験がものを言うってことでしょうか?

353 :デフォルトの名無しさん:2001/07/20(金) 20:48
>>352
Blueprintsを読もう。
ってあんまり読みやすくないし、内容も懲りすぎだけど。

354 :デフォルトの名無しさん:2001/07/20(金) 21:49
Blueprints読んでます。
英語は別になれてるんでいいんですが、
よく上手くいかなくなり鬱になります

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

サーブレットの開発やってると特定のAPPSERVERまわりの
環境に慣れてしまって、ほかの環境にでたくなりますね

355 :デフォルトの名無しさん:2001/07/20(金) 22:54
>>354
それはありますね。

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

私はOracleばかりだったから、いまさらSQLServerだのDB2
だのは避けたいし。もう覚えるのいや...

356 :デフォルトの名無しさん:2001/07/21(土) 07:52
>>352 そう言う情報は Java Press とか Java World とか言った雑誌のほうが
載ってる。

357 :デフォルトの名無しさん:2001/07/21(土) 08:16
もうだいぶ、Servletもひろまったので、自作の開発
セット(たいしたもんではないよ)を公開しようと
おもうんだけど、需要ありますでしょうか?
とりあえず実用では使えているけど、いろいろ意見
ききたいところもあるので。

358 :デフォルトの名無しさん:2001/07/21(土) 12:12
私の仕事で使ってもいいですか?

359 :357:2001/07/21(土) 15:08
いいけど、JSPとはまるっきり違うから、どれくらい使えるか...
もうちょっと手直しして、公開します。生成ツールはwin版のみっす。

360 :デフォルトの名無しさん:2001/07/21(土) 16:41
はぁ〜EJBうまくうごかないっす。

どっかに「できる!EJB」うってないかなぁ

361 :デフォルトの名無しさん:2001/07/21(土) 19:38
>>352-356

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

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

362 :デフォルトの名無しさん:2001/07/23(月) 12:43

鳩サブレーってどういう使い方するんですか?

363 :デフォルトの名無しさん:2001/07/23(月) 13:11
>>362
余り親しくない人へのおみやげに使ってる。

364 :デフォルトの名無しさん:2001/07/23(月) 20:32
>>362
あ、なんかタイトルにもらってもいいすか(w

365 :デフォルトの名無しさん:2001/07/23(月) 21:56
おいしいので自分で食べちゃう

366 :デフォルトの名無しさん:2001/07/24(火) 11:38
webアプリ開発初心者です
JBuilderをつかって開発する時、普通InternetBeansExpressっていうのは使うものでしょうか?
ちなみにDBはPostogreSQLを使っています。
いまのところInternetBeansExpressを使わずにFORM+jsp+servlet+jdbcだけで開発して
います。

367 :デフォルトの名無しさん:2001/07/24(火) 15:31
winで勉強しているのですが
Class.forName(driver) もしくは System.setProperty("jdbc.drivers",driver)
のところでSQLExceptionではじかれます。ローカルのswingアプリだとうまく動くので
この文はあっていると思うのですがサーブレットだと他になにかする事があるのでしょうか?
ちなみにAccessのjdbc-odbcを使っているのでそれがいけないのでしょうか?

114 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)