トップページphp
984コメント425KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
011010702/08/01 11:53ID:???
>>108
Servletなら3つ目の方法を使えばスマートなんだけど、
Servletから呼び出されるクラス内での処理だから
getServletContext()はできないよね。
Servletでfilepathまで取得して、その呼び出すクラスに
渡してあげるしかないのかな。
0111nobodyさん02/08/01 15:36ID:???
>>109
あいよ。会社名とか入ってるの見つけたらこっそり教えてくれ。フリー、商用利用、改変、再配布可。
詳しくは javadoc の下のほうを見てくれ。
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20020801152859020.zip

>>110
サーブレットや JSP から呼び出された先で Web アプリケーションルートを取る
のは、システムプロパティにでも設定しておかない限り無理だろう。ただの設定
ファイルやデータファイル (読み出し専用ファイル) ならリソースとして
getResourceAsStream() で読めば良いだろうけど、書き込みもするのならサーブ
レット/JSP 側から getRealPath() でパス名取って渡すしかない。
0112nobodyさん02/08/02 10:46ID:KliK+F7e
>>86
の便乗質問だが、
>>93の方法でやっても駄目で、
>>96の方法はTomcat4なので駄目(当方Tomcat3.3.1)です。

さて、WEB上であっちこっちで調べたのだが分かりません。

皆さん、どーしているのですか?!
0113nobodyさん02/08/02 12:44ID:hNq5//MC
>>111
どうもありがとうございました。
これから見てみます。
0114nobodyさん02/08/02 13:48ID:???
>>112
Apache 使えばよいかと。
011511202/08/02 16:00ID:KliK+F7e
>>114
Apache2.0.39
Tomcat3.3.1
の組み合わせです。

<Directory "D:/Tomcat/webapps/hoge">
Options -Indexes
</Directory>
と遣っているのだが駄目です。

一体どーやったら出来るのでしょうか??
0116nobodyさん02/08/02 18:26ID:???
>>112
とりあえず、httpd.conf を教えてくれんと、原因はわからん。
011711202/08/02 18:46ID:KliK+F7e
>>116
<pre>
■Apache2.0.39のhttpd.confで修正した箇所は以下の通りです。
(1).jaを先頭に持ってきた。
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw

(2).コメントアウトした。
#AddDefaultCharset ISO-8859-1

(3).最後尾に追加した。
Include "D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf"
<Directory "D:/jakarta-tomcat-3.3.1/webapps/hoge">
Options -Indexes
AllowOverride None
</Directory>
</pre>

つづく。。。
011811202/08/02 18:48ID:KliK+F7e
>>117
つづき、、、

■Tomcat3.3.1の修正したファイル、箇所は以下の通りです。
(1).D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf
JkWorkersFile "D:/jakarta-tomcat-3.3.1/conf/jk/workers.properties"

以下追加した。
JkMount /hoge ajp13
JkMount /hoge/* ajp13

(2).D:/jakarta-tomcat-3.3.1/conf/jk/wrapper.properties
wrapper.tomcat_home=d:\jakarta-tomcat-3.3.1
wrapper.java_home=d:\j2sdk1.4.0

(3).D:/jakarta-tomcat-3.3.1/conf/server.xml
<!-- コメントアウトした。
<Http10Connector port="8080"
secure="false"
maxThreads="100"
maxSpareThreads="50"
minSpareThreads="10" />
-->
011911202/08/02 18:48ID:KliK+F7e
>>118

順調にservlet/jspは動いています。
しかしWebブラウザのアドレスに例えば http://server/hoge/jsp/ と入れると
ディレクトリのリストが表示されてしまう。
表示しないようにしたいのです。
しかし、ApacheやTomcatのサイトに行ったり、Googleなんかで検索して色々と
調べたのだが駄目でした。

多分設定漏れがあると思うのだが、さっぱり判らないのが現状です。

お願いいたします。
0120nobodyさん02/08/02 19:08ID:???
JkMount /hoge ajp13
JkMount /hoge/* ajp13

JkMount /hoge/*.jsp ajp13
JkMount /hoge/servlet/* ajp13
かな。
リクエストを丸投げしてしまっているのを止めればいけるはず。
0121nobodyさん02/08/02 19:23ID:???
>>119
デフォルトのファイルサーブレットを使わないようにするとか、
ディレクトリリストを表示しない版を自作して入れ替えれば?
ふつーにサーブレット登録するのと同じようにファイルサーブ
レットも差し替え出来るけど。
012211202/08/05 09:53ID:skGy3+Xd
>>120
の方法でも駄目でした。

>>96
の方法はTomcat4みたいだし

>>121
の方法はちょっとわかりません。
申し訳ありませんがサンプルとかを紹介しているサイトを
教えていただけるとありがたいです。

0123nobodyさん02/08/05 10:50ID:7tZAuiIw
>>111
パッケージbiz.moyo.leaflet.toolkit.net.http
を使うにはどうすればよいのでしょうか?
何かダウンロードする必要がありますか?
サーブレットファイルをコンパイルしてもうまくいきません。
0124nobodyさん02/08/05 10:52ID:???
>>122
表示されるディレクトリ一覧は Apacheの? それとも Tomcatの?
012511202/08/05 13:25ID:skGy3+Xd
>>124
Tomcat Web Server v3.3.1 Finalと表示されている。
Tomcatみたい。
0126nobodyさん02/08/05 15:25ID:???
>>125
http://server/hoge/jsp/ のリクエストを Tomcat に投げているので、
httpd.conf、mod_jk.conf に問題がある。中身見れんとこれ以上は・

たしか、mod_jk.conf は自動生成させるから、こいつは修正せんほうがいい。
ser.verxml に Context を設定するだけどよかったはず。

# いっそのこと、Tom4 にすれば。
012711202/08/05 16:18ID:skGy3+Xd
>>126
Tomcat4は色々と問題があるような(?)報告を読んだことがあるので
ちょっと不安なのです。また研究用、学習用とあるみたいで、
またServletAPI/JSP APIも上位だし、何となくですが未だ避けたい。

で、httpd.confとかmod_jk.conf等は殆どデフォルトで使用しています。
触った場所は>>117>>118程度です。
mod_jk.confはファイル名を変更して使用しています。

httpd.confには
Include "D:/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf.Apache2"
としています。

何時でもApache1に戻れるようにmod_jk.conf.Apache1を用意しています。
この辺の逃げ腰が駄目なのかなぁ?!

実際のところTomcat4でも構わないのですが、安定性など如何なものですか?
0128nobodyさん02/08/05 16:51ID:???
>>122
うちは Tomcat-4.0.3 で問題なく稼動してます。
012911202/08/05 17:48ID:skGy3+Xd
>>128
安定稼動ですか。。。

確かに、Googleで検索してもTomcat3.3.1とTomcat4.0.3のヒット数が
全然違うのだし、そろそろTomcat4.0.3に移行しますか。

今回は閉じたネットワークだからこのまま納品して
Tomcat4.0.3への導入を検討します。

今までありがとうございました。
0130nobodyさん02/08/05 20:31ID:???
>>123
コンパイルに必要なのは zip ファイルの中の WEB-INF/lib に置いてある leaflet-http.jar って奴。
まずこれをクラスパスに入れる (か WEB-INF/lib を -extdirs に指定する)。コードの書き方は
WEB-INF/classes にある FileUploadServlet.java か WEB-INF/doc のパッケージドキュメントを参考に
してくれ。
0131nobodyさん02/08/06 05:28ID:???
結局俺は Linux + Tomcat 4 + mod_webapp.so の組み合わせで起動できなくて、
Tomcat 3.3 + mod_jk.so の組み合わせに戻してしまった。mod_webapp の問題って
言うより必要な glibc のバージョンを満たせなかったんだけど (アプライアンス
鯖なもんで)。
0132nobodyさん02/08/07 15:22ID:???
サーブレットを使えるようにしたいのですが、
ゼロからインストールの仕方が載っているHPってないでしょうか?
いろいろ検索してんですが、どうもよくわかりません。
JDKとApacheとTomcatはインストールしたんですが、
ぜんぜんわかりません。
よかったらお願いします。
0133nobodyさん02/08/07 18:06ID:???
>>132
http://www.ingrid.org/jajakarta/tomcat/
0134nobodyさん02/08/08 10:30ID:YE9LQNzW
Tomcat 4.0.1 って Win2k/XP のサービス起動出来なくなってね?
家の VAIO, 仕事場の ThinkPad, NetVista の 3 台とも全滅。

> C:\localhost\home>net start "Apache Tomcat"
> Apache Tomcat サービスを開始します.
> Apache Tomcat サービスを開始できませんでした。
>
> サービスはエラーを報告しませんでした。
>
> NET HELPMSG 3534 と入力すると、より詳しい説明が得られます。

イベントビューアーを見ると
> The LoadLibrary function failed for the following reason: 指定された
> モジュールが見つかりません。

どこかに PATH でも通す必要があるのか?
0135nobodyさん02/08/08 17:45ID:???
JNDIを使って、JAVAとLDAPを繋げようとしているのだが、うまくいかない。
java.lang.ClassCastException:com.sum.jndi.ldap.LdapCtx
というエラーが出る。
意味わかる人がいたら何が悪いか教えてください。
もしスレ違いでしたら、適当なスレを教えていただけると幸いです。
0136nobodyさん02/08/08 22:08ID:???
ホームページみてやるより、初めて挑戦するならごくごく初心者用の
本が最近はたくさん出てるから1冊参考に買ってみるといいですよ。
その方が必要最低限の事はザーっと見れると思うし。
0137nobodyさん02/08/09 01:07ID:???
>>135
スタックトレース出てる?
013813502/08/09 02:43ID:???
>>137
長いものは出ていません。
java.lang.ClassCastException:com.sum.jndi.ldap.LdapCtx
at ×××.main(×××.java:50)
と出ています。(×××はプログラム名です。)
0139nobodyさん02/08/09 02:50ID:???
>>138
じゃ、その ×××.java の 50 行目で Context のキャストに失敗してるだけ。
0140135と13802/08/09 13:43ID:???
>>139
ありがとうございます。
javaのプログラムは問題ないと思うので、
キャストが失敗しているということはldapの問題かな、やっぱり。
0141nobodyさん02/08/09 14:34ID:???
>>140
ちげーよ、オイ! とりあえず 50 行目のコード出してみろ。
大方↓こんなことでもやってるんじゃないのか?
InitialContext ctx = (InitialContext)hashtable.get("hoge");
014214002/08/09 16:56ID:???
>>141さん
ありがとうございます。
いろいろと試してみたのですが同じエラーが出たり、別のエラーが出たりといった状態で
相変わらず繋がりません。基本的なことがわかっていないのかも・・・。

JAVAのプログラムは
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://localhost:389/");
InitialContext ctx = new InitialContext(env);
topicConnectionFactory=(TopicConnectionFactory)ctx.lookup("dc=sample,dc=jp");←これが50行目
です。

ちなみにLDAPファイルの中身が下記のような形です。
dn:dc=sample,dc=jp
objectclass: dcObject
objectclass:organization
o:Factory00
dc:sample

lookupの部分はldapのどの部分を指定すれば良いのでしょうか?
わかりましたらよろしくお願いします。
0143nobodyさん02/08/09 17:17ID:uYc6rPBJ
サーブレットで呼び元を知るにはどうしたらいのでしょうか?
0144nobodyさん02/08/09 17:31ID:???
>>142
じつは LDAP は使ったことが無いので詳しくは分からないのだが、ctx.lookup()
が返しているものは Topic〜じゃなくて com.sum.jndi.ldap.LdapCtx のイン
スタンスだ。だから多分↓こう書かなきゃいけない。そこから Topic〜 の取得
方法は知らない。

Context ldapCtx = (Context)ctx.lookup("dc=sample,dc=jp");

>>143
String yobimotoURL = request.getHeader("Referer");
// ↑不明なときは null になるので注意
014514302/08/09 19:29ID:uYc6rPBJ
>>144
thanks
014614202/08/09 21:09ID:???
>>144さん
ありがとうございます。ややこしくて頭混乱気味です。一度整理しないと。
それとTopicConnectionFactoryの所得方法を知っている方がいましたら
教えてください。お願いします。

しかしよぅ、多少プログラミング言語ができるとどんなプログラムでも
作れると周りから思われるのは何とかならんかい

0147nobodyさん02/08/12 00:53ID:???
Tomcat4.0.4のWin用って、servlet.jar無いんですか?
厨房質問で申し訳ないのですが・・・
0148nobodyさん02/08/12 02:34ID:???
>>147
common/lib にないの?
0149nobodyさん02/08/15 02:30ID:???
大それた質問なのですが、お願いします。

jsp:forward って「他のサーバ」のリソースにフォワード出来たりしますか?
0150nobodyさん02/08/15 07:11ID:nluYDw9h
>>149
むり。リダイレクトしろ。
015114702/08/15 23:15ID:???
148>>
遅くなってしまった。148さんレスありがとうございます。
自宅でTomcat4.0.4をDLしてみたらありました。
今更ですが無いわけ無いですよね。すみません!
0152まつ02/08/20 02:17ID:yjCVey5W
テキストフォームに文字を入力して表示されている文字にマッチすると
赤く置換されるサンプルのJSPを作ってみた。

\を入れてもエラーを回避してヒットする方法を誰かしってる?
(\\を入れるとヒットします。)

JSPってなんで String tuka = "\"; って\を""で囲ってエラーになるんだろ?


<!-------- moji.jsp -------------------------->
<%@ page contentType="text/html; charset=SJIS"%>
<%
String inputMoji = request.getParameter("inputMoji");
String moji = "ABCDEFG\\HIJKLMN\\OPQRSTU\\VWXYZ";

//文字置換
moji = moji.replaceFirst("("+ inputMoji +")","<font color='red'><B>$1<\\/B><\\/font>");
%>
<HTML>
<FORM METHOD=POST ACTION="./moji.jsp">
<%=moji%><BR>
<input type="text" name="inputMoji">
<input type="submit">
</FORM>
</HTML>
0153v02/08/20 06:25ID:FJl0QgGS
http://muvc.net/jsweb/
0154初めてのサーバーサイドjava02/08/20 15:15ID:???
Apache1.3.26 Tomcat4.0.4 mod_jk.dll j2sdk1.4.0_01 WinXP
で組んでみました。するとHTMLファイルは問題なく表示されるのですが
JSPだとstatus500 Internal Server Error がでます。それから参照先の
フォルダの中身がリストになって表示されてしまいます。
こういう時は何処からチェックしていけばいいのでしょうか?
見よう見まねでチャレンジしてます。どなたかご助言をお願いします。
0155nobodyさん02/08/20 20:39ID:RuSa0Yqx
Apache1.3.22 Tomcat4.04 で連携させるため
mod_webapp.soをビルドしようとしていますが失敗します。
./support/buildconf.shの実行まではうまくいく
のですが次のconfigureで失敗します。
./configure --enable-docs --with-PACKAGE=yes --with-apxs=/usr/sbin/apxs --with-apr=./apr
途中で

checking for apr CC variable... error
configure: error: cannot find APRVARS file in /home/test/webapp/apr

のようになってしまいます。なにかご助言があればお願いいたします。
0156nobodyさん02/08/21 19:48ID:wTMM6SK6
PHPで言うところの、連想配列って作ること可能ですか?
0157あぼーんNGNG
あぼーん
0158nobodyさん02/08/22 03:00ID:???
>>156
可能ですよ。
0159tomcat02/08/22 23:23ID:???
>>155
cp ./apr/apr-config ./apr/APRVARS
0160nobodyさん02/08/24 00:32ID:/szaZI0N
>>154
Apacheのmod_jkの設定内容と、Tomcatのworkers.properties、server.xmlの内容。
そこらへん掲示してもらえればもうちょっと具体的にいえるかも?
0161nobodyさん02/08/24 03:20ID:utJTQwUG
JSPからの入力値をServletで受け取って、別のJSPを返す処理をやっています。

このとき、ブラウザのURL欄にServletのURLが出てしまうのですが、これを
JSPのURLにすることは可能でしょうか。。。

サーバ:Tomcat3.3.2(単体)、Solaris8
クライアント:IE、Operaともにだめでした、Windows2000
---
最初のJSPの一部
<form method="GET" action="ServletのURL">
<input type="submit" name="Submit" value="Submit">
</form>
---
Servletの一部
public void doGet( .....) throws ....{
//途中の処理
RequestDispatcher rd = context.getRequestDispatcher("次のJSP"); //この"次のJSP"のURLを出したい
rd.forward(request,response);
}
----
0162nobodyさん02/08/24 03:29ID:V0UGUmX8
JSPの勉強をし始めたところなんですが、
JSP上で「Vector ary = new Vector();」を実行すると、
Class org.apache.jsp.Vector not found.

と言われてしまいます。
何かインポートしなければいけないんでしょうか。
0163nobodyさん02/08/24 11:29ID:/szaZI0N
>162
<%@ page import="java.util.*" %>
を追加。
0164nobodyさん02/08/24 14:43ID:H7leyWd6
>>161
sendRedirectにしたらどう?
ところで、なぜそこまでしてブラウザにJSPファイル名出したいのですか?
0165初めてのサーバーサイドjava02/08/24 22:16ID:???
>>160 レスありがとうございます。

私が行ったのは
Apache\modulesにmod_jk.dllを入れる。
Apache\confの中のhttpd.confの末尾にInclude "C:\tomcat\conf\mod_jk.conf-auto"を追加。

tomcat\confのなかにmod_jk.conf-autoを入れる。
(以前tom3.2.x系で試したのをバックアップしていてそれからコピー。)
最初のJkWorkersFile・・・に"C:/tomcat/conf/jk/workers.properties"に書き換え。
mod_jk.conf-auto内のajp12をajp13に置換。

workers.propertiesもtom3系のを流用。
途中のworker.tomcat_homeとworker.java_homeにそれぞれのパスを記入。
ajp12をajp13に置換。

server.xmlは
<Server port="8005" shutdown="SHUTDOWN" debug="0">の下に
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" modJk="C:\Apache\modules\mod_jk.dll" />
 を追記。
<Host name="localhost" debug="0" appBase="webapps" ・・・> の下に
  <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />
 を追記しています。

ちなみにJSPは動きました。ですがリスト表示されるのは相変わらずです。
Apacheのhttpd.confのDocumentrootにtomcat\webapps内の使っているフォルダ名までパスを記述して
ブラウザ上でlocalhostでアクセスすると404エラーになり、パスを全部記述しないと
表示できない状況です。

何だかレベルの低い質問で恐縮の限りですがアドバイスをいただければ嬉しいです。
0166nobodyさん02/08/24 23:34ID:/szaZI0N
>165
>ちなみにJSPは動きました。ですがリスト表示されるのは相変わらずです。
??。JSPが動かなかったんじゃないの?>154
リスト表示?されるのは>>96ではないかと。
JSP・Servletの何れかが正常動作しないのは現在の情報ではmod_jk.conf-autoに問題があるような。。。
016716102/08/25 01:07ID:???
>>164
レスありがとうございます。
sendRedirect()ではできました。。。

>ところで、なぜそこまでしてブラウザにJSPファイル名出したいのですか?
たいした理由じゃないんですが、クライアントにとっては表示しているのは
2枚目のJSPの内容なので、URL欄もそうじゃなきゃおかしいと思ったからです。。。

JSP/Servletの開発がはじめてなので、Servletの名前がでるのが普通かどうか
判断できなかったですう。。。
0168初めてのサーバーサイドjava02/08/28 00:27ID:???
>>166
レスありがとうございます。
mod_jk.conf-autoですね、もう少し勉強して色々やってみます。
0169nobodyさん02/08/28 06:31ID:r028kWh6
神聖銀行がソフトバンクの会社更生申立を損に通告!!
又、預保に瑕疵担保条項に基づく買い戻し請求!!
神聖銀行がソフトバンクの会社更生申立を損に通告!!
又、預保に瑕疵担保条項に基づく買い戻し請求!!
神聖銀行がソフトバンクの会社更生申立を損に通告!!
又、預保に瑕疵担保条項に基づく買い戻し請求!!
神聖銀行がソフトバンクの会社更生申立を損に通告!!
又、預保に瑕疵担保条項に基づく買い戻し請求!!
0170nobodyさん02/08/28 13:29ID:tGW5fHH2
Servletかじりたてなんですが、サーバ側でイベントが発生したらリアルタイムで
情報をPushさせたい場合は、素直にAppletを勉強すべきなんでしょうか?

制御システムとWebをくっつけるものを作ってて、ふと
ユーザが手を出さないとイベントもへったくれもない気がして・・・無知ゴメソ・・・。
0171nobodyさん02/08/31 22:57ID:mJeuMnFZ
JSPはソースコンパイルしなくてイイし便利なんだけどServletっていちいちコンパイルした後にtomcat再起動しなくちゃダメじゃん
あれってどうにかならないの?
サーバが別マシンなんだけど激しくめんどくさいんだよね。特にtomcatは再起動に時間がかかる・・

classファイル変更したときにtomcat再起動せずにすむ方法ってないかな?
環境はapache+tomcatっす
0172nobodyさん02/09/01 00:01ID:???
>>171
resinにすれ
017373へ02/09/01 22:52ID:NNPDCqX6
jdkを1.4にしたらどうですかな?

私も同じ症状だったけど、いけましたぞ
0174nobodyさん02/09/02 02:15ID:2oT4bP/+
>>171
Tomcatだったらmanagerアプリが入ってるだろ?
/manager/reload?path=/YOUR_CONTEXT_PATH
を呼べばリロードできる。
tomcat-users.xmlにmanager権限を持つユーザを追加する必要があるが。
0175初期不良02/09/02 03:08ID:???
>>174
勉強になりまふ
0176nobodyさん02/09/02 21:31ID:???
上の方で話題になってたmultipart/form-dataのパースクラス、
漏れも欲しいんだけどもう1度うpしてもらえませんか?
オライリーのはいきなり保存されちゃってなんか好かん。
0177nobodyさん02/09/02 23:21ID:???
>>177
JakartaのCommonsプロジェクトに、マルチパート解析用のユーティリティ出てたよ
今後はこれがいいかも。
0178nobodyさん02/09/03 11:06ID:???
>>177
これかな?
ttp://jakarta.apache.org/commons/sandbox/fileupload/
0179nobodyさん02/09/03 12:11ID:???
>>176
はいよ。

http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20020903121055000.zip
0180nobodyさん02/09/03 12:25ID:???
俺のは一時ファイルに保存しないでパート単位で (名前付き) ストリームを取り
出す感じだから、余分なオーバーヘッドが発生しない代わりにプログラマ的に
面倒かも。

↓いままでこう書いてた奴が
String value1 = request.getParameter("value1");
String value2 = request.getParameter("value2");

↓こういう感じになる。
String value1 = null;
while(true){
  FormData part = multipart.getNextFormData();
  if(part == null)  break;
  if(part.getName().equals("value1")){
    value1 = part.getValue("Shift_JIS");
  } else if(part.getName().equals("file1")){
    InputStream in = part.getInputStream();
    …
  }
}
0181ふぉ02/09/06 09:36ID:sFTL/UD4
↑一連のFileUpLoad参考にしちゃってます。
フォルダごとアップロードってできんのかな?
018218002/09/06 12:01ID:???
>>181
フォルダごとは無理かな。いくつかのファイルをまとめてってんだったら
クライアント側で ZIP か LZH に固めてもらってる。イントラ開発なら
アプレットのセキュリティレベル下げて、フォルダごと ZIP に固めて POST
するようなアプレット作る。
0183nobodyさん02/09/07 00:27ID:41V0KowW
>>177

> 今後はこれがいいかも。

オライリのとくらべて格段にメンドクセー気がすんだけど、どんなメリットがあんの?
0184nobodyさん02/09/07 02:56ID:???
>>177
オライリーのと >>180 の悪いとこ取りみたいな感じが…
オライリーのはプログラマ的に楽だし、>>180 のは完全にストリームベースで
できるので効率最優先の時に良いんだけど。
0185nobodyさん02/09/08 08:25ID:+tHMOokM

JSPと言えど、ある程度のものを書くにはそれなりのJavaの知識が必要なんだ
ね。最初、JSPにデータベースの処理書いたら、先輩にBeansで3層にしろ、っ
て言われちゃったよ。Java初心者にとってBeansはちょっと壁が高いです..


0186nobodyさん02/09/08 09:08ID:+tHMOokM
JSP書くときソフトは何使っていますか?
メモ帳は使いにくいです。

0187nobodyさん02/09/08 17:25ID:???
>>186
秀丸。マクロと強調表示をうまく作ると使いやすい。
macromedia の Ultra Developer で JSP は使いにくかったが、サイト管理系のところ
だけなら結構良い。
0188nobodyさん02/09/10 22:26ID:SB/7i5JH
JSPにはHTML::Templateみたいなクロスサイトスクリプティング脆弱性を
事前に防止するために役に立ちそうな機構はありますか?
018917702/09/10 23:47ID:???
Jakarataで作ったものなら皆結構使うからいいかなぁ、と思って脊髄反射で書き込んだだけですた
漏れだめぽ・・・
>>178
JavaDoc見てると、ストリームベースで扱えるっぽいよ。
FileItem#getInputStreamでストリームが取れそうな感じ。
019018002/09/11 01:50ID:???
>>189
ふっふっふ
俺のはメモリや一時ファイルにデータを保管してからあらためて取り出す
ようなことはやらんのだよ。でかい CSV ファイルを先頭から DB にぶち
込んだり、馬鹿でかい XML ファイルを SAX に食わせたりするときに
有利かな。
アップしてたソースがまた落ちたので、アップロードのページにリンク
貼っときますた。
0191nobodyさん02/09/11 18:40ID:KsAJ6jkE
javax.servlet.http.HttpSession を invalidate で無効化できるとどこかで見たんだけど、本当に消えるの?
0192nobodyさん02/09/11 19:27ID:???
>>191
「消える」の定義がよく分からんが、次回のリクエスト時に request.getSession(false) を
やると null が返ってくる。getSession(true) なら何も入っていないセッションが取れる。
また、invalidate() を呼び出したときに HttpSessionBindingListener#unbound() も
呼び出される。これを「消えた」というなら消える。

実を言うと鯖をクラスタ化して DB でセッション管理している時のそこらへんの動きは
禿しく微妙なんだけどね。
0193nobodyさん02/09/12 20:15ID:EiytWMDM
クッキーを使ったセッションって、通常のHTMLファイルのリンクでも
維持されるものなのでしょうか?

クッキーをブラウザが送ってるのは当たり前として、サーバー側で
そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか?

こちら、Tomcat4.04 + JDK1.4です。
0194nobodyさん02/09/12 20:40ID:EiytWMDM
すいません、アップローダ、さらにもう一度アップしていただけませんでしょうか?
数日も経たない間にお願いして申し訳ございませんが。お願いします。

オライリーのは開発チームみんなで本買ってねってのに加え、
基本的に商用利用不可って書いてるし。
0195nobodyさん02/09/12 20:41ID:???
>>193
> そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか?

普通は HTML などのような静的なファイルへのアクセスでセッションの LastAccess
は変わりません。ただし大抵の環境は FileServlet を自作版と置き換えられる
ので、アクセスごとにセッションに触るサーブレットを自作して置き換えれば良い。
フルコーディングしなくてもオーバーライドすれば楽。

import java.io.*;
import javax.servlet.http.*;
import org.apache.catalina.servlets.*;

public clas OresamaServlet extends DefaultServlet{
  protected void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException
  {
    request.getSession(true);
    super.doGet(req, res);
    return;
  }

}

$TOMCAT_HOME/conf/web.xml にある org.apache.catalina.servlets.DefaultServlet
というのをこのサーブレットクラスの名前に置き換えれ。

ただし HTML ファイルなどが Apache へマッピングされてたらどうしようもない。
019618002/09/12 20:43ID:???
>>194
アップロードのページの下のほうにリンク貼っといた。

http://tool-ya.ddo.jp/2ch/trash-box/
0197nobodyさん02/09/12 23:39ID:???
Beansを作る場合ってpackage化しないといけないのですか?
019819402/09/13 01:19ID:rrE5hfdS
>196
ありがとうございます。

ukのHPとかオライリーって、ソース公開しておいて商用不可かよっ!
って感じで、Javaの世界はなんだかなーと思ってたので、すごい
助かります。
0199193(=194)02/09/13 01:27ID:rrE5hfdS
>195
なるほど。そういう仕組みになってるんですねぇ。
全然Servletコンテナの仕組みしらないので参考にします。
0200nobodyさん02/09/13 02:51ID:N8mYZ7Nv
>>197
Beanに限らず、JavaプログラムはPackage化するのが普通。
無名Packageはあくまでも特殊なケース。

0201nobodyさん02/09/14 21:10ID:???
linux+tomcat+apacheでアプリ作ってると、下のような現象に陥ることがある。
・ソースを書き変えてコンパイルしてクラスを更新しても、クライアント側に反映されない。
理由がさっぱりなので誰か教えてください。
0202nobodyさん02/09/14 21:15ID:???
javamailで設定するsmtpホストのアドレスって自マシンのIPでいいの?
vine2.5+apache1.3.24+tomcat4.0でやってるんだけど、自マシンのIP設定するとメールおくれるんだよね。これってなんで?
0203nobodyさん02/09/15 13:41ID:hcAsMafz
>>202
defaultでsendmailかPostfixがたちあがっているからじゃん?
rootになってntsysvコマンドでしらべてみな。

まぁ、psで調べてもいいけどさ。
0204nobodyさん02/09/15 23:27ID:4RjfenHM
>>201
reloadable?
020520102/09/16 18:54ID:???
>>204
reloadableっていうのは、更新できるかってことですか?
エラーもなく更新はできてるよ。
0206nobodyさん02/09/16 18:59ID:Fc5JTIXQ
servletでフォーム認証する方法知ってる人いる?
ちなみにユーザーは百人前後を予定してるんだけれども。

0207nobodyさん02/09/16 19:04ID:???
>>203

立ち上がってたー。有り難う。
020817702/09/16 19:57ID:???
>>206
Servlet2.2で、Form認証に関する仕様が定められてるので、それ見れ。
0209nobodyさん02/09/16 21:47ID:2vuqixrP
Apache 1.3.26 + Tomcat 3.3.1 + PostgreSQL 7.2.1 を使っています。
あるDBのコネクションプーリングをするクラス(ConnectionPool)を作成して、
下のような感じにしているのですが、

pubilc class TheDB {
 private static TheDB instance = null;
 private ConnectionPool pool = null;

 private TheDB {
  // serverの設定読み込み
  pool = new ConnectionPool(上で読み込んだ設定);
 }

 public static TheDB getInstance() {
  if (instance == null) instance = TheDB();
  return instance;
 }
 :
}

これを使っていると、(この部分とは別の)classを変更したときに
新しいTheDBインスタンスが作られて、DBへのコネクションがどんどん増える、
という状態になってしまいました。(古いインスタンスが残っているのだと思いますが…)
仕方ないので今はTomcatを再起動しています。
Javaは始めて日が浅いのでよく分からないのですが、参照されなくなった
インスタンスはGCに回収されないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています