■■ Servlet/JSP(EJB含む) 質問スレ Part3 ■■
■ このスレッドは過去ログ倉庫に格納されています
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
0267263
04/10/10 02:33:37ID:J6iJ8zNuの情報が掲載されてしまい、空白がキャッシュに載ってしまうのでしょうか?
0268nobodyさん
04/10/10 02:42:52ID:???最終的な「Topページで情報表示」がリクエストしたURLの結果に見える。
# といってもGoogleはちゃんとリダイレクト先を保存するはずだけど。
>>263は単にDBアクセスするJavaコード(Beanなのがスマート)をつくって
そのTopページのJSPから利用すればいいだけだけど、
クライアントにServletのURLへリクエストさせて
ServletでDBから情報取得 → JSPで情報表示
とする方がオーソドックスではある。
0269263
04/10/10 02:52:23ID:8yGQze3U>redirectじゃなくてforwardだから、クライアントから見たら
最終的な「Topページで情報表示」がリクエストしたURLの結果に見える。
安心しました。ダミーTopページ → Topページ間でスレッドでバッチ処理を行う
構成にしたいので助かりました。
>クライアントにServletのURLへリクエストさせてServletでDBから情報取得
→ JSPで情報表示とする方がオーソドックスではある。
これはユーザーにServletのURLを入力させるということですよね?
URLはスッキリとさせたいので上のいままでのやり方で行きたいと思います。
ありがとうございました。
0270nobodyさん
04/10/10 02:53:07ID:???0271nobodyさん
04/10/14 00:14:07ID:???tomcatで表示すると普通に表示されますが
apacheで表示すると30秒ぐらいまたされます。
表示するファイルは普通のhtmlです。
こういった現象が起こっている方はいますか?
また解決策があれば教えてください
0272nobodyさん
04/10/14 00:21:36ID:???一応公の場なんだから、example.comとかexample.jpつかおうな。
あとweb.xmlの<welcome-file-list/>を調べておくように。
0274271
04/10/14 02:02:29ID:???0275nobodyさん
04/10/20 12:51:43ID:???サーブレット側で知ることは可能でしょうか?
以下のようなソースなんですが。
<form name="myform" method=post action="Aaa_serv">
<input type="submit" value="GO">
<select name="aaa" onChange="submit()"><option value="001">001</option></select>
<input type="text" name="bbb" size="10">
</form>
0277nobodyさん
04/10/20 13:51:52ID:Sm6KJnPrJSP&Servletを使用して携帯用コンテンツを作成して要るのですが、
vodafoneでアクセスした際、最初はサイトが表示されるのですが
何回か同じアドレスにアクセスすると
「HTTPエラー500が発生しました。このページはボーダフォン携帯電話では表示できません。」
と、表示されてしまいます。
docomoとauはきちんと表示されるのですが・・・
サーバは、Apache + Tomcat連携です。
どなたかご教授お願い致します。
0282nobodyさん
04/10/20 23:20:37ID:IgyUFmLuTomcat5.0.28 / J2DK1.4.2を使用しております。
ttp://www.onjava.com/pub/a/onjava/2004/02/11/jspcookbook.html
を見まして、なるほどwelcome-fileにServletが指定できるのかと喜び勇んでweb.xmlを設定してみました。
しかし、/(context)/にアクセスしても、
welcome-fileに指定したServletは応答せず、デフォルトサーブレットがディレクトリ内のファイルリストを返してきます…
/(context)/WEB-INF/web.xml は上記サイトの1.にあるものと寸分たがわぬようにしてあります。
com.jspservletcookbook.MyServlet クラスは、単純にHttpServletResponse に簡単なHTMLを吐き出すだけのものになっています。
/(context)/myservlet にアクセスすると、正常に期待通りレスポンスがもらえます。
この現象に心当たりの方はおられませんでしょうか?
または、Tomcat5.0.28で問題なくwelcome-fileにServlet指定してるよと言う方はおられますでしょうか。
よろしくお願いします。
0283nobodyさん
04/10/21 22:00:19ID:???0284282
04/10/22 10:39:58ID:???それが、
<welcome-file>/myservlet</welcome-file>
としてもやっぱりだめなんです。
何か特別なServletの書き方があるんでしょうか…
0285nobodyさん
04/10/22 19:17:43ID:???0286nobodyさん
04/10/22 23:54:13ID:???ここに質問するのと、2chに質問するのではどっちがいい?
0287nobodyさん
04/10/23 00:12:54ID:???0288nobodyさん
04/10/23 00:22:12ID:???0290282
04/10/23 01:12:26ID:???ヴァカでごめんなさいm( )m
<welcome-file>myservlet</welcome-file>
で期待通りの動きをしました。
「url-patternにワイルドカードなし指定したパターンを、ディレクトリ指定抜きでwelcome-fileに指定する」ってことですね。
でもこれだと /(context)/任意のdir/ でのアクセスは出来ないんですね。
とりあえずは<error-page>との組み合わせで今回は対処できそうです。
厳しいお声ありがとうございました。
0292nobodyさん
04/10/25 02:33:01ID:???submit()の()の中に入れた値ってサーブレットでどうやって読むんでしょうか。
ずっとやってて結局できませんでした。
0293nobodyさん
04/10/25 02:53:46ID:???submit()する前に適当なフィールドに動的に値を代入するんじゃない?
あとsubmit()に引数はないような。
0294nobodyさん
04/10/31 22:34:23ID:JE33ttxTPHPみたいにデフォルトでJSPのエラーをHTML画面に出してくれる
サーブレットラッパきぼんぬ。
サーブレットにコンパイル後の行数じゃなくてJSPの行数で出してくれたりとか。
0295nobodyさん
04/10/31 22:52:06ID:???どうせJSPにはコード書かないんだから、あまり必要ないと思われ。
0297nobodyさん
04/11/01 01:46:09ID:???サーブレット使わずにJSP単体でやるってことは、たいしたコード書いてないわけだし、スタックトレースよめばどのメソッドで例外が出たかわかるわけだし、そんなに便利にはならないと思われ。
実装の手間を考えると、誰も使わないし、そんなに便利にはならないし、むくわれないね。
PHPの行番号は、実際にエラーが出た行番号とエラーメッセージが出るだけで、ちょっとライブラリ呼び出しただけで使い物にならんけどね。
0298nobodyさん
04/11/01 10:53:23ID:???http://www.vodafone.jp/ にアクセスすると
http://www.vodafone.jp/scripts/japanese/top.jspに移動する。
JSPを使っていながら /scripts というパスが激しく気になる・・・
まさかPHPみたいな作り方してないだろうな???
0299nobodyさん
04/11/02 07:01:13ID:???はjspでリクエストを受け取ってるね
0300nobodyさん
04/11/02 08:11:27ID:???その組織の体制やシステム構成にあった設計になっているかどうかが問題なので、JSPに処理を書いてるからダメとか、Struts使ってMVCだからイイとか、一概にいえるもんじゃない。
拡張子.jspだけアプリケーションサーバーに委譲するような設定になっているのかもしれない。
画像を多く含んでいてアクセスの多いサイトだと、どういうルールでアプリケーションサーバーに処理を委譲するかっていうのは、悩ましい問題だしね。
/scriptsは怪しいがね。
0301nobodyさん
04/11/04 17:05:48ID:MXul7/PE0302nobodyさん
04/11/04 17:57:59ID:???ActionForward.setRedirect()
どっち?
後者ならスレ違いだけど、リロード対策とかが主じゃないかな。
でもstruts-config.xmlで
<forward ... redirect="true" />
とする方がよさげ。
0303nobodyさん
04/11/04 19:07:00ID:???0304nobodyさん
04/11/06 00:12:34ID:???適当にprivate PrintWriter out;とかしたけど無理ですた...
0305nobodyさん
04/11/06 00:29:00ID:???FileWriter fw = new FileWriter("c:\\test.txt");
PrintWriter out = new PrintWriter(fw);
out.println("出力するよ");
out.printf("%dとか%n", 15);
}
0307nobodyさん
04/11/07 17:55:42ID:???どうもです。ちょっとしたメールクライアントを作ってて、
受信メールのID?(javamailの)をヘッダー解析メソッドに渡して、
そのメソッドの中で例えば件名だと本文とか抽出されてくるので
タグと一緒にoutしたいんです。
perlとかでいう所の、グローバル変数みたいなもので代用できれば
いいんですが、いまいちよく分からんのです。
0308nobodyさん
04/11/07 17:56:33ID:???○件名だとか本文とか
orz
0309nobodyさん
04/11/15 21:57:22ID:???ときどき急に1度繋がった後tomcatを再起動したりすると、次から
NoClassDefFoundErrorが発生して、全く繋がらなくなってしまいます。
そんなような症状を経験された方、いませんでしょうか?
もし何か分かる方がおられましたら、ご教授頂ければうれしいです。
0310nobodyさん
04/11/17 03:36:13ID:eshx/1+6PHP・Perlはほぼ理解しています。
0311nobodyさん
04/11/17 03:38:54ID:???PHPを理解してるというのはすごいね。尊敬する。
Mojavi+Smartyに慣れてるのなら、Strutsにはすんなり移行できると思うよ。
0312nobodyさん
04/11/21 09:07:07ID:???引数でカスタマイズできるJSTLのc:importのようなものを探しています。
特定の名前のBeanにパラメータをセットして、c:importを呼べば実現できますが、
どうも時代逆行的で躊躇しています。
カスタムタグを作るには大袈裟な気もしますし...
皆さんどのようにしていますか?
ちなみにこちらのビューまわりの環境はStruts + JSTLです。
0313nobodyさん
04/11/21 13:30:58ID:???0315nobodyさん
04/11/26 00:43:01ID:1PPB6FSrEclipseでtomcatプロジェクトを下記に作成して表示用にクラスを作ったのですが
C:\eclipse\workspace\Servlet\WEB-INF\classes\servlet
実際に画面に出すとき
http://localhost:8080/Servlet/WEB-INF/classes/servlet
と思いきやパスが見つかりませんとでます
http://localhost:8080/Servlet/
までは画面が出せるのですが、それ以降のパスがよくわかりません。
サイトとか見ても、途中のパス名が変わっていたりしているので
どこかでパス名を設定する場所があると思うのですが
どこでするのでしょうか?教えて下さい
0316nobodyさん
04/11/26 03:39:12ID:???WEB-INF/web.xmlの中でクラスとURLのマッピングを指定します。
あとは
ttp://localhost:8080/manager/html
ttp://www.atmarkit.co.jp/channel/jspservlet/jspservlet.html
ttp://www.google.co.jp/
とかを参考にがんばってください。
0317nobodyさん
04/11/26 12:18:03ID:9IIMg8+8何か問題があるのでしょうか?
0319
04/12/02 13:10:31ID:/bfokzpIげっ、それってどういう場合でしょうか??
0320nobodyさん
04/12/02 14:08:03ID:???ブラウザから直接ソースを閲覧されるから。
拡張子jspならコンテナがJSPとして処理するが、.inc等はそのまま内容をレスポンスしてしまう。
0321nobodyさん
04/12/03 23:30:59ID:J1wDZcQzttp://msugai.fc2web.com/java/servlet/BeansServlet.html
など参考にして
web.xml,server.xmlなどでマッピングさせて
WEB-INF\classes直下にクラスファイルを置きましたら表示させる事が出来ます
しかしパッケージ化(jp.co〜)などその下にさらにフォルダを作ってしまうと
表示されなくなります。
この場合どうすればいいのでしょうか?
クラスパスなどについても一回一回設定するしかないのでしょうか?
0322nobodyさん
04/12/04 02:05:58ID:???<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>jp.co.〜.MyServlet</servlet-class>
</servlet>
のようにservlet-classの部分でパッケージを完全修飾すればよいだけかと。
0323nobodyさん
04/12/04 22:34:45ID:???webコンテナ外からlookupできますか?
weblogicだとコンテキストにパラメータを設定すればイケると思ったけど。
0324nobodyさん
04/12/05 02:02:46ID:???それぞれで、複数のフレームに区切られた画面を表示していると、
フレームのセッションが他のIEになってしまうことがあります。
なぜでしょう。
0325324
04/12/05 02:06:05ID:???です。
0326nobodyさん
04/12/05 02:24:29ID:???複数のIEを起動するとき、どうやって起動していますか?
CTL+N または、[新規作成]->[ウィンドウ]を使っている場合、
[スタート]->[インターネット]等、IEのアイコンから直接起動する
方法でもう一度同じことをやってみてください。
現象は同じですか?
0328nobodyさん
04/12/11 01:04:14ID:???tableをjspから作るにはどうしたらいいんでしょうか?
qにはCREATE TABLE文が入っているのですが、以下のやり方だとダメでした。
ResultSet rss=sttSql.executeQuery(q);
(Can not issue data manipulation statements with executeQuery()というエラー)
tomcat 5.0.28,mysql-connector-java-3.0.16
0329nobodyさん
04/12/11 02:06:59ID:???mysqlは知らんけど多分。
executeQuery ではなく、executeUpdate。
で ResultSet じゃなく int で結果を受け取る( 0 が戻るだけだけど)。
0330nobodyさん
04/12/11 03:30:49ID:???レスどうもです。
intでexecuteUpdateしてみたのですが、エラーが出てしまい、
適当にexecuteだけにしたら別なエラーでboolenで受ければよいと出てきたので、
結局boolenでexecuteでうまくいきました。
ありがとうごさいました。
0331nobodyさん
04/12/14 19:01:50ID:???セッションIDをURLに付加したりCookieを使用せずに
POSTデータとして送りたいのですが・・。
コンテナが自動でやってるぽいので無理ぽ?(´・ω・`)
0332nobodyさん
04/12/14 20:57:18ID:???0333nobodyさん
04/12/15 22:45:59ID:cHQ+sEWtいろいろやっているのですが、以下のようなエラーがでます。
PostgreSQLがわをコード変換つきでmakeしなおせばよいのでしょうが、
それができないため、JDBCがわでなんとかする方法がないでしょうか。
500 Servlet Exception
Something unusual has occured to cause the driver to fail. Please report
this exception: Exception: java.sql.SQLException: ERROR: Conversion between
UNICODE and EUC_JP is not supported
Stack Trace:
java.sql.SQLException: ERROR: Conversion between UNICODE and EUC_JP is
not supported
0334nobodyさん
04/12/18 01:48:32ID:???public class Client {
public static void main(String[] args) {
TreeSet treeSet = new TreeSet();
treeSet.add("1");
treeSet.add("2");
treeSet.add("3");
treeSet.add("4");
Iterator iterator = treeSet.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
このサンプルでwhileが終わった後、
特定の要素を指定して取り出したいのですが、どうやったらいいんでしょうか?
できるなら、ある特定の条件に一致する要素の要素番号?を
while中で取り出しておいて、後ほど要素を指定して取り出したいと思っています。
whileの処理が終わらないと評価できない処理なので苦戦してます。。。
0335nobodyさん
04/12/18 05:19:31ID:???阿呆
0336nobodyさん
04/12/19 01:05:06ID:???MySQLはデフォルトではトランザクション機能は有効になっていないため、
複数同時アクセスがあった場合、おかしくなります。
A B
読(a) /
/ 読(a)
書(a+1) /
/ 書(a+2)
トランザクション機能を使わずに、整合性を保つにはどうすればいいのでしょうか?
もしかして、スレ違いでしょうか・・・
実システムを作るわけではなく、単なる宿題です。
0337nobodyさん
04/12/19 01:42:21ID:???有効にしろよ。
0338336
04/12/19 14:49:52ID:???ロックで排他処理をさせることを思いついたんですが、
Servlet/JSPでのロックの定石ってあるんですか?
perlとかだとflockという関数がありますが。
0339nobodyさん
04/12/19 17:49:35ID:???それは、より深く理解するために、トランザクション処理を一度手前で考えてみろ。
という意図なのか、
それとも、担当講師が、昔トランザクションを知らなかった事を
馬鹿にされた事があって、それを根に持って使うなといっているのか。
前者なら、Servlet/JSP ということではなくて、
ロック処理、競合解決処理一般という探し方をしたほうがええんでは。
(いっそのこと、PostgerSQLのソースとかをハックしたりしたほうが、
より実践的な知識が身につきそうな気がする)
あるいは、トランザクション処理の重要性を教えるために、
無いとどれだけ大変かを体験させようとしてるんだろうか。
0341nobodyさん
04/12/30 08:42:10ID:???<%@ page contentType="text/html; charset=shift_jis"%>
と出力する文字コードを指定しますがそれせずに後から
response.setContentType("text/html; charset=" + enc);
のように書いて動的に出力する文字コードを変える方法は
無いでしょうか?
上記のようにやってみたらエラーがでて出力できなかったので・・・
0342nobodyさん
04/12/30 08:55:20ID:???事故レス
すいません、そのままでできますた。
@pageのとこって、<%〜%>にいれてコメントアウトしてもダメなんですね・・・OTL
0344nobodyさん
05/01/02 20:45:57ID:???workers2.propertiesのuriで仮想ホストを指定すると
効かない。
ありがちな見落としを列挙してくれ。
正直mod_jk2あたりのバグも疑ってる。
Tomcat5-5.0.30-1jpp
mod_jk2-4.1.27-13
httpd-2.0.51-2.9
0345nobodyさん
05/01/03 09:42:49ID:???vmは複数でもvmを動かす鯖は1台?
適当なファイルを作っておいて、ロックをかけてオープンしてから
DBの処理を実行して、DBの処理が終了すればロック開放する。
排他される側の別のプロセスはロック中であれば待機する。
そんなんじゃだめかな。
0346nobodyさん
05/01/03 13:52:47ID:???とか
あほらし
0348nobodyさん
05/01/14 03:15:01ID:???サーブレットのメモリとjavaコマンドで起動したバッチは
プロセスが異なるから(?)Singletonでもオブジェクトを
共有できないことがわかりました。
で、コネクションプーリングを自作で実装していたのですが
オブジェクトを共有できる方法はありますか?
またはデータソースを使用すればサーブレットとバッチのコネクションの
管理ができるのでしょうか?
0349nobodyさん
05/01/14 03:30:01ID:???0350nobodyさん
05/01/14 07:36:10ID:???サーブレットでURLに日本語パラメータを付加したリンクからのGETから
日本語パラメータがどうしてもちゃんと取り出せません。
charsetも設定してますし、requestもresponseもsetCharacterEncoding
でShift_JISを設定してますし、
<A>タグを書き出す時にもURLEncoder.encodeしたり、
パラメータを取り出してからURLDecoder.decodeしたりもしてみましたが
どうしても駄目です・・・
ブラウザもIEとFirefoxで試しました。
もうオテアゲな状態です・・・
他に何かチェックするべき所はあるでしょうか?
0351nobodyさん
05/01/14 10:00:22ID:???Tomcat5.0.19からはGETはsetCharacterEncoding()の適用範囲外。
APIドキュメントによればsetCharacterEncoding()は、リクエストのボディの
文字エンコーディングをオーバーライドする、とある。
GETのパラメータはリクエストのヘッダにあるからsetCharacterEncoding()の適用範囲外になる。
responseのsetCharacterEncoding()もURLEncoderもURLDecoderも関係ないぞ。何やってんだ。
Tomcatの場合はGETでもsetCharacterEncoding()を有効にするオプションが
用意されている。↓このページのuseBodyEncodingForURIの説明を嫁。
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/http.html
ただし、将来はGETでもsetCharacterEncoding()が有効になるように
実装が変わるという話もあるし、Servlet仕様も変更になる可能性がある。
0352nobodyさん
05/01/14 14:08:56ID:???どっかのスレで話題になってなかったっけ?
0353350
05/01/14 21:43:39ID:jVtqm1ln>responseのsetCharacterEncoding()もURLEncoderもURLDecoderも関係ないぞ。何やってんだ。
面目ないです・・・
ですがおかげさまでナントカできそうになりました。
要するにヘッダのエンコードは自分で処理しないといけないという事なので、
setCharacterEncodingメソッドが出来る前にやっていたという
getBytesして新たにエンコードを指定してString作り直すという方法でいけそうだと分かりました。
それで試してみたところちゃんと日本語パラメータが取り出せました!
useBodyEndodingForURIについては、あまりデフォルトの振る舞いを変えたくないので使わない事にします。
ありがとうございました。
0354nobodyさん
05/01/16 01:09:23ID:UULMlX6Sどっちともフォームの要素の値を取得できて、同じように思えるんですが。
どう使い分けるんでしょう?
お願いします。
0356354
05/01/16 01:30:27ID:UULMlX6Sテキストボックスの名前をnamにした場合、
request.getParameter("nam")とか、
(String)request.getAttribute("nam")
で取得できませんか?
0358354
05/01/16 01:48:44ID:UULMlX6Sよく分からなくなってきました。
いや、初めから分かってないんです。
JSP/サーブレットサンプル集を見ていたら、
スレッド式掲示板を作ろうみたいのがあったんです。
if(request.getAttribute("sbm") == null){
//新規投稿フォームを表示
}else{
objBbs.setArticle((String)request.getAttribute("title"),
(String)request.getAttribute("nam"),(String)request.getAttribute("article")
・・・・・・)
}
bbs_beanのsetArticleメソッドでフォームに
入力された情報をbbs_masterテーブルに登録する・・・
っていうのがあったんです。
sbm、title、nam、articleはそれぞれ、フォームの要素名で、
送信ボタン、件名、名前、本文なんです。
今まで、request.getParameter("nam")で取得していたので、
これはどういうことだろう・・・と思ったんです。
0360nobodyさん
05/01/16 02:51:42ID:???あとは、まず自分で調べることだ。
いや、その前に、そのサンプルが何をやっているか確認しろ。
0361354
05/01/16 03:24:48ID:UULMlX6Srequest.getAttributeの戻り値がオブジェクト型なので、キャスト必要
ということ
くらいしか調べきれませんでした。
サブミットボタンが押下
⇒名前/値でフォームの要素の内容がrequestオブジェクトに格納
⇒それを取り出してbbs_masterに掲示板の投稿内容を登録
するときに、
なぜ、request.getParameter("title")ではなく、
(String)request.getAttribute("title")なんだろう・・・と思ったんです。
もう少し調べてみてから出直します!!
0363nobodyさん
05/01/16 07:33:11ID:???調べる前に、そのサンプルが何やってるか確認しろ。
で、なに調べたら、そんなことだけがわかるんだ?
単純にrequest.getAttributeでググっても、それなりに見つかりそうなもんだが。
0364nobodyさん
05/01/16 07:36:47ID:???0365nobodyさん
05/01/16 15:15:58ID:???0366nobodyさん
05/01/17 00:10:37ID:q9aZ0Owf現在Apache2とTomcat4.1.31を連携させて動かせています。
<jsp:include ...>を使い、メニュー領域を読み込ませているんですが、
これのファイル指定は、Tomcatの制御下にあるファイルしか呼び出せないのでしょうか?
例えば、
http://localhost/menu.html (Apacheの制御領域に存在)を
http://localhost(:8080)/web/index.jsp から<jsp:include ...>で呼び出したいのですが・・・
調べても、呼び出し先ファイルは、相対パスで指定としか書いていなく、このような使い方はできないのでしょうか?
このmenu.htmlは、全ページ共通のメニューページになるので、Javaを使ったページのみ別のファイルにする事は避けたいのです。
よろしくお願いいたします。
0367nobodyさん
05/01/17 00:36:01ID:???無理。<jsp:include>はRequestDispatcherを使ってるから。
Tomcatの制御下というより、同一アプリケーション内のリソースのみ。
■ このスレッドは過去ログ倉庫に格納されています