■■ Servlet/JSP(EJB含む) 質問スレ ■■
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/08 11:03ID:Kkr1yl67というわけでつくたよ。
0176nobodyさん
02/09/02 21:31ID:???漏れも欲しいんだけどもう1度うpしてもらえませんか?
オライリーのはいきなり保存されちゃってなんか好かん。
0179nobodyさん
02/09/03 12:11ID:???はいよ。
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フォルダごとアップロードってできんのかな?
0182180
02/09/06 12:01ID:???フォルダごとは無理かな。いくつかのファイルをまとめてってんだったら
クライアント側で ZIP か LZH に固めてもらってる。イントラ開発なら
アプレットのセキュリティレベル下げて、フォルダごと ZIP に固めて POST
するようなアプレット作る。
0183nobodyさん
02/09/07 00:27ID:41V0KowW> 今後はこれがいいかも。
オライリのとくらべて格段にメンドクセー気がすんだけど、どんなメリットがあんの?
0184nobodyさん
02/09/07 02:56ID:???オライリーのと >>180 の悪いとこ取りみたいな感じが…
オライリーのはプログラマ的に楽だし、>>180 のは完全にストリームベースで
できるので効率最優先の時に良いんだけど。
0185nobodyさん
02/09/08 08:25ID:+tHMOokMJSPと言えど、ある程度のものを書くにはそれなりのJavaの知識が必要なんだ
ね。最初、JSPにデータベースの処理書いたら、先輩にBeansで3層にしろ、っ
て言われちゃったよ。Java初心者にとってBeansはちょっと壁が高いです..
0186nobodyさん
02/09/08 09:08ID:+tHMOokMメモ帳は使いにくいです。
0187nobodyさん
02/09/08 17:25ID:???秀丸。マクロと強調表示をうまく作ると使いやすい。
macromedia の Ultra Developer で JSP は使いにくかったが、サイト管理系のところ
だけなら結構良い。
0188nobodyさん
02/09/10 22:26ID:SB/7i5JH事前に防止するために役に立ちそうな機構はありますか?
0189177
02/09/10 23:47ID:???漏れだめぽ・・・
>>178
JavaDoc見てると、ストリームベースで扱えるっぽいよ。
FileItem#getInputStreamでストリームが取れそうな感じ。
0190180
02/09/11 01:50ID:???ふっふっふ
俺のはメモリや一時ファイルにデータを保管してからあらためて取り出す
ようなことはやらんのだよ。でかい CSV ファイルを先頭から DB にぶち
込んだり、馬鹿でかい XML ファイルを SAX に食わせたりするときに
有利かな。
アップしてたソースがまた落ちたので、アップロードのページにリンク
貼っときますた。
0191nobodyさん
02/09/11 18:40ID:KsAJ6jkE0192nobodyさん
02/09/11 19:27ID:???「消える」の定義がよく分からんが、次回のリクエスト時に request.getSession(false) を
やると null が返ってくる。getSession(true) なら何も入っていないセッションが取れる。
また、invalidate() を呼び出したときに HttpSessionBindingListener#unbound() も
呼び出される。これを「消えた」というなら消える。
実を言うと鯖をクラスタ化して DB でセッション管理している時のそこらへんの動きは
禿しく微妙なんだけどね。
0193nobodyさん
02/09/12 20:15ID:EiytWMDM維持されるものなのでしょうか?
クッキーをブラウザが送ってるのは当たり前として、サーバー側で
そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか?
こちら、Tomcat4.04 + JDK1.4です。
0194nobodyさん
02/09/12 20:40ID:EiytWMDM数日も経たない間にお願いして申し訳ございませんが。お願いします。
オライリーのは開発チームみんなで本買ってねってのに加え、
基本的に商用利用不可って書いてるし。
0195nobodyさん
02/09/12 20:41ID:???> そのクッキーを元に、時間カウントをリフレッシュしてるんでしょうか?
普通は 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 へマッピングされてたらどうしようもない。
0196180
02/09/12 20:43ID:???アップロードのページの下のほうにリンク貼っといた。
http://tool-ya.ddo.jp/2ch/trash-box/
0197nobodyさん
02/09/12 23:39ID:???0198194
02/09/13 01:19ID:rrE5hfdSありがとうございます。
ukのHPとかオライリーって、ソース公開しておいて商用不可かよっ!
って感じで、Javaの世界はなんだかなーと思ってたので、すごい
助かります。
0199193(=194)
02/09/13 01:27ID:rrE5hfdSなるほど。そういう仕組みになってるんですねぇ。
全然Servletコンテナの仕組みしらないので参考にします。
0200nobodyさん
02/09/13 02:51ID:N8mYZ7NvBeanに限らず、JavaプログラムはPackage化するのが普通。
無名Packageはあくまでも特殊なケース。
0201nobodyさん
02/09/14 21:10ID:???・ソースを書き変えてコンパイルしてクラスを更新しても、クライアント側に反映されない。
理由がさっぱりなので誰か教えてください。
0202nobodyさん
02/09/14 21:15ID:???vine2.5+apache1.3.24+tomcat4.0でやってるんだけど、自マシンのIP設定するとメールおくれるんだよね。これってなんで?
0203nobodyさん
02/09/15 13:41ID:hcAsMafzdefaultでsendmailかPostfixがたちあがっているからじゃん?
rootになってntsysvコマンドでしらべてみな。
まぁ、psで調べてもいいけどさ。
0204nobodyさん
02/09/15 23:27ID:4RjfenHMreloadable?
0206nobodyさん
02/09/16 18:59ID:Fc5JTIXQちなみにユーザーは百人前後を予定してるんだけれども。
0209nobodyさん
02/09/16 21:47ID:2vuqixrPある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に回収されないのでしょうか?
0210nobodyさん
02/09/16 23:26ID:???Singletonで設計したTheDBが複数インスタンス化されてしまうこと自体、
おかしくないですか?
ひょっとして、似たようなクラスをコピペで大量生産してますか?
ちなみに上記のような設計にした場合、TheDBのインスタンスはGCに回収されません。
(TheDBのstatic属性として参照されつづけてますからね)
0211209
02/09/17 00:19ID:elworjfu作ったクラスはTheDBだけです。
既存サーブレットを書き換えて、Tomcatが下記のメッセージを
吐いてリロード(?)したときに新たにインスタンス化されています。
2002-09-17 XX:XX:XX - ContextManager: Removing context DEFAULT:/hogehoge
2002-09-17 XX:XX:XX - ContextManager: Adding context DEFAULT:/hogehoge
古いインスタンスの方は、DBのコネクションが張られたままになって
いるので残っているようです。
0212nobodyさん
02/09/17 00:39ID:???それは Tomcat のオートリロードが利いてるだけ。Java の static オブジェクトは
JavaVM に一つじゃなくて Class インスタンスに一つ。Tomcat のオートリロードは
Class インスタンスの入れ替えを行うので、同じ JVM 上に複数の static オブジェ
クトができるわけ。どっかのサーブレットの destroy() に TheDB インスタンスを
クリーンアップするようなコード書いとけ。
0213nobodyさん
02/09/17 00:50ID:???すまん、クラスのオートリロード時にサーブレットの destroy() が呼び出されるかは
不明 (WebSphere だと destroy() 呼ばないで Web アプリケーションが再起動しちまう)。
まぁーそうだなぁ。$JAVA_HOME/lib/ext にその TheDB ってクラスの入った jar を放り
込んでおくか、環境系の変なトラブル出したくなかったら毎回ちゃんと再起動するかかな。
インスタンス内でサーバソケット開いて、新しいインスタンス生成する前に localhost
接続して前のに終了命令を出すってのもあるけどめんどくさい。
サーバサイドでリソースやスレッドを Singleton で管理するクラスを作った人間が大抵
ハマる罠。
0214210
02/09/17 01:05ID:???Tomcatのオートリロードって、設定ファイルか何かではずせないものなんですか?
AppServerでクラスのリロードされると、はまることが多いですよね。
HttpSessionにいれたインスタンスのキャストに失敗したりしません?
0215nobodyさん
02/09/17 03:28ID:???たしか $TOMCAT_HOME/conf/server.xml と apps-xxx.xml にオートリロードの
設定があったはず (3.3.1)。触ったことが無いのでよく知らんけど。
そう、オートリロードが走ると、既にセッションに入っているオブジェクトの
Class と新しいクラスローダー上での Class のインスタンスが違うからキャ
ストに失敗したりする。まぁ今さら起きても「あ〜再起動忘れた〜」で済んでる
けど、最初の頃は謎だった。よく考えたらなるほどね〜って感じ。
>>209
GC で消えないのは、どこかにリロード前のそのオブジェクト (か参照たどった
別のオブジェクト) を見てるスレッドが生き残ってるから。まぁコネクション
プールなら内部に「監視スレッド」持ってても不思議じゃないから、多分そいつが
生き残って古い TheDB を参照してるので GC の対象にならない。
と見たがどうか。
0216nobodyさん
02/09/17 03:37ID:???GC は走らないな。それから getInstance() には synchronized 修飾子
付けとけ。
0217210
02/09/17 23:18ID:???調べてみた。Contextのりローダブルフラグで設定できるらしい(tomcat3.2.3)
ttp://www.ingrid.org/jajakarta/tomcat/tomcat-3.2.3/doc-ja/uguide/tomcat_ug.html
209の作りはそもそもどう七日って気も少しするけど、気にしない方向で。
0218nobodyさん
02/09/18 16:56ID:???0219nobodyさん
02/09/18 17:07ID:???Error: No match was found for method "copyInto(long[])".
0220219
02/09/18 17:09ID:???Vectorて何でも良いんじゃないの?
Stringじゃないとエラー出るんですけど何故?
0221nobodyさん
02/09/18 18:08ID:???byte, int, long なんかのプリミティブ型じゃだめですな。
v.addElement(new Long(value)) みたいにせんと。
0222219
02/09/18 18:29ID:???すんません。アホでした。
オブジェクトって書いてあったんで
・Longにして格納(220氏のご指摘どおり)
・l=(Long[])v.toArray();で配列化
・long=(long)l[i];
そしたら、type "Long" cannot be cast into type "long".
えーん(T_T)l[i].longValue()だと、java.lang.ClassCastException
どうやったらlongの値が取れますか?!
0223219
02/09/18 18:41ID:???が、java.lang.ClassCastException でした。
ふ〜む?
0224219
02/09/18 18:56ID:???を見て、v.copyInto(l);にすると
> null
> java.lang.ArrayStoreException
ひぇーん(p_;)
0225もうちょっと基礎を勉強せい
02/09/19 01:32ID:???v.add(new Long(0));
...
Long[] longArray = (Long[])(v.toArray(new Long[0]));
for(int i=0;i<longArray.length;i++){
long l = longArray[i].longValue();
System.out.println(l);
}
0226nobodyさん
02/09/19 01:49ID:???板 違 い で つ
0227nobodyさん
02/09/19 10:10ID:3f2LBbrrUnixのServletでHTTPを使ってやり取りできますか?
Servletで掲示板システムを作って
ActiveXクライアントから投稿したいんですけど。
0228nobodyさん
02/09/19 10:52ID:???SOAPまたはSOAPモドキを使いたいということなのかもしれ
んが、そうでなきゃ、HTTPを扱うActiveXコントロールだけの
問題と思われ。
それなら、板違い。
0229nobodyさん
02/09/19 11:20ID:???ありがとうございました。
プログラム板でたずねて見ます。
0230nobodyさん
02/09/19 22:57ID:/RwVyOp1Content-Length: を強制的に付けるようにしてるのだけど、doFilter() の中で
response の OutputStream を close() してしまうとストリームが既に閉じてる旨の
エラーをTomcatが時々出してくる。
ので close() しないようにしたんだけどこれは正しい?
モノの本のサンプルではclose()してるんだけど...
Tomcat 4.1.10 / RedHat7.3
0232219
02/09/19 23:33ID:???すんまへん。
有り難うございました。
でも、意外とこういう型変換は本にもサイトにも載ってないんですよね。
助かりました。次回はマ板などに行きますです。
0233pan
02/09/20 10:38ID:???という環境です。
連携には"mod_jk"を利用しようと思っています。
さて、本題ですが、
他のどこのサイトを参照しても、
「ソースからコンパイルして、DLLを作成しましょう。」となっています。
jakarta本家サイトもそう書いてあるので、それが正解なのはわかりますが、
私にはコンパイル環境がありません。
本家に3.3.x用の"mod_jk.dll"はあるのですが、
4.0.x用の"mod_jk.dll"はありませんので困っています。
どこか、ダウンロード出来る所とかないでしょうか?
以上、よろしくお願いします。
0234nobodyさん
02/09/20 13:59ID:???で、ClassCastExceptionを吐きます。
入れる時は、
> AgentInfo agent_info=new AgentInfo();
> session.setAttribute("AGENT_INFO", agent_info);
で、エラーは出てないのですが。
AgentInfoは、
> <%@ include file="agent_info.jsp"%>
で指定してるんですが、これじゃあかんのでしょうか?
0235230
02/09/20 22:23ID:???おおっ、即答どもです。安心できました。
ちなみに書籍は↓
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1379-4
0236nobodyさん
02/09/24 21:15ID:CcL7X+71の制約はみなさんどうしていますか?わざとSQLExceptionを発生させて、
データ不正とクライアントに返すのが一般的ですか?それともあらかじめ
INSERT(UPDATE)する前に対象DBを検索しServlet(Java)側でそのデータの
整合性を検証するのが一般的なのでしょうか?
0237nobodyさん
02/09/24 22:27ID:???SQLException の発生を期待すると、本当の DB 障害と区別をつけるために
SQLState や Error Code を見る羽目になる。DB の制約は (外部バッチ等も
考慮して) 保険と思え。
0238nobodyさん
02/09/25 00:19ID:???mod_jk.dllはTomcat4.xと3.x両対応じゃないの?
workers.propertiesとかの設定で動くと思うが。
win環境ならそのdllそのまま使えるでしょ。
0239pan
02/09/25 13:52ID:???最初はそう思って動作させたのですが、"mod_jk無いよ"みたいなメッセージがでてしまい、
上手い事動作しませんでした。
ってことでWEBを調べたら、>233のような感じだったんですよ。
ちなみにApache1.3.x+Tomcat4.0.xの場合は238さんのおっしゃる通り、
本家で配布しているdllがそのまま利用できるようです。
Apache2.0.x+Tomcat4.0.xの場合はTomcat4.0.xの配布場所から、
mod_jkのソースをダウソ、コンパイルしてdllを作成し、
それを利用しないとダメなんだそうです。
0240nobodyさん
02/09/25 20:55ID:???某JMeterのうんこUIは正直耐えられな..
0241nobodyさん
02/09/27 21:39ID:RwP/8UIKJDBC2.0で定義されている接続プーリングって全然違うものですか?
前者は、単純にDBの接続を使いまわすもの。後者は、ResultSetなどを
保持しつつ、他のクエリーを実行したあとに、また元の状態に復帰できる
ものという解釈で良いでしょうか?
0242nobodyさん
02/09/28 13:22ID:???0243241
02/09/28 18:32ID:JW6zvc4Yそそ、だから謎なの。
わざわざJDBCで用意されてるのに、なんで商用Servletコンテナ
では用意されてたりするのかなーとかが、謎で。
0244nobodyさん
02/09/28 22:35ID:???JDBC 2.0 で提供されてるのはインターフェースだけ。中身はない。
その実装を商用アプリケーションサーバのメーカーが行っている。
と、それが聞きたかったのか?
0245241
02/09/29 00:45ID:SRhsLTZcすいません。最も聞きたいことは、
OracleのJDBCドライバに実装されているConnectionPoolDataSource
を使うならば、Tomcat4.0.4でコネクションプーリングのクラスを作らなくて
も良いのでしょうか?ということです。
というか、Webアプリの視点から見たときに、本来、アプリケーションサーバが
実装してるものを、Oracleは、JDBCドライバで実装してくれていると考えても
良いのでしょうか。
0247nobodyさん
02/09/29 11:10ID:SRhsLTZcなるほど、ありがとうございます。
アプリケーションサーバも、Oracle JDBC2.0のドライバも
同じインターフェースに実装してるということを知って、
驚きでした。早速、Oracleのドライバを使って、実現することにします。
0248nobodyさん
02/09/29 23:13ID:???多分 Oracle にしてみれば、アプリケーションサーバみたいなコネクションプールを
デフォルト装備した環境だけじゃなく、普通の Java アプリケーションでもコネク
ションプールを使えるように用意してくれていると思う。蔵鯖でプールが必要かと
いわれれば激しく疑問なので、用途が特化された (Web じゃない) 鯖とかゲート
ウェイ鯖開発用に。
0249238
02/10/01 23:11ID:???レス遅れた。スマソ。
最近発売されたサーバーサイドJAVA系の本にApache2.0.x+Tomcat4.0.xの
設定例が載っているそうだよ。
本の種類はそんな多い方じゃないと思うから、本屋さんで立ち読みしてみたらどうでしょう?
0251アーフォー
02/10/02 15:52ID:???簡単なサンプル・ソースとかが載っている書籍、ホームページがあれば教えていただけませんでしょうか?
0252nobodyさん
02/10/03 14:07ID:KDvau4q1ほらよ。
俺は結局1.3で運用してるがな。
ttp://www.acg-gmbh.de/mod_jk/
0253nobodyさん
02/10/03 14:33ID:5xq1UjDrここは?
http://www.cc.rim.or.jp/~egami3/ejb/#4
0254pan
02/10/03 15:25ID:???有難うございます。
色々と調査した結果、Apache2.0.x用のmod_jkを発見できました。
コレを利用して立ち上げた所、正常に起動し、
exmaples以下のサーブレット&JSPが正常に動作するのを確認できました。
色々とアドバイス有難うございました。
ちなみにmod_jkの場所は、
ttp://www.acg-gmbh.de/mod_jk/ です。
tomcat-users MLにPOSTされていたのを発見しました。
0255nobodyさん
02/10/04 11:27ID:???0256nobodyさん
02/10/04 11:33ID:gpSssjjtJSPファイルを表示させるときに「シンボルが解決できません」になります。
一緒に動かすServletの方はコンパイルできているのですが…。
0257nobodyさん
02/10/04 12:05ID:???どうせデータの受け渡しをしたいだけだろ? ServletContext, HttpSession, HttpServletRequest
の setAttribute()/getAttribute() 使え。
なかなかインターネットに情報がないですぅ。
どこもDSOをつかったインストール方法ばかりです。
どなたかStaticにApacheにインストールしてる方はいませんでしょうか?
ちなみに、mod_perlとPHPはDSOなしでApacheに組み込んでます。
0259254
02/10/04 21:35ID:???なるほど。
ということは、ServletにNikki classを作って、JSPファイル内に
NIkki nikki = new Nikki(引数)
みたいな書き方はおかしいですか?
0262nobodyさん
02/10/05 13:16ID:2e8trTi8transaction内で、複数のデータをINSERTをしたいのですが、
1つ目のINSERTするレコードがないと、2個目以降のINSERT(別テーブル)は
成功しないテーブル構造になっているのですが、
1つ目のINSERT成功後、2個目のINSERT処理の、executeUpdate()
で、処理が止まってしまいます。(ロックされてる?)
特徴としては、関数呼び出しの構造上、以下のように動作します。
setAutoCommit(false)
createStatement
1つ目のexecute
Statementを開放
createStatement
2つ目のexecute
<〜ここで止まる〜>
Statementを開放
以降n回繰り返し
comit
これは、transactionのアイソレーションとかと関係あるのでしょうか?
executeをexecuteUpdateにしても同じ動きをしました。
0263nobodyさん
02/10/05 16:43ID:/Ylxg1h6http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50
だ、SQL分自体はどおなっとるの?
0264nobodyさん
02/10/05 19:06ID:2e8trTi8ほんとだ、同じことで悩んでる。
SQL文自体は、単体ごとにUPDATEすると実行されます。
(ちなみに、バッチ処理にして、executeBatchすると登録は成功します。)
各文ごとに、違うStatementを使うことが問題なんじゃないのかと
いう気がしてきました。世の中のサンプル見ても、Statementを開放
してることと、テーブルのリレーションの問題以外は問題がなさそう。
そもそも、1つめのレコードを予めDBに書いておいて、
2番目移行のUPDATEを実行すると、最後にUPDATEした奴
しかDBに書き込まれてないんですよね。
うーん。
0265259=256
02/10/05 20:03ID:???してるけど、通らないっす。
でも、指定の仕方が間違ってるのかも。
jspファイルが
USR_ROOT/###.jsp
にあって、参照したいServletは
USR_ROOT/WEB-INF/classes/###.class
にあります。
classpathはUSR_ROOT/WEB-INF/classes
で指定してあるのですが、
jspにimportを書く場合
<%@ import ### %>
であってますか?
0266nobodyさん
02/10/05 23:27ID:???デフォルトパッケージのクラスか? ちゃんとパッケージ名付けれ。
// USR_ROOT/WEB-INF/classes/jp/co/hoge/HageServlet.java
package jp.co.hoge;
...
public class HageServlet extends HttpServlet{
...
こういうサーブレットがあったとき、下のような使い方が出来なくも無い。
<%@ page import="jp.co.hoge.*" %>
<%
HageServlet s = new HageServlet();
%>
普通はこんなことしないけど。
0267265
02/10/07 21:51ID:???うおおっ!ようやくできました!!本当にありがとうございました!!
えっと、行った手順としては、
USR_ROOT/WEB-INF/classes/
0268265
02/10/07 22:08ID:???えっと、行った手順は
USR_ROOT/###.jsp ←問題のコンパイルできなかったファイル
USR_ROOT/WEB-INF/classes/index.class ←このファイルを最初に読み込んで、###.jspに処理を飛ばす
USR_ROOT/WEB-INF/classes/sansyou1.class ←###.jspにimportしたかったclass
USR_ROOT/WEB-INF/classes/sansyou2.class ←その他の外部クラス
という風なファイル構成だったのですが、
USR_ROOT/WEB-INF/classes/pack/sansyou1.class
USR_ROOT/WEB-INF/classes/pack/sansyou2.class
という風にpackageにして、###.jspは言われたように
<%@ page import="pack.*" %>
とすると、コンパイルできました。
ただ、どうしてデフォルトの場所では読み込んでくれないのか
という疑問も残りましたが。
ともかくコンパイルできて良かったです。ありがとうございました。
ところで、普通はデータを利用するのに外部クラスのメソッドをそのまま読み込まずに
setAttribute()/getAttribute()を使うのですか?
そうした方がメリットがあるのでしょうか。
もしよかったらもう少し教えて下さい。
0269nobodyさん
02/10/07 23:51ID:???話はそれから
0270nobodyさん
02/10/08 13:49ID:???送られるファイルのサイズを制限しているようなのですが、その処理を行っている実装部分はどこなのでしょうか?
web.xml に書かれている内容がどこで使われているのか、私の能力不足により解析できなかったので…。
0272266
02/10/09 12:16ID:???後からメンテナンスしやすい設計にするためだよ。サーブレットが作るデータが
必要なら setAttribute()/getAttribute() で受け渡せばいいし、サーブレットの
メソッドが呼び出したいなら、そのメソッドは Bean 化して別クラスにするのが
いい。そうすることによってクラス間の関係が疎になるので再利用しやすく後の
メンテナンス性が上がる。
0273265
02/10/09 21:46ID:???クラスを直接importしなくてもデータのやりとりとか
特に問題なくできるのですね。
クラス同士はあまり密接に関わらせない方が良いのですか。
勉強になりました。
ありがとうございます。
0274nobodyさん
02/10/11 22:13ID:4dmb/MffStrutsを使ってるのでTemplateタグで実現したいのですが
テンプレートから呼び出されるJSPのページにパラメータを渡すには
どうやればよいのでしょう?旨いやり方ありますか?
要はincludeならば
<jsp:include ...>
<jsp:param .../>
</jsp:include>
みたいなことがStrutsのTemplateタグで出来ないかと思案しているわけです。
template:insertをするPageのスコープにパラメータを埋め込んではみたんだけど
どーやらPageスコープってjsp:includeやらtemplateやら使ってもそれぞれのページ内
みたいで…まーあたりまえか(w
requestやらapplicationやらsessionに埋め込めばいいのだろうけど、なんとなく
イメージ的に違うって感じ。でもそれっきゃないのかなぁ?
誰かグルになってくださいませ。
■ このスレッドは過去ログ倉庫に格納されています