トップページ⇒php
992コメント372KB

■■ Servlet/JSP(EJB含む) 質問スレ Part3 ■■

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん04/06/16 05:30ID:XUmu9/tY
質問する前に最低でもGoogleで検索するように

前スレ
■■ Servlet/JSP(EJB含む) 質問スレ Part2 ■■
http://pc5.2ch.net/test/read.cgi/php/1052879533/l50
過去スレ
■■ Servlet/JSP(EJB含む) 質問スレ ■■
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50

関連スレ
【初心者】Java質問・相談スレ47【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1086716004/l50
JSP/Servletで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1063121571/l50
◆JSP◆
http://pc5.2ch.net/test/read.cgi/php/984840356/l50

関連は>>2-10
0885nobodyさん2005/05/07(土) 18:05:25ID:U7wdq9wc
http://p3021-ipad402marunouchi.tokyo.ocn.ne.jp/

wwwwwwwおkwwwおkwwwっうぇうはっwww
wwおkwwwっうはっwwwwwwwwwwwwwww

おkwwwwwwwwwwwwwwwwww
0886nobodyさん2005/05/07(土) 18:23:56ID:0AZAgz0s
http://YahooBB220009124044.bbtec.net/
wwwwwwwwwwwwっっwwwっうぇうはっwww
うぇwwwうはっwwwっうぇっうぇwwwwww
うはっwwwっうぇwwwwwwうぇwwwっwww
0887nobodyさん2005/05/08(日) 02:37:10ID:elVIc2fQ
JSP/Servlet で画像掲示板作ってみたんだけど
瞬間的にOUt Of Memory エラーがでます

こういう場合はそうすればいいですか?
0888nobodyさん2005/05/08(日) 03:16:40ID:???
まずはヒープサイズのオプション
-Xms -Xmxあたりをしらべてみ
あと-Xloggcで出したログをGCViewerでみてみるとか
0889プログラマをされている方にお尋ねします。2005/05/08(日) 11:07:47ID:EcAkcyME
>>887、888
私は積極的に(GCに任せずに)不要になったオブジェクトには
NULL入れています。JDKの1.3あたりまでは、これでかなり
助かったことを覚えています(SWINGでGUIをつくっていました)。


「質問」 ユーザーからの入力(NAME,ADDRESS)を受け取り、
HTMLファイルをつくります。そのファイルを、みなさんでしたら
どうしますか。HTMLファイルは、ディレクトリ作って溜め込みますか、
それともSQLのデーターベースへHTMLのデーター全部入れますか?

もう、データーベースとファイルシステムの使い方さえわからなく
なりました。プロのかた、お助けください。お願い致します。
0890nobodyさん2005/05/08(日) 11:17:23ID:???
>不要になったオブジェクトにはNULL入れています

それは、GCに任せているのとどう違うの?

> 「質問」 
HTMLファイルを作る必要がある?俺ならその部分はJSPで処理をする。
0891プログラマをされている方にお尋ねします。 2005/05/08(日) 11:47:16ID:EcAkcyME
>>890
こんにちは。どうもありがとうございます。

NULLを入れるのは、できるだけ早くメモリの解放をしたいときです。
ファイルハンドラが閉じられる後ではなくて、前にしたいときだとか。
例えばサーブレットでSTRINGBUFFにHTML溜め込んで、ファイル
ストリームへ吐き出すとします。もう、その直後にSTRINGBUFFを
NULLにしたい時には、積極的にNULL入れます。

GCは、ファイルストリームが閉じられてから
STRINGBUFFをNULLにしているかもしれませんし。

質問についてですが、HTMLファイルは、後で
何度も再利用される予定です。JSPで処理をする
ということは、必要なデーターだけをデータ
ベースへ溜め込んで、あとで利用するときは、
DBからそれをまた取り出すということですね。
プロの方は、みな、そうされているのでしょうか。

わたしは、HTMLどんどんつくってしまって、
一つのディレクトリに溜めています。これなら、
アプリケーションサーバーが動いてなくても、
あとで利用できますし。

そこで、考えたのが、HTMLごと、HTMLの内容全部を
VARCHAR として、DBへ溜めることだったのですが。。。

また、ご教示ください。大変勉強になります。
0892nobodyさん2005/05/08(日) 12:32:15ID:???
参照にnullを代入した瞬間にゴミ集めが行なわれるわけじゃないでしょう。
0893nobodyさん2005/05/08(日) 12:44:28ID:???
>>891
どこからも参照されなくなったオブジェクトはGCの対象としてマーキングされる
だけで、その都度GCされるわけじゃない。VMが適切なタイミングでまとめて
GCする。
ちなみに、JavaにおいてはNULLじゃなくてnullだ。
0894nobodyさん2005/05/08(日) 16:38:07ID:???
>>887
プログラムがバグっているだけだろ
0895nobodyさん2005/05/08(日) 16:44:18ID:???
>>889
質問の意味が分からない。
何がしたいんだ?

あと、他の人も書いているけど、nullを入れても入れなくても、
メモリの回収はGCがする。いつするかはGC次第。
JDKのバージョンがあがって改良されているので、
古いJDKのバージョンだったら有効だったのかもしれない。

変数が適切なスコープにないってオチじゃないよね?
それならGC関係ないし、自分でnull入れたらどうこうって
なるだろうし。
0896プログラマをされている方にお尋ねします2005/05/09(月) 13:58:27ID:0n/h3hsi
>>895

お世話になります。HTMLファイルを自動生成しているんです(ユーザーの入力を得てから)。
生成されたHTMLは一つのディレクトリに溜め込んでおいて、あとで利用するときは、
一行ずつHTML読んで、OUT.PRINTLN()を使っています。

問題は、ディレクトリに溜め込まないで、SQLデーターベースへ(ユーザー入力ではなくて)、
作成したファイルごと、VARCHARのデーターとして溜め込めないかな、プロの方だったらこんな
ことするのかな、ということです。

いかがなものでしょうか。

GCにつきましては、たしか強制的にGCを呼び出す方法があったはずですので、
もう少し勉強してみます。どうもありがとうございます。
0897nobodyさん2005/05/09(月) 14:01:38ID:???
>強制的にGCを呼び出す方法
System.gc() ね。
ほとんどの場合、アプリから強制的に呼び出す必要はない。
GC処理そのものはかなりコストのかかる処理なので
アプリから強制的に呼び出したほうが効率的な場合よりも
パフォーマンスを低下させることの方が多く、逆効果。
0898nobodyさん2005/05/09(月) 14:02:48ID:???
>>896
DBに入れて、必要な場合にファイルとして書き出すぐらいなら
JSP使った方がいいと思うよ
0899nobodyさん2005/05/09(月) 14:20:13ID:PtO611Xm
http://i60-42-163-4.s02.a043.ap.plala.or.jp/
wwwっうぇwっうぇw
wおkwwwっwwwっうはっwww
っwww
wwwwwwwwwwwwっうぇ
wうぇwwwwwwwwwwっうぇうはっwww
うぇwww
0900nobodyさん2005/05/09(月) 14:20:25ID:???
>>896
ふつーはHTMLのガワだけ作っといて変化する部分(AME, ADDRESS)を埋め込んで出す、そのためにあるのがJSPやらテンプレートフレームワークやら、
鯖負荷が問題になる場合は静的HTML作っといてそっちにアクセスさせる、Servlet(だよな?)でファイル読んで表示したりはしない。
0901nobodyさん2005/05/09(月) 21:31:17ID:???
>>896
ユーザが「あ」と入れたら「あ」と書かれた*.htmlを作成して保存するの?
わざわざ*.htmlのファイルを作る意味が分からん。

いちいちファイルにするなりDBに格納するなりしてたら、ゴミが残るでしょ。
その保存したファイルをどうするのよ?
ログとして残したいだけなら「あ」だけDBにでもログファイルにでも残しときゃいいだけだし、
0902プログラマをされている方にお尋ねします2005/05/09(月) 21:57:08ID:0n/h3hsi
みなさん、どうもありがとうございます。896のようなことは、
する意味がありませんね。

901さんのご指摘は、もっともだと思います。
もっと、入力が複雑で、HTMLの作成もかなり面倒な
アルゴリズムですから、HTMLで残しておいているのですが、
設計が上手ではありませんでしたね。

どうもありがとうございました。勉強になりました。
0903nobodyさん2005/05/09(月) 22:03:23ID:9BI6J6UW
http://I029247.ppp.dion.ne.jp/
うぇwwwwうはっwwwwうぇwwwっwwwwwwwwwwww
wっうぇうはっwwwwwwwwwwwww
っ

っうぇ
wwwwwwwwwwwwおkwww
0904nobodyさん2005/05/09(月) 22:31:52ID:oj96+Y+F
http://pdf791d.tokynt01.ap.so-net.ne.jp/
おkwwwwwwwwwwwwwwwっっうぇwww

wwwうぇwwwwwwwwwwwwwwwwwwwwwwww
っうぇwwwwwwwwwwwwwおkwww
0905nobodyさん2005/05/09(月) 23:21:09ID:VIkDkqEH
http://YahooBB219199036061.bbtec.net/
wwwwっうぇwwwwwwwwwwwwwwwwwwwwwwww
wおkwwwうはっwwwうはっwww
wwwwwwwwwwwwwwwwwwっうぇwうぇwww
0906nobodyさん2005/05/11(水) 22:09:50ID:???
tomcatでサーバを起動してJSPを表示させる場合
初期設定では
http://localhost:8080/
みたいにURLがなっていると思いますが
これを任意の名称にURLを変更させる事は出来るのでしょうか?

実際に開発などで社内システムなどを作る時は
実際に使う時は各社内で任意になると思いますが
0907nobodyさん2005/05/11(水) 23:45:18ID:???
>>906
Servlet開発以前の基礎知識が不足していると思われるので、
先輩や同僚にみっちり教えてもらった方がよさげかもしれない。

ヒントになるかどうかわからないけど、
http://www.example.jp:8080/path/to/hoehoe
の構成要素の一般的な解釈は
http ---> スキーム名
www.example.jp ---> ホスト名
8080 ---> ホスト上でのサービスしているポート番号
/path/to/hoehoe ---> サービス内でのパス名
になります。(厳密ではないかもしれないけど)
0908nobodyさん2005/05/11(水) 23:54:40ID:???
>>906
DNSに登録汁
0909nobodyさん2005/05/12(木) 18:30:44ID:???
servletからjspに値を渡す事はできないのでしょうか?
イマイチservletとjspの連携が分からなくて・・・。
0910nobodyさん2005/05/12(木) 19:18:42ID:???
Servlet間で値のやりとりをするときは
Application、Session、Request
というスコープ(≒寿命)の違う格納域が用意されており、
一般的にそれらを利用します。
# もちろんデータベースなど外部のリソースも使えますが

JSPはServletの一形態でしかないので、
ServletからJSPへの連携でも同様の考えになります。
で、JSP環境では便利なようにそれらに対応する
application、session、requestという変数が定義済みになっています。
0911nobodyさん2005/05/12(木) 20:44:44ID:???
JSP2からは、受け取った値は式言語で扱うのが楽だな
0912nobodyさん2005/05/12(木) 23:02:51ID:???
現在、WebLogic 8.1上でServlet/JSP+EJB(+Webサービス)を
用いたWebアプリケーションを作ろうとしています。
そこで、認証に関して質問させてください。

満たしたい要件は次の通りです。
・ユーザはDBで管理されている
・権限毎にアクセスできる領域が異なる
・ユーザは日々増える

このような要件を満たす為に最初に思いついたのは、
TomcatにあるようなJDBC(DataSource)Realmを使う方法でした。
ところが、WebLogic8.1にはJDBCRealmに代わる物が無い。
「じゃ、自分で作るか」と思っていたのですが、
http://dev2dev.bea.com/pub/a/2004/01/whitepaper_tomcat_migration.html
↑このサイトで「WebLogic 6.0まではあったけど、7.0で無くなった」
という記述を見つけ悩んでいます。

というのも、わざわざあったものを無くしたというのは他の開発者たちが
JDBCRealmによる認証を使ってないからではないかと思ったからです。
ならば、みなさんはどのように認証を行っているのか知りたく、質問させていただきました。
0913nobodyさん2005/05/12(木) 23:10:50ID:SAjnBRZ0
JSPでDBからデータを取得して表示するとき
While文で
<td>\<%= result.getInt("price") %></td>
にするのですが
このときデータを取得するたびにデータの合計を加算させたい場合はどうすればいいのでしょうか?
<%= の中に変数などを入れても、なかなかうまくいきませんので教えてください
0914nobodyさん2005/05/13(金) 10:10:57ID:???
<% int total = 0;%>

・
・
<%
int price = result.getInt("price");
total += price
%>
<%=price%>

とかやればいいんでねーの?
0915nobodyさん2005/05/13(金) 19:34:13ID:iHOWVBQE
>>912

File Realm はバグだらけだからね、FRだけはやめたほうが
いいです。
0916nobodyさん2005/05/13(金) 22:56:32ID:f30Z4gnN
>>915

FileRealm にそんなにバグあったかなぁ。
いずれにせよ 8.1 ならデフォルトで組み込みの LDAP が使われるね。

>>912

DB 使うのが要件なら作るしかないんじゃないの?
0917nobodyさん2005/05/14(土) 02:19:53ID:YT4K1s3l
リストボックスの中のデータを指定のカラムから抜き出して
候補として表示させたいのですが
どうすればいいのでしょうか?
0918nobodyさん2005/05/14(土) 03:13:42ID:???
指定のカラムから抜き出したデータをリストボックスの候補として設定すればいいと思います。
0919nobodyさん2005/05/14(土) 11:47:06ID:???
>>918
そのやり方を教えてください
0920nobodyさん2005/05/14(土) 16:06:44ID:???
こんな感じです。
1.指定のカラムからデータを抜き出す
 (詳しいやりかたはあなたがお使いのデータの扱い方に従ってください)
2.リストボックスの候補として設定する
 (詳しいやりかたはあなたがお使いのユーザインターフェイス出力方式に従ってください)
0921nobodyさん2005/05/15(日) 11:54:49ID:5xJ/seB9
>>916

LDAPが8.1?

WEBLOGICですよね、SUNのAPP.SERVERじゃないですよね。

>>920
わろた
0922nobodyさん2005/05/15(日) 15:43:15ID:???
>>921
WebLogic の内部で LDAP サーバが動いてる。7.0 から。
0923nobodyさん2005/05/17(火) 21:15:14ID:Wptu6pDN
windows serverのファイルサーバにサーブレットからアクセスする場合
ファイルサーバへのアクセス情報(アカウントやパスワード)は
サーブレット側に記述すればいいの?
それともサーブレットのコンテナ側に記述するの?
0924nobodyさん2005/05/17(火) 22:22:37ID:???
サーブレット側とサーブレットのコンテナ側がどうちがうのか説明してくれ
0925nobodyさん2005/05/17(火) 23:11:55ID:Wptu6pDN
サーブレットのコードに記述するのか、
サーブレットコンテナ(jbossとか)に設定するのか、ってことです

どうなんでしょう?
0926nobodyさん2005/05/18(水) 00:09:14ID:???
jbossはサーブレットコンテ以下略

どっちでもできるんじゃないの。
0927nobodyさん2005/05/18(水) 07:14:28ID:???
>>925
できる・できないで言えばどっちでもかまわんが、
そういう環境依存な情報はアプリよりコンテナに持たせた方がいいだろうね。
0928nobodyさん2005/05/18(水) 19:24:26ID:RnyP/LlE
JSPで、セッションのタイムアウトが発生したときに
特定の処理をおこなうようにするには、どうしたら
いいでしょうか?
開発中の環境は、NetBeans 4.0を使っています。
0929nobodyさん2005/05/18(水) 21:30:14ID:hY8x0JfO
セッションが無効かどうかを調べれば?
0930nobodyさん2005/05/18(水) 23:32:00ID:???
>>928
SessionListenerを使う。
0931nobodyさん2005/05/18(水) 23:38:59ID:???
クライアントのリクエストとは非同期に
セッション(変数)が無効になったのをキャッチしたいなら、
javax.servlet.http.HttpSessionBindingListener
これが利用できるけど、JSPで実装するのはトリッキーかな。
0932nobodyさん2005/05/19(木) 21:45:06ID:6L/NrBef
Tomcat4でしつもんなんですが、server.xmlに記述されている
FileLoggerオブジェクトってどう取得すれば良いんでしょうか?
09339282005/05/20(金) 14:21:42ID:???
>>930,931さんありがとうございます。
やはりサーブレットを使わないとスムーズに実装できませんでした。
930さんのいうとおり、HttpSessionListenerをimplementした
サーブレットで、セッション破棄時の処理を行うようにしました。
0934nobodyさん2005/05/21(土) 22:06:11ID:???
ServletもJSPもあんまり企業のHPとかで見ないよね
大規模向きなのに
なんでかね?
0935nobodyさん2005/05/22(日) 00:03:57ID:???
>>934
J2EEはホームページ向けじゃなく、基幹システム向けだからです。
ホームページなんてそんなに大規模じゃない。
0936nobodyさん2005/05/22(日) 00:20:44ID:???
アクセスが集中するようなホームページなら、静的HTMLを吐くようにしたほうがいいしね。
0937nobodyさん2005/05/22(日) 01:12:47ID:???
>>934
最近は結構見る。Strutsも今更増えてきているらしい
0938nobodyさん2005/05/22(日) 03:13:52ID:???
基幹システムに使ってるがその情報の一部をユーザーに向けるときは使う
オンラインショップの在庫とかね
0939nobodyさん2005/05/22(日) 04:39:10ID:???
なるほど
ってことは実は見えないところでバリバリ動いてる?
0940nobodyさん2005/05/23(月) 01:44:09ID:???
jspのformからServletに文字列を渡したいのですが、どうやっても文字化けしてしまいます。
エンコード設定をどうすればいいのでしょうか?
以下ソースです。(無駄な部分は省略してます。)

tmp.jsp
<%@page pageEncoding="Shift_JIS" contentType="text/html; charset=Shift_JIS" %>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
<form name="form1" method="post" action="hogehoge">
 <textarea name="msg" rows="8" cols="40"></textarea>
 <input type="submit" name="submit" value="送信">
</form>

hogehoge.java
doPost{
response.setContentType("text/html; charset=Shift_JIS");
String msg = request.getParameter("msg");
PrintWriter out = response.getWriter();
out.println(msg);
}

かなり省略してますが文字エンコード以外とform以外の部分は意味がないと思うので省略しました。
よろしくお願いします。

0941nobodyさん2005/05/23(月) 04:01:58ID:???
どうやっても、ってパラメータのエンコードの設定には何をやったの?
ここにはsetCharacterEncodingもnew Stringもないけど。
0942nobodyさん2005/05/23(月) 21:15:49ID:???
>>941
request.setCharacterEncoding("Windows-31J");
をhogehoge.javaに追加してもダメでした・・・。
どうすれば文字化けせずにJSPからServletに文字を渡せるのでしょうか?
0943nobodyさん2005/05/23(月) 21:29:26ID:???
化けてどうなるのか書いてごらんよ
0944nobodyさん2005/05/23(月) 22:37:33ID:hNXi91Hb
SQLを取得して画面に表示させるとき
下記のようなJSP文があった場合で
もしNULLが取得された場合ブランクを代わりに表示したいのですが
メソッドを作って、それにresult.getString("STAFF")を包もうとするとエラーになります
この場合"<%="の中にJavaメソッドを呼び出す場合、どうすればいいのでしょうか?
<%
while(result.next()){
%>
<tr>
<td><%= result.getString("STAFF") %></td>
</tr>
<%
}
%>
0945nobodyさん2005/05/23(月) 23:51:57ID:???
> <td><%= (result.getString("STAFF") == null) ? "" : result.getString("STAFF") %></td>
こういうことじゃなかったかな
0946nobodyさん2005/05/24(火) 00:09:23ID:???
根本的に答え方を間違っていると思う
0947nobodyさん2005/05/24(火) 01:01:30ID:???
SQLの取得の時点で
StringBufferでSQLを分割させて
そこでNULLが出るカラムでヌルイズブランクのメソッドを呼び出すのが一番無難なやり方
0948nobodyさん2005/05/24(火) 02:44:32ID:???
>>947
SQLの取得の時点でNVLやnullifをかける
0949nobodyさん2005/05/24(火) 10:00:57ID:???
public static String returnString(String target) {

String retStr = null;

if (null == target) {
retStr = "";
} else {
retStr = target;
}
return retStr;
}

これは?
0950nobodyさん2005/05/24(火) 20:03:48ID:Ya81sFKG
DB接続など記述したクラスを拡張した
それぞれSQLを記述しているメソッドを別に作った場合、
JSPにおけるそのSQL記述メソッド呼び出しの記述なんですが

現在JSPに
<jsp:useBean id="db" class="〜" />
を埋め込んでインスタンス化させて
その中の
db.open(); //データベースオープン
String sql = db.SQLメソッド(); //SQL呼び出し
ResultSet result = db.executeQuery(sql); //SQLを実行
みたいなやり方で表示させているのですが
この場合だとJSPに記述する呼び出しを、それぞれ場合わけする必要があるので、結構メンテナンスなどが大変です
またラジオボタンで呼び出すSQL文が違う場合に対応が難しくなります
もし、JSPからのSQL文の呼び出しでもっといいやり方などがあればご教授ください
0951nobodyさん2005/05/24(火) 21:13:44ID:???
>>950
java.sql.PreparedStatement でなんかいけないの?
0952nobodyさん2005/05/24(火) 21:21:56ID:???
>>951
なにピントのずれた回答してんの?
0953nobodyさん2005/05/24(火) 21:47:24ID:???
メンテナンスが大変とかいうなら、まずJSPにDB呼出のコード書かないことだな。
0954nobodyさん2005/05/24(火) 21:51:12ID:???
知ったようなこと言っちゃうけど、
もう少しそういうロジックをviewから切り離す設計にすれば
そういうところで悩まなくてもよくなるのでは。
0955nobodyさん2005/05/24(火) 22:18:47ID:Ya81sFKG
>メンテナンスが大変とかいうなら、まずJSPにDB呼出のコード書かないことだな。
これがよくわかりません
いろいろ試したりぐぐったりしたのですが・・・
どうすればいいのでしょうか?
0956nobodyさん2005/05/24(火) 22:29:29ID:???
JSPは表示だけの役割
<% 〜〜 %>は書かない
0957nobodyさん2005/05/24(火) 22:42:55ID:Ya81sFKG
>>956
ありがとうございます
それだとサーブレット?やDBが記述されているJavaクラスとの
連携はどこでやるの?
0958nobodyさん2005/05/24(火) 22:45:06ID:???
>>955
ビジネスロジックはJavaBeansに記述してコンポーネント化する
0959nobodyさん2005/05/25(水) 00:08:29ID:???
<html><body>
<h1>hello</h1>
<%
PrintWriter pw = response.getWriter();
String str = "Helloworld";
pw.println(str);
%>
</body></html>

このようにJSPを書いた場合、何故か pw.println(str); がJSPファイルの
一番上にHelloworldと書いてしまうのですが、何故でしょうか?
位置的に<h1></h1>の下に書かれるはずなのですが・・・。
どのようにすれば<h1></h1>の下に文字を書けるのか、教えてください。


0960nobodyさん2005/05/25(水) 00:21:45ID:???
DB接続は、ThreadLocalに放り込む。
0961nobodyさん2005/05/25(水) 00:58:23ID:s1Nq6uOi
なぜJSPでPrintWriterをわざわざ呼び出す必要がある?
そこらへんを隠蔽するのがJSPなのに。

<% String str = "Helloworld"; %>
<html><body>
<h1>hello</h1>
<%= str %>
</body></html>

これでいいじゃん。
0962nobodyさん2005/05/25(水) 01:04:40ID:???
>>961
ありがとうございました。
0963nobodyさん2005/05/25(水) 09:58:58ID:???
>>959
最適解は>>961ででてるけど一応。

わざわざ自分で PrintWriter 呼ばなくても、JSPでは out という名前で
JSPWriter が宣言されとるよ。

てなわけで
<%
PrintWriter pw = response.getWriter();
String str = "Helloworld";
pw.println(str);
%>
を
<%
String str = "Helloworld";
out.println(str);
%>
とすればよいです。


# 変数をたくさん埋め込むときに、お手軽さとか可読性とかを考慮してあえてこの記法を使うのは変?
# 邪道だとは思いつつたまにやってしまうのだが。
0964nobodyさん2005/05/25(水) 10:14:26ID:???
適材適所
0965nobodyさん2005/05/27(金) 18:33:42ID:???
>>963
JSPでスクリプトレット使うこと自体がもはや糞
0966nobodyさん2005/05/27(金) 19:28:27ID:snQJlivf
>>966

絶対にそんなことない!
カスタムタグなんて、やってられるかーーー
0967nobodyさん2005/05/27(金) 20:05:43ID:nW5Y6j94
http://www63.tok2.com/home2/jd4/J2EEsampleApp1.html
JSPとJavaBeansとサーブレットとSQLソースの連携ですが
いま上記のサイトのやりかたでやっているのですが
これが開発などでもオーソドックスなやり方なんでしょうか?

それとも実際の開発では
もっと広く使われている違うやり方などあるのでしょうか?
教えてください
0968nobodyさん2005/05/27(金) 20:27:43ID:???
基本的にはそんな感じだろうけど、これだったらリクエストの数だけ呼び出すサーブレットを作る事になる。
それでおのおののサーブレットがDBアクセスをするっていうのはまとまりがない。そこで、
・呼び出されるサーブレットは1つだけ。そこからディスパッチ。
・DBアクセスをするようなビジネスロジック部分は切り離す。
というように進化していく。
こういうのを実装したフレームワークがstrutsであったりするわけで、実際の開発ではそういったフレームワークを使うのが一般的。
0969nobodyさん2005/05/27(金) 20:34:59ID:nW5Y6j94
ありがとうございます
基本的にはやはりStrutsが多いんですね
0970nobodyさん2005/05/27(金) 21:52:15ID:???
>>966
そうか?
JSTL使うようになってから、JSPにスクリプトレット書こうとか思わなくなったし。
0971nobodyさん2005/05/27(金) 21:58:46ID:???
>>967
こんな感じでJavaBeansはやりとりする値を格納するだけ。
簡単な処理ならMapに格納してもいいし。
jsp:useBeanタグとかは使わないね。
JSTL+式言語で書く。

ここみると、あいかわらずStrutsは強いね。
ttp://raibledesigns.com/page/rd/20050522

長期的にはJSFに移行していくだろうけど。
0972nobodyさん2005/05/27(金) 22:09:11ID:???
つまりもうjsp2.0が主流と
0973nobodyさん2005/05/27(金) 22:22:06ID:???
JSP2.0とタグファイルによるカスタムタグが最強
0974nobodyさん2005/05/28(土) 06:58:03ID:???
最近は、Beanというと値を格納するだけのブツを指すようになってしまったのか
0975nobodyさん2005/05/28(土) 09:13:16ID:???
>>969
基本はStrutsだけど、SpringやJSFの方が将来がある
0976nobodyさん2005/05/28(土) 16:26:42ID:???
>>974
クラスじゃなくてわざわざJavaBeansっていうときは、プロパティだけ持つようなValueObjectだね。最近。
0977nobodyさん2005/05/28(土) 22:24:02ID:???
if(boolean == true) response.sendRedirect("hoge.jsp");

・・・処理
・・・
response.sendRedirect("hogehoge.jsp");

このような処理をdoGet内で行うとき、if文の中に入ったらそこで処理を終わらせたいのですが
それはどのようにすればいいのでしょうか?
ifの中でリダイレクトした後も処理を続けてしまい、最終行のリダイレクトも処理してしまって
そこでエラーが出てしまいます。
任意の位置でのサーブレットの処理の中断方法を教えていただけないでしょうか?
よろしくお願いします。
0978nobodyさん2005/05/28(土) 23:22:24ID:???
おまえはJavaを勉強する気がないと見た
0979nobodyさん2005/05/28(土) 23:37:18ID:???
メソッドを中断する時と同じだろう。
0980nobodyさん2005/05/29(日) 09:20:03ID:???
リダイレクトした後に、return null; 入れろ。
0981nobodyさん2005/05/29(日) 09:46:47ID:???
>>980
doGetはvoidだ馬鹿
0982nobodyさん2005/05/29(日) 19:11:46ID:???
結局どうやるの?
0983nobodyさん2005/05/29(日) 19:22:14ID:???
答えは出ているも同然だろうがビチグソ
0984nobodyさん2005/05/30(月) 11:23:35ID:???
サーブレットAとサーブレットBを各々排他処理するものとして
リクエストが来たときに以下のような段階動作を行いたいと考えています。

 ServletA   ServletB
  ||
Request --→||
|----||
|   |ServletA処理|
|←--||
|--------------→|
Request --→||----|
|----|| |ServletB処理
| |ServletA処理|←--|
|←--||
||-----------------→
|--------------→|
||----|
|| |ServletB処理
||←--|
||-----------------→
||

RequestDispatcherを使ってサーブレットからサーブレットへ
リクエストを送ることができたのですがレスポンスが元の
サーブレットに戻ってきてしまいます。

リクエストを他のサーブレットに送り送った先でクライアントへ
データを送る方法がありましたらご教授お願いします。
0985nobodyさん2005/05/30(月) 11:30:42ID:???
>>986

あうう、タブが

このような処理です。
すみません。

 ServletA      ServletB
   |      |
Request --→|     |
|----|    |
|  |ServletA処理 |
|←--|    |
|----------------→|
Request --→|     |----|
|----|     |  |ServletB処理
|  |ServletA処理 |←--|
|←--|    |
|      |-----------------→
|----------------→|
|      |----|
|     |  |ServletB処理
|     |←--|
|     |-----------------→
|     |
レス数が950を超えています。1000を超えると書き込みができなくなります。