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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
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に回収されないのでしょうか?
0210nobodyさん02/09/16 23:26ID:???
>>209
Singletonで設計したTheDBが複数インスタンス化されてしまうこと自体、
おかしくないですか?
ひょっとして、似たようなクラスをコピペで大量生産してますか?

ちなみに上記のような設計にした場合、TheDBのインスタンスはGCに回収されません。
(TheDBのstatic属性として参照されつづけてますからね)
021120902/09/17 00:19ID:elworjfu
>>210
作ったクラスは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:???
>>211
それは Tomcat のオートリロードが利いてるだけ。Java の static オブジェクトは
JavaVM に一つじゃなくて Class インスタンスに一つ。Tomcat のオートリロードは
Class インスタンスの入れ替えを行うので、同じ JVM 上に複数の static オブジェ
クトができるわけ。どっかのサーブレットの destroy() に TheDB インスタンスを
クリーンアップするようなコード書いとけ。
0213nobodyさん02/09/17 00:50ID:???
>>211
すまん、クラスのオートリロード時にサーブレットの destroy() が呼び出されるかは
不明 (WebSphere だと destroy() 呼ばないで Web アプリケーションが再起動しちまう)。
まぁーそうだなぁ。$JAVA_HOME/lib/ext にその TheDB ってクラスの入った jar を放り
込んでおくか、環境系の変なトラブル出したくなかったら毎回ちゃんと再起動するかかな。
インスタンス内でサーバソケット開いて、新しいインスタンス生成する前に localhost
接続して前のに終了命令を出すってのもあるけどめんどくさい。

サーバサイドでリソースやスレッドを Singleton で管理するクラスを作った人間が大抵
ハマる罠。
021421002/09/17 01:05ID:???
>>213
Tomcatのオートリロードって、設定ファイルか何かではずせないものなんですか?

AppServerでクラスのリロードされると、はまることが多いですよね。
HttpSessionにいれたインスタンスのキャストに失敗したりしません?
0215nobodyさん02/09/17 03:28ID:???
>>214
たしか $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 修飾子
付けとけ。
021721002/09/17 23:18ID:???
>>215
調べてみた。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:???
servletから別のクラスを利用するときって、-classpathを付けなくてもコンパイルできるよね。なぜなのか誰かおせーて
0219nobodyさん02/09/18 17:07ID:???
Error: No match was found for method "addElement(long)".
Error: No match was found for method "copyInto(long[])".
022021902/09/18 17:09ID:???
途中でカキコしちまった。スマソ

Vectorて何でも良いんじゃないの?
Stringじゃないとエラー出るんですけど何故?
0221nobodyさん02/09/18 18:08ID:???
>>220
byte, int, long なんかのプリミティブ型じゃだめですな。
v.addElement(new Long(value)) みたいにせんと。
022221902/09/18 18:29ID:???
>>221
すんません。アホでした。
オブジェクトって書いてあったんで
・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の値が取れますか?!
022321902/09/18 18:41ID:???
と、思ったら l=(Long[])v.toArray();
が、java.lang.ClassCastException でした。
ふ〜む?
022421902/09/18 18:56ID:???
http://www.asahi-net.or.jp/~dp8t-asm/java/tips/MakeArrayDynamically.html
を見て、v.copyInto(l);にすると
> null
> java.lang.ArrayStoreException
ひぇーん(p_;)
0225もうちょっと基礎を勉強せい02/09/19 01:32ID:???
Vector v = new Vector();
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:3f2LBbrr
ブラウザで動くActiveXクライアントと
UnixのServletでHTTPを使ってやり取りできますか?
Servletで掲示板システムを作って
ActiveXクライアントから投稿したいんですけど。
0228nobodyさん02/09/19 10:52ID:???
>>227
SOAPまたはSOAPモドキを使いたいということなのかもしれ
んが、そうでなきゃ、HTTPを扱うActiveXコントロールだけの
問題と思われ。

それなら、板違い。
0229nobodyさん02/09/19 11:20ID:???
>228
ありがとうございました。
プログラム板でたずねて見ます。
0230nobodyさん02/09/19 22:57ID:/RwVyOp1
組み込みブラウザ相手のWebアプリなんで、Servlet/JSP の出力に Filter かまして
Content-Length: を強制的に付けるようにしてるのだけど、doFilter() の中で
response の OutputStream を close() してしまうとストリームが既に閉じてる旨の
エラーをTomcatが時々出してくる。

ので close() しないようにしたんだけどこれは正しい?
モノの本のサンプルではclose()してるんだけど...

Tomcat 4.1.10 / RedHat7.3
0231nobodyさん02/09/19 23:01ID:???
>>230
close() しなくても良い。とりあえずそのバカ本晒せ。
023221902/09/19 23:33ID:???
>>225-226
すんまへん。
有り難うございました。
でも、意外とこういう型変換は本にもサイトにも載ってないんですよね。
助かりました。次回はマ板などに行きますです。
0233pan02/09/20 10:38ID:???
Win2K Pro + Apache2.0.4 + Tomcat4.0.4
という環境です。
連携には"mod_jk"を利用しようと思っています。

さて、本題ですが、
他のどこのサイトを参照しても、
「ソースからコンパイルして、DLLを作成しましょう。」となっています。
jakarta本家サイトもそう書いてあるので、それが正解なのはわかりますが、
私にはコンパイル環境がありません。

本家に3.3.x用の"mod_jk.dll"はあるのですが、
4.0.x用の"mod_jk.dll"はありませんので困っています。
どこか、ダウンロード出来る所とかないでしょうか?

以上、よろしくお願いします。
0234nobodyさん02/09/20 13:59ID:???
> AgentInfo agent_info=(AgentInfo)session.getAttribute("AGENT_INFO");
で、ClassCastExceptionを吐きます。

入れる時は、
> AgentInfo agent_info=new AgentInfo();
> session.setAttribute("AGENT_INFO", agent_info);
で、エラーは出てないのですが。

AgentInfoは、
> <%@ include file="agent_info.jsp"%>
で指定してるんですが、これじゃあかんのでしょうか?
023523002/09/20 22:23ID:???
>>231
おおっ、即答どもです。安心できました。
ちなみに書籍は↓
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1379-4
0236nobodyさん02/09/24 21:15ID:CcL7X+71
クライアントから送られてきたデータをDBに格納する際、DBの外部参照等
の制約はみなさんどうしていますか?わざとSQLExceptionを発生させて、
データ不正とクライアントに返すのが一般的ですか?それともあらかじめ
INSERT(UPDATE)する前に対象DBを検索しServlet(Java)側でそのデータの
整合性を検証するのが一般的なのでしょうか?
0237nobodyさん02/09/24 22:27ID:???
DB 更新前にデータの整合性を検証する (ストアドとかでやっても良いけど)。
SQLException の発生を期待すると、本当の DB 障害と区別をつけるために
SQLState や Error Code を見る羽目になる。DB の制約は (外部バッチ等も
考慮して) 保険と思え。
0238nobodyさん02/09/25 00:19ID:???
>>233
mod_jk.dllはTomcat4.xと3.x両対応じゃないの?
workers.propertiesとかの設定で動くと思うが。
win環境ならそのdllそのまま使えるでしょ。
0239pan02/09/25 13:52ID:???
>>238
最初はそう思って動作させたのですが、"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/8UIK
よく見かける、n個の接続を使いまわす「コネクションプーリング」と、
JDBC2.0で定義されている接続プーリングって全然違うものですか?

前者は、単純にDBの接続を使いまわすもの。後者は、ResultSetなどを
保持しつつ、他のクエリーを実行したあとに、また元の状態に復帰できる
ものという解釈で良いでしょうか?

0242nobodyさん02/09/28 13:22ID:???
コネクション、和訳をすれば、接続よ。575
024324102/09/28 18:32ID:JW6zvc4Y
>242
そそ、だから謎なの。
わざわざJDBCで用意されてるのに、なんで商用Servletコンテナ
では用意されてたりするのかなーとかが、謎で。
0244nobodyさん02/09/28 22:35ID:???
>>243
JDBC 2.0 で提供されてるのはインターフェースだけ。中身はない。
その実装を商用アプリケーションサーバのメーカーが行っている。

と、それが聞きたかったのか?
024524102/09/29 00:45ID:SRhsLTZc
>244
すいません。最も聞きたいことは、

OracleのJDBCドライバに実装されているConnectionPoolDataSource
を使うならば、Tomcat4.0.4でコネクションプーリングのクラスを作らなくて
も良いのでしょうか?ということです。

というか、Webアプリの視点から見たときに、本来、アプリケーションサーバが
実装してるものを、Oracleは、JDBCドライバで実装してくれていると考えても
良いのでしょうか。
0246nobodyさん02/09/29 02:35ID:???
>>245
そういうこと。
完全なコネクションプールは接続対象のデータベース製品の特性を
熟知しているところでないと実装が難しい。
0247nobodyさん02/09/29 11:10ID:SRhsLTZc
>246
なるほど、ありがとうございます。

アプリケーションサーバも、Oracle JDBC2.0のドライバも
同じインターフェースに実装してるということを知って、
驚きでした。早速、Oracleのドライバを使って、実現することにします。
0248nobodyさん02/09/29 23:13ID:???
>>247
多分 Oracle にしてみれば、アプリケーションサーバみたいなコネクションプールを
デフォルト装備した環境だけじゃなく、普通の Java アプリケーションでもコネク
ションプールを使えるように用意してくれていると思う。蔵鯖でプールが必要かと
いわれれば激しく疑問なので、用途が特化された (Web じゃない) 鯖とかゲート
ウェイ鯖開発用に。
024923802/10/01 23:11ID:???
>>239
レス遅れた。スマソ。
最近発売されたサーバーサイドJAVA系の本にApache2.0.x+Tomcat4.0.xの
設定例が載っているそうだよ。
本の種類はそんな多い方じゃないと思うから、本屋さんで立ち読みしてみたらどうでしょう?
0250nobodyさん02/10/02 13:07ID:???
>>249
mod_jk2 がちゃんと出るまで待った方がいいような気がする。
0251アーフォー02/10/02 15:52ID:???
EJB と JavaBeans の違いがよく分かりません。
簡単なサンプル・ソースとかが載っている書籍、ホームページがあれば教えていただけませんでしょうか?
0252nobodyさん02/10/03 14:07ID:KDvau4q1
>>250
ほらよ。
俺は結局1.3で運用してるがな。

ttp://www.acg-gmbh.de/mod_jk/
0253nobodyさん02/10/03 14:33ID:5xq1UjDr
>>251
ここは?
http://www.cc.rim.or.jp/~egami3/ejb/#4
0254pan02/10/03 15:25ID:???
>>249
有難うございます。
色々と調査した結果、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:gpSssjjt
JSPからServletのクラスを参照するにはどうすればいいのですか。
JSPファイルを表示させるときに「シンボルが解決できません」になります。
一緒に動かすServletの方はコンパイルできているのですが…。
0257nobodyさん02/10/04 12:05ID:???
JSP やサーブレットから他のサーブレットを参照するなんてことは普通やらない。
どうせデータの受け渡しをしたいだけだろ? ServletContext, HttpSession, HttpServletRequest
の setAttribute()/getAttribute() 使え。
0258 02/10/04 19:29ID:???
Staticallyにtomcatとapacheを連係させる方法しらべてるんですけど、
なかなかインターネットに情報がないですぅ。
どこもDSOをつかったインストール方法ばかりです。
どなたかStaticにApacheにインストールしてる方はいませんでしょうか?
ちなみに、mod_perlとPHPはDSOなしでApacheに組み込んでます。
025925402/10/04 21:35ID:???
>>255
なるほど。
ということは、ServletにNikki classを作って、JSPファイル内に
NIkki nikki = new Nikki(引数)
みたいな書き方はおかしいですか?
0260259=25602/10/05 06:54ID:???
誤爆してる…
>>257でした。すまそ。
0261nobodyさん02/10/05 09:56ID:???
>>259
JSP のコンパイルが通らないんだろ? import でちゃんとパッケージを指定
してる?
0262nobodyさん02/10/05 13:16ID:2e8trTi8
JDK1.4 + Oracle JDBC経由で Oracle9iに接続しています。

transaction内で、複数のデータを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:/Ylxg1h6
丁度こっちにも同様の質問があがっとるぞ
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50
だ、SQL分自体はどおなっとるの?
0264nobodyさん02/10/05 19:06ID:2e8trTi8
>263
ほんとだ、同じことで悩んでる。

SQL文自体は、単体ごとにUPDATEすると実行されます。
(ちなみに、バッチ処理にして、executeBatchすると登録は成功します。)

各文ごとに、違うStatementを使うことが問題なんじゃないのかと
いう気がしてきました。世の中のサンプル見ても、Statementを開放
してることと、テーブルのリレーションの問題以外は問題がなさそう。

そもそも、1つめのレコードを予めDBに書いておいて、
2番目移行のUPDATEを実行すると、最後にUPDATEした奴
しかDBに書き込まれてないんですよね。

うーん。
0265259=25602/10/05 20:03ID:???
>>261
してるけど、通らないっす。
でも、指定の仕方が間違ってるのかも。

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:???
>>265
デフォルトパッケージのクラスか? ちゃんとパッケージ名付けれ。

// 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();
%>

普通はこんなことしないけど。
026726502/10/07 21:51ID:???
>>266
うおおっ!ようやくできました!!本当にありがとうございました!!

えっと、行った手順としては、
USR_ROOT/WEB-INF/classes/
026826502/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:???
>>111
送られるファイルのサイズを制限しているようなのですが、その処理を行っている実装部分はどこなのでしょうか?
web.xml に書かれている内容がどこで使われているのか、私の能力不足により解析できなかったので…。
027126502/10/08 21:20ID:???
>>269
なるほど。。。すみません。
そういった暗黙のルールが色々とあるのですね。
勉強します。
027226602/10/09 12:16ID:???
>>268
後からメンテナンスしやすい設計にするためだよ。サーブレットが作るデータが
必要なら setAttribute()/getAttribute() で受け渡せばいいし、サーブレットの
メソッドが呼び出したいなら、そのメソッドは Bean 化して別クラスにするのが
いい。そうすることによってクラス間の関係が疎になるので再利用しやすく後の
メンテナンス性が上がる。
027326502/10/09 21:46ID:???
なるほど。
クラスを直接importしなくてもデータのやりとりとか
特に問題なくできるのですね。
クラス同士はあまり密接に関わらせない方が良いのですか。
勉強になりました。
ありがとうございます。
0274nobodyさん02/10/11 22:13ID:4dmb/Mff
CompsitViewパターンにしてやろーと思っていて。
Strutsを使ってるのでTemplateタグで実現したいのですが

テンプレートから呼び出されるJSPのページにパラメータを渡すには
どうやればよいのでしょう?旨いやり方ありますか?

要はincludeならば
<jsp:include ...>
<jsp:param .../>
</jsp:include>
みたいなことがStrutsのTemplateタグで出来ないかと思案しているわけです。

template:insertをするPageのスコープにパラメータを埋め込んではみたんだけど
どーやらPageスコープってjsp:includeやらtemplateやら使ってもそれぞれのページ内
みたいで…まーあたりまえか(w
requestやらapplicationやらsessionに埋め込めばいいのだろうけど、なんとなく
イメージ的に違うって感じ。でもそれっきゃないのかなぁ?

誰かグルになってくださいませ。
0275nobodyさん02/10/11 22:31ID:???
<template:put> と <template:get> じゃダメなのか?
027627402/10/11 22:35ID:???
>275
ダメやっちゅーに。
ページコンポーネントの組み込みはでけるけど、その組み込むページに
どやってパラメータを渡すかってことが知りたいのです。
0277nobodyさん02/10/12 01:01ID:xShHXVsw
サーバー側に固有の数字をランダムに当てたディレクトリを
自動的に作成したいのですが、そのようなことができるメソッドってありますでしょうか?
ランダムな数字を作るのはわかっています。
ディレクトリを自動的に作成するメソッドがありましたらご教授ください。
おながいします。
0278nobodyさん02/10/12 01:05ID:???
>>277
File#mkdir(), File#mkdirs() の API リファレンス嫁
027927702/10/12 01:58ID:xShHXVsw
ホント馬鹿ですみませんがもう少しヒントをくらはい・・・。

String dirname = "場所";
boolean a = mkdir(dirname);

ってやると
シンボルを解釈できません。
シンボル:メソッドmkdir(java.lang.String)
ってでます。import java.lang.*;は書いてあります。
0280nobodyさん02/10/12 02:01ID:???
File directory = new File("C:\\あほ\\氏ね");
directory.mkdirs();
028127702/10/12 03:34ID:???
あほです。できましたです。
本当にありがとうございます。
氏ぬ前にもっと勉強します。
0282nobodyさん02/10/12 13:39ID:???
>276

だから渡したい値は<template:put>で<template:include>時に渡して、
組み込まれたページ側で<template:get>使って受け取ったら後は好きにすれば?
0283nobodyさん02/10/12 16:09ID:6y7+FqP1
>282
そっかそーゆ意味ね。
言葉足りなかったなぁ。それでもダメっす。
パラメータとして渡したいってのは受け取ったパラメータをlogicタグなどで表示切替
に使いたいって意味だす。

ん?もしかしてbean:defineの中でvalue="<template:get ...>"みたいなことができるってこと?
無理だとは思うが一応試してみるか…。ちょっと待っててな。
0284nobodyさん02/10/12 20:35ID:8Xp20As7
eWave使ったことある人、います?

今、JSPページのコンパイルエラー直そうと思ったんだけど、コンパイル一度も通ってないJSP→Servletのソースが何処にも保存されてないのね、eWaveって(^^;
おそらく何かしらの設定があるんだろうけど、たぶんオイラの英語力が不足してるせいで(T_T)、よくわかりません。

「ここを見れ」でいいので、何か情報をお持ちの方がいらっしゃればアドバイスをお願いします(拝)
0285M02/10/14 00:27ID:a3rDJN9b
JSPで掲示板を作ったのですが、TEXTAREAフィールドに入力されたコメント
の改行コードを<BR>に変換するにはどうすれば良いのでしょうか?

<PRE>入力コメント</PRE>で表示すると改行なしの長いコメントの場合
にページが横に伸びてしまうのです。どなたかお願いします。m(_ _)m
0286nobodyさん02/10/14 00:32ID:???
J2SE 1.4以降なら正規表現使って置換でいいんじゃないでしょうか。
1.3ならjakrta oroですか?
0287nobodyさん02/10/14 01:23ID:???
ガイシュツならすみません。

動的に作成したinputタグのnameを拾う方法はあるのでしょうか?

<form method="POST">
<input name="<%= temp[i][j] %>" type=text>
</form>

で、たとえばこの入力フィールドに"10"が
入っているか確認する場合、
if(temp[i][j].equals("10"))
とはできないですよね?
(変数名は、temp[i][j]の値そのものなので)

たとえば、POSTで投げられてくる値を
Iteratorとかで順番に拾えないのでしょうか?
0288nobodyさん02/10/14 02:29ID:???
>>285
書き込みフォームに WRAP="HARD" +鯖側 <PRE> で良いんでない? まぁ
普通は 1 文字づつ評価して <BR> に書き換えるわな。どうせ < → &lt; の処理とか
やってるでしょ。

>>287
何言ってるかぜんぜんわかんねーんだけど request.getParameter(temp[i][i]).equals("10") の
事か? request.getParameterNames() か? request.getParameterValues(temp[i][i]) か?
日本語勉強してこいよ。
028928702/10/14 08:10ID:???
>>288
言いたいことがうまく伝わらなかったようですが、
どの辺を調べればよいかはよくわかりました。
ありがとうございました。
0290M02/10/14 09:39ID:a3rDJN9b
>>288
返答ありがとです。

WRAP="HARD" +鯖側 <PRE> では<PRE>が優先されるようです。
ページが横に伸びてしまいました。

< → < の処理は次のようにやっててうまく処理されます。
でも改行の処理のやりかたがわかりません。
'\n','\r\n'はchar変数じゃないのです。

/** HTMLエンコードが必要な文字 **/
static char[] htmlEncChar = {'&', '"', '<', '>'};
/** HTMLエンコードした文字列 **/
static String[] htmlEncStr = {"&", "gg"", "<", ">"};



0291nobodyさん02/10/14 17:54ID:???
>>290
入力側で <TEXTAREA ... WRAP="HARD"> でって意味なんだけど、ちゃんと伝わってる?
それから鯖側で <BR> 変換やるなら↓でいいんでないの。

static char[] htmlEncChar = {'&', '"', '<', '>', '\n', '\r'};
static String[] htmlEncStr = {"&amp;", "&quot;", "&lt;", "&gt;", "<BR>", ""};
0292M02/10/14 23:38ID:a3rDJN9b
>>291
そうですよねー。
でも何回やっても<BR>に変換されない。。。。
もう少し頑張ってみます。ありがとうございました。
0293 02/10/14 23:55ID:???
>>292
ちゃんと htmlEncChar.length とか htmlEncStr.length 分のループ
してるか? 「4 回固定回数ループ」やってるんじゃねーだろーな。
てか、説明すんのめんどくせー

public static String escapeHTML(String text){
  StringBuffer content = new StringBuffer(text.length());
  for(int i=0; i<text.length; i++){
    for(int j=0; j<htmlEncChar.length){
      if(text.charAt(i) == htmlEncChar[j]){
        buffer.append(htmlEncStr);
      } else {
        buffer.append(text.charAt(i);
      }
    }
  }
  return buffer.toString();
}
0294M02/10/16 04:04ID:icD2I6vX
http://www.atmarkit.co.jp/fjava/rensai/jsp2_03/jsp2_03_1.html
↑このソースを変えてみた。

static public String HTMLEscape(String input) {
input = substitute(input, "&", "&;");
input = substitute(input, "<", "<;");
input = substitute(input, ">", ">;");
input = substitute(input, "\"", "";");
input = substitute(input, "\n", "<BR>");//追加
input = substitute(input, "\r", "");//追加
return input;
}

でもだめぽ。(′д`⊂)
0295nobodyさん02/10/16 06:21ID:???
>>294 のサイトだが…
すげぇ! こんな無駄な再帰を使うソースは初めて見た。しかもサーバサイド
想定なのに無駄な String/StringBuffer インスタンス作りまくりと来た
もんだ。まぁ表題見れば書いた人間のレベルが分かるか。
0296nobodyさん02/10/16 13:48ID:jmKbXjPs
Java で作成しているアプリがあるんですが、みなさんのお知恵をお貸しください。
管理者が ServerSide に生成した Session の中身を全て調べて、特定のセッションに対して値を更新/削除/追加する、って事をしたいんですけど、これを実現するためにはどうすれば良いのでしょうか?

サーバ・サイドのセッション・オブジェクトを全てリストとかで取得できるんでしょうか?
0297nobodyさん02/10/16 14:37ID:???
>>296
できません。データベースでやってください。
0298x02/10/16 15:08ID:0vsiXYHc
これって本当か?

↓ ↓ ↓
http://www.dream-express-web.com/space-trust.htm
0299nobodyさん02/10/16 15:46ID:???
>>297
やっぱり無理ですか…。
ありがとうございました。
0300nobodyさん02/10/16 16:54ID:???
>>299
無理っつーか、普通そゆことsessionでやらんだろ、ということ。
>>297の指摘通りDB使いなよ
0301nobodyさん02/10/16 23:19ID:R5uZ9QcZ
毎日使ってるPC(Windows)からTelnetしてLinuxのサーバに接続してます。
そこでサーバのTomcatやResinを立ち上げると
Telnetの画面がそのままコンソールになるようで
Telnetを閉じるとともにTomcatやResinまで落ちてしまいます。
Telnetを閉じても起動したままにできませんか?
(cronの1回だけバージョンとかあればよいのだろうか・・)
■ このスレッドは過去ログ倉庫に格納されています