■■ Servlet/JSP(EJB含む) 質問スレ Part3 ■■
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
04/06/16 05:30ID:XUmu9/tY前スレ
■■ 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:U7wdq9wcwwwwwwwおkwwwおkwwwっうぇうはっwww
wwおkwwwっうはっwwwwwwwwwwwwwww
おkwwwwwwwwwwwwwwwwww
0886nobodyさん
2005/05/07(土) 18:23:56ID:0AZAgz0swwwwwwwwwwwwっっwwwっうぇうはっwww
うぇwwwうはっwwwっうぇっうぇwwwwww
うはっwwwっうぇwwwwwwうぇwwwっwww
0887nobodyさん
2005/05/08(日) 02:37:10ID:elVIc2fQ瞬間的にOUt Of Memory エラーがでます
こういう場合はそうすればいいですか?
0888nobodyさん
2005/05/08(日) 03:16:40ID:???-Xms -Xmxあたりをしらべてみ
あと-Xloggcで出したログをGCViewerでみてみるとか
0889プログラマをされている方にお尋ねします。
2005/05/08(日) 11:07:47ID:EcAkcyME私は積極的に(GCに任せずに)不要になったオブジェクトには
NULL入れています。JDKの1.3あたりまでは、これでかなり
助かったことを覚えています(SWINGでGUIをつくっていました)。
「質問」 ユーザーからの入力(NAME,ADDRESS)を受け取り、
HTMLファイルをつくります。そのファイルを、みなさんでしたら
どうしますか。HTMLファイルは、ディレクトリ作って溜め込みますか、
それともSQLのデーターベースへHTMLのデーター全部入れますか?
もう、データーベースとファイルシステムの使い方さえわからなく
なりました。プロのかた、お助けください。お願い致します。
0890nobodyさん
2005/05/08(日) 11:17:23ID:???それは、GCに任せているのとどう違うの?
> 「質問」
HTMLファイルを作る必要がある?俺ならその部分はJSPで処理をする。
0891プログラマをされている方にお尋ねします。
2005/05/08(日) 11:47:16ID:EcAkcyMEこんにちは。どうもありがとうございます。
NULLを入れるのは、できるだけ早くメモリの解放をしたいときです。
ファイルハンドラが閉じられる後ではなくて、前にしたいときだとか。
例えばサーブレットでSTRINGBUFFにHTML溜め込んで、ファイル
ストリームへ吐き出すとします。もう、その直後にSTRINGBUFFを
NULLにしたい時には、積極的にNULL入れます。
GCは、ファイルストリームが閉じられてから
STRINGBUFFをNULLにしているかもしれませんし。
質問についてですが、HTMLファイルは、後で
何度も再利用される予定です。JSPで処理をする
ということは、必要なデーターだけをデータ
ベースへ溜め込んで、あとで利用するときは、
DBからそれをまた取り出すということですね。
プロの方は、みな、そうされているのでしょうか。
わたしは、HTMLどんどんつくってしまって、
一つのディレクトリに溜めています。これなら、
アプリケーションサーバーが動いてなくても、
あとで利用できますし。
そこで、考えたのが、HTMLごと、HTMLの内容全部を
VARCHAR として、DBへ溜めることだったのですが。。。
また、ご教示ください。大変勉強になります。
0892nobodyさん
2005/05/08(日) 12:32:15ID:???0893nobodyさん
2005/05/08(日) 12:44:28ID:???どこからも参照されなくなったオブジェクトはGCの対象としてマーキングされる
だけで、その都度GCされるわけじゃない。VMが適切なタイミングでまとめて
GCする。
ちなみに、JavaにおいてはNULLじゃなくてnullだ。
0895nobodyさん
2005/05/08(日) 16:44:18ID:???質問の意味が分からない。
何がしたいんだ?
あと、他の人も書いているけど、nullを入れても入れなくても、
メモリの回収はGCがする。いつするかはGC次第。
JDKのバージョンがあがって改良されているので、
古いJDKのバージョンだったら有効だったのかもしれない。
変数が適切なスコープにないってオチじゃないよね?
それならGC関係ないし、自分でnull入れたらどうこうって
なるだろうし。
0896プログラマをされている方にお尋ねします
2005/05/09(月) 13:58:27ID:0n/h3hsiお世話になります。HTMLファイルを自動生成しているんです(ユーザーの入力を得てから)。
生成されたHTMLは一つのディレクトリに溜め込んでおいて、あとで利用するときは、
一行ずつHTML読んで、OUT.PRINTLN()を使っています。
問題は、ディレクトリに溜め込まないで、SQLデーターベースへ(ユーザー入力ではなくて)、
作成したファイルごと、VARCHARのデーターとして溜め込めないかな、プロの方だったらこんな
ことするのかな、ということです。
いかがなものでしょうか。
GCにつきましては、たしか強制的にGCを呼び出す方法があったはずですので、
もう少し勉強してみます。どうもありがとうございます。
0897nobodyさん
2005/05/09(月) 14:01:38ID:???System.gc() ね。
ほとんどの場合、アプリから強制的に呼び出す必要はない。
GC処理そのものはかなりコストのかかる処理なので
アプリから強制的に呼び出したほうが効率的な場合よりも
パフォーマンスを低下させることの方が多く、逆効果。
0899nobodyさん
2005/05/09(月) 14:20:13ID:PtO611Xmwwwっうぇwっうぇw
wおkwwwっwwwっうはっwww
っwww
wwwwwwwwwwwwっうぇ
wうぇwwwwwwwwwwっうぇうはっwww
うぇwww
0900nobodyさん
2005/05/09(月) 14:20:25ID:???ふつーはHTMLのガワだけ作っといて変化する部分(AME, ADDRESS)を埋め込んで出す、そのためにあるのがJSPやらテンプレートフレームワークやら、
鯖負荷が問題になる場合は静的HTML作っといてそっちにアクセスさせる、Servlet(だよな?)でファイル読んで表示したりはしない。
0901nobodyさん
2005/05/09(月) 21:31:17ID:???ユーザが「あ」と入れたら「あ」と書かれた*.htmlを作成して保存するの?
わざわざ*.htmlのファイルを作る意味が分からん。
いちいちファイルにするなりDBに格納するなりしてたら、ゴミが残るでしょ。
その保存したファイルをどうするのよ?
ログとして残したいだけなら「あ」だけDBにでもログファイルにでも残しときゃいいだけだし、
0902プログラマをされている方にお尋ねします
2005/05/09(月) 21:57:08ID:0n/h3hsiする意味がありませんね。
901さんのご指摘は、もっともだと思います。
もっと、入力が複雑で、HTMLの作成もかなり面倒な
アルゴリズムですから、HTMLで残しておいているのですが、
設計が上手ではありませんでしたね。
どうもありがとうございました。勉強になりました。
0903nobodyさん
2005/05/09(月) 22:03:23ID:9BI6J6UWうぇwwwwうはっwwwwうぇwwwっwwwwwwwwwwww
wっうぇうはっwwwwwwwwwwwww
っ
っうぇ
wwwwwwwwwwwwおkwww
0904nobodyさん
2005/05/09(月) 22:31:52ID:oj96+Y+Fおkwwwwwwwwwwwwwwwっっうぇwww
wwwうぇwwwwwwwwwwwwwwwwwwwwwwww
っうぇwwwwwwwwwwwwwおkwww
0905nobodyさん
2005/05/09(月) 23:21:09ID:VIkDkqEHwwwwっうぇwwwwwwwwwwwwwwwwwwwwwwww
wおkwwwうはっwwwうはっwww
wwwwwwwwwwwwwwwwwwっうぇwうぇwww
0906nobodyさん
2005/05/11(水) 22:09:50ID:???初期設定では
http://localhost:8080/
みたいにURLがなっていると思いますが
これを任意の名称にURLを変更させる事は出来るのでしょうか?
実際に開発などで社内システムなどを作る時は
実際に使う時は各社内で任意になると思いますが
0907nobodyさん
2005/05/11(水) 23:45:18ID:???Servlet開発以前の基礎知識が不足していると思われるので、
先輩や同僚にみっちり教えてもらった方がよさげかもしれない。
ヒントになるかどうかわからないけど、
http://www.example.jp:8080/path/to/hoehoe
の構成要素の一般的な解釈は
http ---> スキーム名
www.example.jp ---> ホスト名
8080 ---> ホスト上でのサービスしているポート番号
/path/to/hoehoe ---> サービス内でのパス名
になります。(厳密ではないかもしれないけど)
0909nobodyさん
2005/05/12(木) 18:30:44ID:???イマイチservletとjspの連携が分からなくて・・・。
0910nobodyさん
2005/05/12(木) 19:18:42ID:???Application、Session、Request
というスコープ(≒寿命)の違う格納域が用意されており、
一般的にそれらを利用します。
# もちろんデータベースなど外部のリソースも使えますが
JSPはServletの一形態でしかないので、
ServletからJSPへの連携でも同様の考えになります。
で、JSP環境では便利なようにそれらに対応する
application、session、requestという変数が定義済みになっています。
0911nobodyさん
2005/05/12(木) 20:44:44ID:???0912nobodyさん
2005/05/12(木) 23:02:51ID:???用いた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:SAjnBRZ0While文で
<td>\<%= result.getInt("price") %></td>
にするのですが
このときデータを取得するたびにデータの合計を加算させたい場合はどうすればいいのでしょうか?
<%= の中に変数などを入れても、なかなかうまくいきませんので教えてください
0914nobodyさん
2005/05/13(金) 10:10:57ID:???・
・
<%
int price = result.getInt("price");
total += price
%>
<%=price%>
とかやればいいんでねーの?
0915nobodyさん
2005/05/13(金) 19:34:13ID:iHOWVBQEFile Realm はバグだらけだからね、FRだけはやめたほうが
いいです。
0916nobodyさん
2005/05/13(金) 22:56:32ID:f30Z4gnNFileRealm にそんなにバグあったかなぁ。
いずれにせよ 8.1 ならデフォルトで組み込みの LDAP が使われるね。
>>912
DB 使うのが要件なら作るしかないんじゃないの?
0917nobodyさん
2005/05/14(土) 02:19:53ID:YT4K1s3l候補として表示させたいのですが
どうすればいいのでしょうか?
0918nobodyさん
2005/05/14(土) 03:13:42ID:???0920nobodyさん
2005/05/14(土) 16:06:44ID:???1.指定のカラムからデータを抜き出す
(詳しいやりかたはあなたがお使いのデータの扱い方に従ってください)
2.リストボックスの候補として設定する
(詳しいやりかたはあなたがお使いのユーザインターフェイス出力方式に従ってください)
0921nobodyさん
2005/05/15(日) 11:54:49ID:5xJ/seB9LDAPが8.1?
WEBLOGICですよね、SUNのAPP.SERVERじゃないですよね。
>>920
わろた
0923nobodyさん
2005/05/17(火) 21:15:14ID:Wptu6pDNファイルサーバへのアクセス情報(アカウントやパスワード)は
サーブレット側に記述すればいいの?
それともサーブレットのコンテナ側に記述するの?
0924nobodyさん
2005/05/17(火) 22:22:37ID:???0925nobodyさん
2005/05/17(火) 23:11:55ID:Wptu6pDNサーブレットコンテナ(jbossとか)に設定するのか、ってことです
どうなんでしょう?
0926nobodyさん
2005/05/18(水) 00:09:14ID:???どっちでもできるんじゃないの。
0927nobodyさん
2005/05/18(水) 07:14:28ID:???できる・できないで言えばどっちでもかまわんが、
そういう環境依存な情報はアプリよりコンテナに持たせた方がいいだろうね。
0928nobodyさん
2005/05/18(水) 19:24:26ID:RnyP/LlE特定の処理をおこなうようにするには、どうしたら
いいでしょうか?
開発中の環境は、NetBeans 4.0を使っています。
0929nobodyさん
2005/05/18(水) 21:30:14ID:hY8x0JfO0931nobodyさん
2005/05/18(水) 23:38:59ID:???セッション(変数)が無効になったのをキャッチしたいなら、
javax.servlet.http.HttpSessionBindingListener
これが利用できるけど、JSPで実装するのはトリッキーかな。
0932nobodyさん
2005/05/19(木) 21:45:06ID:6L/NrBefFileLoggerオブジェクトってどう取得すれば良いんでしょうか?
0933928
2005/05/20(金) 14:21:42ID:???やはりサーブレットを使わないとスムーズに実装できませんでした。
930さんのいうとおり、HttpSessionListenerをimplementした
サーブレットで、セッション破棄時の処理を行うようにしました。
0934nobodyさん
2005/05/21(土) 22:06:11ID:???大規模向きなのに
なんでかね?
0935nobodyさん
2005/05/22(日) 00:03:57ID:???J2EEはホームページ向けじゃなく、基幹システム向けだからです。
ホームページなんてそんなに大規模じゃない。
0936nobodyさん
2005/05/22(日) 00:20:44ID:???0938nobodyさん
2005/05/22(日) 03:13:52ID:???オンラインショップの在庫とかね
0939nobodyさん
2005/05/22(日) 04:39:10ID:???ってことは実は見えないところでバリバリ動いてる?
0940nobodyさん
2005/05/23(月) 01:44:09ID:???エンコード設定をどうすればいいのでしょうか?
以下ソースです。(無駄な部分は省略してます。)
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:???request.setCharacterEncoding("Windows-31J");
をhogehoge.javaに追加してもダメでした・・・。
どうすれば文字化けせずにJSPからServletに文字を渡せるのでしょうか?
0943nobodyさん
2005/05/23(月) 21:29:26ID:???0944nobodyさん
2005/05/23(月) 22:37:33ID:hNXi91Hb下記のようなJSP文があった場合で
もしNULLが取得された場合ブランクを代わりに表示したいのですが
メソッドを作って、それにresult.getString("STAFF")を包もうとするとエラーになります
この場合"<%="の中にJavaメソッドを呼び出す場合、どうすればいいのでしょうか?
<%
while(result.next()){
%>
<tr>
<td><%= result.getString("STAFF") %></td>
</tr>
<%
}
%>
0945nobodyさん
2005/05/23(月) 23:51:57ID:???こういうことじゃなかったかな
0946nobodyさん
2005/05/24(火) 00:09:23ID:???0947nobodyさん
2005/05/24(火) 01:01:30ID:???StringBufferでSQLを分割させて
そこでNULLが出るカラムでヌルイズブランクのメソッドを呼び出すのが一番無難なやり方
0949nobodyさん
2005/05/24(火) 10:00:57ID:???String retStr = null;
if (null == target) {
retStr = "";
} else {
retStr = target;
}
return retStr;
}
これは?
0950nobodyさん
2005/05/24(火) 20:03:48ID:Ya81sFKGそれぞれ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文の呼び出しでもっといいやり方などがあればご教授ください
0953nobodyさん
2005/05/24(火) 21:47:24ID:???0954nobodyさん
2005/05/24(火) 21:51:12ID:???もう少しそういうロジックをviewから切り離す設計にすれば
そういうところで悩まなくてもよくなるのでは。
0955nobodyさん
2005/05/24(火) 22:18:47ID:Ya81sFKGこれがよくわかりません
いろいろ試したりぐぐったりしたのですが・・・
どうすればいいのでしょうか?
0956nobodyさん
2005/05/24(火) 22:29:29ID:???<% 〜〜 %>は書かない
0957nobodyさん
2005/05/24(火) 22:42:55ID:Ya81sFKGありがとうございます
それだとサーブレット?やDBが記述されているJavaクラスとの
連携はどこでやるの?
0959nobodyさん
2005/05/25(水) 00:08:29ID:???<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:???0961nobodyさん
2005/05/25(水) 00:58:23ID:s1Nq6uOiそこらへんを隠蔽するのがJSPなのに。
<% String str = "Helloworld"; %>
<html><body>
<h1>hello</h1>
<%= str %>
</body></html>
これでいいじゃん。
0963nobodyさん
2005/05/25(水) 09:58:58ID:???最適解は>>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:???0966nobodyさん
2005/05/27(金) 19:28:27ID:snQJlivf絶対にそんなことない!
カスタムタグなんて、やってられるかーーー
0967nobodyさん
2005/05/27(金) 20:05:43ID:nW5Y6j94JSPとJavaBeansとサーブレットとSQLソースの連携ですが
いま上記のサイトのやりかたでやっているのですが
これが開発などでもオーソドックスなやり方なんでしょうか?
それとも実際の開発では
もっと広く使われている違うやり方などあるのでしょうか?
教えてください
0968nobodyさん
2005/05/27(金) 20:27:43ID:???それでおのおののサーブレットがDBアクセスをするっていうのはまとまりがない。そこで、
・呼び出されるサーブレットは1つだけ。そこからディスパッチ。
・DBアクセスをするようなビジネスロジック部分は切り離す。
というように進化していく。
こういうのを実装したフレームワークがstrutsであったりするわけで、実際の開発ではそういったフレームワークを使うのが一般的。
0969nobodyさん
2005/05/27(金) 20:34:59ID:nW5Y6j94基本的にはやはりStrutsが多いんですね
0971nobodyさん
2005/05/27(金) 21:58:46ID:???こんな感じでJavaBeansはやりとりする値を格納するだけ。
簡単な処理ならMapに格納してもいいし。
jsp:useBeanタグとかは使わないね。
JSTL+式言語で書く。
ここみると、あいかわらずStrutsは強いね。
ttp://raibledesigns.com/page/rd/20050522
長期的にはJSFに移行していくだろうけど。
0972nobodyさん
2005/05/27(金) 22:09:11ID:???0973nobodyさん
2005/05/27(金) 22:22:06ID:???0974nobodyさん
2005/05/28(土) 06:58:03ID:???0976nobodyさん
2005/05/28(土) 16:26:42ID:???クラスじゃなくてわざわざJavaBeansっていうときは、プロパティだけ持つようなValueObjectだね。最近。
0977nobodyさん
2005/05/28(土) 22:24:02ID:???・・・処理
・・・
response.sendRedirect("hogehoge.jsp");
このような処理をdoGet内で行うとき、if文の中に入ったらそこで処理を終わらせたいのですが
それはどのようにすればいいのでしょうか?
ifの中でリダイレクトした後も処理を続けてしまい、最終行のリダイレクトも処理してしまって
そこでエラーが出てしまいます。
任意の位置でのサーブレットの処理の中断方法を教えていただけないでしょうか?
よろしくお願いします。
0978nobodyさん
2005/05/28(土) 23:22:24ID:???0979nobodyさん
2005/05/28(土) 23:37:18ID:???0980nobodyさん
2005/05/29(日) 09:20:03ID:???0982nobodyさん
2005/05/29(日) 19:11:46ID:???0983nobodyさん
2005/05/29(日) 19:22:14ID:???0984nobodyさん
2005/05/30(月) 11:23:35ID:???リクエストが来たときに以下のような段階動作を行いたいと考えています。
ServletA ServletB
||
Request --→||
|----||
| |ServletA処理|
|←--||
|--------------→|
Request --→||----|
|----|| |ServletB処理
| |ServletA処理|←--|
|←--||
||-----------------→
|--------------→|
||----|
|| |ServletB処理
||←--|
||-----------------→
||
RequestDispatcherを使ってサーブレットからサーブレットへ
リクエストを送ることができたのですがレスポンスが元の
サーブレットに戻ってきてしまいます。
リクエストを他のサーブレットに送り送った先でクライアントへ
データを送る方法がありましたらご教授お願いします。
0985nobodyさん
2005/05/30(月) 11:30:42ID:???あうう、タブが
このような処理です。
すみません。
ServletA ServletB
| |
Request --→| |
|----| |
| |ServletA処理 |
|←--| |
|----------------→|
Request --→| |----|
|----| | |ServletB処理
| |ServletA処理 |←--|
|←--| |
| |-----------------→
|----------------→|
| |----|
| | |ServletB処理
| |←--|
| |-----------------→
| |
レス数が950を超えています。1000を超えると書き込みができなくなります。