■■ Servlet/JSP(EJB含む) 質問スレ ■■
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/08 11:03ID:Kkr1yl67というわけでつくたよ。
0793nobodyさん
03/02/27 06:44ID:z/A5KhNZ現在、複雑なフォーム(テーブルとか、データのグループとか)を含むJSPからリクエストが来たとき、
保存処理や再表示のためにパラメータをListやMapからなるデータ構造に変換しています。
この処理はSevlet側に書くのが一般的なんでしょうか。
パラメータを全部Mapに詰めてBeanに渡してやって、そちらに書いたほうがいいんでしょうか。
教えてください。
0794nobodyさん
03/02/27 08:17ID:Trby5BNMStrutsとか使えばそんなことで悩まなくてすむし
自分でいちいちそんな処理を書かなくてもすむ。
0795被害者
03/02/27 13:25ID:???0796nobodyさん
03/02/27 16:52ID:Trby5BNM0797nobodyさん
03/02/27 16:53ID:Trby5BNM0798nobodyさん
03/02/27 21:57ID:???私の持っている本によると、JDBCドライバを利用してPostgresqlサーバに
接続する場合、以下の変更が必要。
1.postgresql.confにtcpip_socket=trueという記述を追加。
(Linuxだと /user/local/pgsql/data/postgresql.con)
2.pg_hda.confにhost all xxx.xxx.xxx.xxx 255.255.255.0 trust
xxxはクライアントのIPアドレス
(Linuxだと /user/local/pgsql/pg_hda.conf)
この2つの変更を行わないと、JDBCドライバからの接続に失敗するらしいです。
localhostだと不要。
0799nobodyさん
03/02/28 18:12ID:???普通のクラスなら toString() でできるけど。
0802nobodyさん
03/02/28 20:25ID:???toString()の挙動は実装クラスによって違う。
ArrayListなら、
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
System.out.println(c.toString()); //→[a, b, c]
0803nobodyさん
03/03/01 22:21ID:UDhEEzxcApache2 と Tomcat4 の連携ができなくて挫折しました。
みなさん、さようなら…。
0805これ本当?
03/03/01 23:47ID:RWe+LVkRスレッド削除すると、サーバ内では結構複雑で負荷のかかる処理がされるらしい。
それで連鎖的に転送量が増える。
よって、スレッドを削除すると、回線使用料がいくらかかかる。
詳しいことは知らんが、8月閉鎖騒動の時に夜勤が言ってた。
0808nobodyさん
03/03/02 00:39ID:tFPlqROdFORMを使ってます。
<FORM NAME="uploadForm1" enctype="multipart/form-data" method=post
action="/servlet/Info">
サーバ側には「com.oreilly.servlet.MultipartRequest.MultipartRequest」という
ユーティリティクラスを使って、ファイルをアップロードしています。そうすると、同じFORMに含まれる入力項目
漢字が入力されると、サーバ側で正しく取得できません(結果として、文字化けにな
ります)。
何かよい対処法はあるでしょうか?
0809nobodyさん
03/03/02 05:10ID:???http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/URLDecoder.html
0810nobodyさん
03/03/03 16:48ID:7D9MuGKhサーバ上にログ出力したいのですが何か良い方法はありますか?
0812nobodyさん
03/03/03 19:19ID:7D9MuGKhそのようなことができるのですか?
どうか教えてください。お願いします。
0814nobodyさん
03/03/04 05:22ID:CAxnoJ36リを組むことになりました。
いろいろ勉強して簡単なサンプルのようなものは作れるようになったのですが
複雑なものを作ろうした時にどうしてもうまい設計が出来ません。
こればっかりは経験だと思うのですがちょっと相談させて下さい。
例えばショッピングカートの商品一覧から『カートに入れる』というリンクで
カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの
URL欄をかえずにカートに商品を入れたいのです。
その場合、servletがカートの処理を終えた時にリダイレクトして元のURLに戻してや
るべきかと思ったのですが、そうするとセッション管理が無駄に複雑になる気がします。
次に考えたのはメインのコントローラサーブレット(仮にMainControllerとする)を
つくり、アドレスは常にそのMainControllerを示すようにします。MainControllerは
受け取ったパラメータによってさらに別のサーブレットを呼び出すようにすればURL欄は
かわりません。(?param=name のようなパラメータの文字列は気にしません)。
すいません。うまく説明できなくて。何となく後者のやり方が良いかと思うのですが、
そうするとMainController内が判別式だらけになってしまい、もっといい方法が
無いかと思い質問しました。
ちなみに環境は Apache+Tomcat4.1.18です。
0815nobodyさん
03/03/04 14:13ID:???>URL欄をかえずにカートに商品を入れたいのです。
なぜ?
======終了=====
0816nobodyさん
03/03/04 21:57ID:???初心者にしては目のつけどころがいいね。
その考えを発展させていってできたのが、Struts。
いきなりStrutsを勉強するのはあれなので、
もう少しServlet/JSPについて勉強してから、
Strutsを使用してみることをお勧めするよ。
0817814
03/03/05 01:26ID:???>なぜ?
…といわれても困るのですが、見ているページが変わらないのに
URLだけ変わっていくのは何かと不便かな? と思いまして…。
終了の文字は脳内アボーンさせてください( ´Д⊂
>>816
>初心者にしては目のつけどころがいいね。
まじすか? 嬉しいっす。
今Strutsの事をサラッと調べてみたんですけど、面白そうですね。
Actionクラスのドキュメントを読むとどことなくGUIアプリの開発に
近い感じがして(Observerパターン?)凄い気になります。
>>816さんが言うようにもう少し突き詰めて勉強してから手を出してみようかと
思います。
0818nobodyさん
03/03/05 05:27ID:???0819nobodyさん
03/03/05 07:47ID:ZZA84Xi8とちょっと勘ぐりたくなる。
それはさておき、Strutsについてはフレームワークスレでも議論されている
のでそちらも参考になる鴨。
0820nobodyさん
03/03/05 07:49ID:xBgObjO5http://homepage3.nifty.com/digikei/index2.html
0821814
03/03/05 20:43ID:???いや、まじで知らないんですけど、そんなに>>814で書いたことは
Strutsを思わせる内容なのですか?
だとすれば余計に使いたくなるんですけど…
でも(おそらく)便利なStrutsをいきなり使うよりも、今の環境で
出来ることをやった方が自分のためにもなると思うので J2EEパターン
を勉強し始めました。
今後の参考のためにフレームワークスレの方も今から読んでもようと思います。
0822nobodyさん
03/03/06 00:27ID:???これのソースと、ディレクトリ構造を教えてください。
0823nobodyさん
03/03/06 01:25ID:???0824nobodyさん
03/03/07 10:38ID:2QXXuFP/最近はよく雑誌でもStrutsを取り上げているから、参考にしてみれば?
Struts1.0.2だったら、ソースもそれほど大きくないし、
おっかけてみるのも良いかも。
Tapestryもなかなか面白いフレームワークです。
0825nobodyさん
03/03/07 13:13ID:vB7exDgnンでデータベースの接続にJDBCリソースを使用し
ています。
JDBC2.0拡張のコネクション・プーリング機能という
ものがありますが、その機能を使用しない方法は
ないでしょうか?
○OS
Official RedHatLinux 7.2 Deluxe
○WebSphere
WebSphere AE 4.0.4 ptf40230.02
○データベースエンジン
Orcle9i Enterprise Edition R 9.2.0
○JDBC
JDBC2.0
○JDBCドライバー
classes12.zip
○JDBCドライバーのインプリメンテーションクラス
oracle.jdbc.pool.OracleConnectionPoolDataSource←こちらを選択しています
oracle.jdbc.xa.client.OracleXADataSource
0826814
03/03/07 18:41ID:???そうですね、ソースの方を追ってみます。
どんなパターンが使われているのかを調べてみるのも
いい勉強になりそうですし。
それにしても Servlet/JSP を仕事でやってる(or 趣味だけどやりこんでる人)
はいろんなフレームワークや技術に精通してますよね。
凄いなぁ。
いつかは俺もがんがん質問に答えられるようになりたい…
みなさん、いろいろアドバイスありがとです。
0827nobodyさん
03/03/07 21:45ID:???リンクをクリックしたら別画面に移動するのですが、同時にそのときに
チェックされているチェックボックスの情報を取得することはできるのでしょうか
既にチェックボックスとリンクは<form>タブで囲まれていてsubmitボタンが存在します。
このような状況でリンクをクリックしてチェックボックスの情報取得してページ移動も
する方法を教えてください。お願いします。
0828nobodyさん
03/03/07 21:58ID:???使用しなければいいじゃない。
Datasouceをlookupせずに、
普通のJavaアプリと同じ方法でConnection張ればいいだけだろ。
もっともコンテナ内で動くメリットを思いっきり捨てるわけだが。
その辺は覚悟しているのか。
0830nobodyさん
03/03/08 01:19ID:???おれも815と同感で
>カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの
>URL欄をかえずにカートに商品を入れたいのです。
になぜこだわるのかが疑問。
こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
あれこれ頭をなやます理由として弱いのではないでしょうか。
Strutsに似ている云々という話があってさらに迷っているようですが
似てないから安心して(w、固定観念なしでStrutsの勉強されることをお勧めします。
きっとServlet/JSPが初めてなだけでWebアプリの作成は経験ある方なのでしょうから
すんなり理解することが出来ると思うです。
と、エラソーかつマジレスを試みてみる...。
0831814
03/03/08 05:57ID:???>こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
>あれこれ頭をなやます理由として弱いのではないでしょうか。
やっぱりそうなんですか…。どこのサイトにもこういうこと書いてないから
『もしかしてこれを気にする時点で何か間違えてるのか?』って薄々
感じてたんですよ。
もともとなんでこれを気にしたかっていうと、ウェブアプリ内にある静的なページ
(HTML)に対してforwardした時に(静的ページ内の)相対パスが使えない事に気付いて
『どうすればきれいに解決できるのかな?』って思ったのが切っ掛けなんですよ。
今思い付く解決策は『常に絶対パス』『パラメータ付きでServletにリンクしてServletが行き先を決める』『設計を改善』のどれかかなぁ?って。これ自体やっぱりどうでもいい
事なんでしょうか?
みなさんはどうしてるんでしょうか?
(あぁ、質問厨になってきた、すいません。)
0832830
03/03/08 11:36ID:???またまた役に立たない回答をしにのこのこやってきました。w
これはひとそれぞれ考え方はあるので違う意見もあるでしょうが、
絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
それはむしろすごくスマートな方法だと思うのですがどうでしょうか。
感覚的になじめない、というのはすぐ慣れるので没問題です。w
またどうしてもブラウザのアドレス欄を実際のファイルの場所を表示させたいのなら
<meta http-equiv="Refresh" ... > のHTML(JSP)にまずフォワードして、
実際に飛ばしたいパスはそのmetaタグで指定してやることで、結果的にURL欄には
本来のファイルのパスが表示されるわけですが、これはとてもスマートとはいえないですよね。
何の仕事もそうですが、何が重要なことなのか(どこに注力すべきか)を見極める事も
技術のうちなんじゃないでしょうか。
てことで、がんがってください。
0833nobodyさん
03/03/08 12:02ID:???相対パスが使えないのは環境設定のせいではない?
だったら設定変える方向も手だと思うが。
URLが変わったほうがいいのか変わらないほうがいいのかは機能にもよりそうなんだけどな。
検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
0834814
03/03/08 16:37ID:???>絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
>それはむしろすごくスマートな方法だと思うのですがどうでしょうか。
なるほど…。
Refresh使うのは激しく避けたいやりかたっすね。
>>833
>相対パスが使えないのは環境設定のせいではない?
そうなんですか?多分違うのではないかと思うんですけど。。
>検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
>今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
そうかもしれないっすね。>>832さんも言ってたけどやっぱり状況によって
何に重点を置くかを見極める技術も大事なんでしょうね。
なんだかいろんなレスもらって気持ちがすっきりしました。
小さな勘違いが積み重なって大きな勘違いになっているような気がしてきましたよ。
ウェブアプリに関してあまり人のソースを読んでないからいけないのかな?Struts
を初めいろいろソースも読んで試してみます。
奥が深いなぁServlet/Java。。。
0835山崎渉
03/03/13 17:06ID:???0836nobodyさん
03/03/13 23:29ID:???0837nobodyさん
03/03/15 02:46ID:???0838nobodyさん
03/03/15 16:27ID:???0839nobodyさん
03/03/16 04:38ID:???0840nobodyさん
03/03/18 20:59ID:rglKCMujTOMCAT_HOME\conf\server.xmlの
<RequestInterceptor
className="org.apache.tomcat.request.SimpleRealm"
debug ="0"/>を
<RequestInterceptor
className="CustomRealm"/>に書き換えて、認証を行う際にCustomRealmというクラスを使うように
設定しました。
すると、TOMCATが起動しなくなってしまったのですが、何故でしょうか。
ちなみに、CustomRealm.classはTOMCAT_HOME\classesとTOMCAT_HOMEにコピーしてあります。
0841nobodyさん
03/03/18 21:01ID:PyosuKeNhttp://hkwr.com/
http://hkwr.com/bbs
0844nobodyさん
03/03/21 19:08ID:???CATALINA_HOME/logs/以下にあるファイルになんかエラー出てない?
ぱっとみ俺も>>842さんの意見と同じこと思ったんだけど。
TOMCATのバージョンは?
0845nobodyさん
03/03/22 15:24ID:vlHFEXy6何か方法はないでしょうか?
Tomcatを使っています。
0846nobodyさん
03/03/22 15:51ID:tvVDGUGiアドレス欄に何も書かずにWEBページにアクセスする方法知ってますか?
あなたがそれを知っていれば簡単なことです。
0849nobodyさん
03/03/22 19:15ID:tvVDGUGiF5キーを押されると怖い
0851nobodyさん
03/03/22 20:41ID:tvVDGUGiだって、フレームを記述しているページがリロードされてしまうから
ページ制御が大変そうじゃん。
0852850
03/03/22 20:44ID:tvVDGUGiフレームの件はページ遷移をしっかり考えれば
なんとかなるけど、>>845のような質問してくるような奴には
そこまで頭回らないと思う。
0853nobodyさん
03/03/22 20:44ID:tvVDGUGiの名前は850ではなく851でしたすんまそん。
0854nobodyさん
03/03/22 22:27ID:/t7xrt68どうしたらよいですか?
index.jspはTomcat\webapps\index.jspにありまつ。
tomcat4.1.8 + Apache2.0.44
(Apacheの質問になるのかな…)
0855nobodyさん
03/03/22 23:06ID:tvVDGUGiApacheでDocumentRootをindex.jspにするのじゃダメ?
0856nobodyさん
03/03/22 23:19ID:LQ5sLBh+mod_jk?
0857854
03/03/22 23:36ID:???なるほど…
そこじたいをルートにすると。
Apacheと連携が意味なくなりそうですが、簡単でよさそうですね。
>856
そです。
mod_jk2
0858nobodyさん
03/03/23 00:13ID:0qX0GKp5なんで、Apacheとの連携が意味なくなるの?
0859nobodyさん
03/03/29 22:26ID:4JmL7Ui+質問ですがSingleThreadModelだとhttpのリクエストが
同時に発生したとき1つずつ順番に処理していくはずですよね。
フレームで4分割して4つとも同じServletを呼んでおり、
doGetの入り口と出口で文字列をファイルに出してみました。
すると、doGetを抜けないうちに別のリクエストのdoGetが
実行されていました。
SingleThreadModelなのにどうしてこうなるのでしょうか。
SingleThreadModelの認識が間違っていたらすいません。
0860nobodyさん
03/03/29 22:35ID:C7EFXviWhttp://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/SingleThreadModel.html
「このインタフェースでは、静的クラス変数などの共有リソースへのアクセス、
またはサーブレットの適用範囲外のクラスへのアクセスにより
生じる同期の問題を防ぐことは行いません。 」
とあるが、この辺の問題ではないのかな?
0861nobodyさん
03/03/29 22:36ID:i2vNq3FD0862nobodyさん
03/03/29 23:06ID:YkFGJIRLインスタンス変数しか使っていないのでクラスのstaticな
変数は定数を除いてありません。
SingleThreadModelで同時にdoGetが実行されなければ、それで
いいのですが。
0863nobodyさん
03/03/29 23:58ID:C7EFXviWほんじゃ、これかいな?
http://java-house.jp/ml/archive/j-h-b/051643.html
0864nobodyさん
03/03/31 21:55ID:LphoPnfaローカルホスト1へリダイレクト、"http://hoge/B"に要求が来た場合はホスト2へリダイレクトといった
処理は可能でしょうか?
コンテナにはmod_jkを利用しています。
mod_jkには「Alias /A "ホスト1/A"」と記述したのですが、上手くリダイレクトされませんでした。
0865nobodyさん
03/04/01 00:07ID:lNskJ6yJ0866nobodyさん
03/04/01 00:35ID:???分けてます?俺は最初【モデル】【コントローラ】【豆】のように役割で
分けていたんですけど、どうも良くない気がしてきて。。
みんなはどうしてるのかなぁ?って……。
0867nobodyさん
03/04/01 01:09ID:RhFG9j26あれば教えてください。TOMCAT4でお願いします。
googleしてみたけど、適当なのが見付からなかった。
英語だとすぐにみつかるのかなー
0869nobodyさん
03/04/01 01:42ID:RhFG9j26そうかな?web.xmlの記述とか、roleの設定があるはずだけど。
0870nobodyさん
03/04/01 09:24ID:???>そうかな?web.xmlの記述とか、roleの設定があるはずだけど。
それだけだよ。
あ、server.xmlも関係あるか。
http://www.sk-jp.com/java/servlet/webxml.html
↑これとserver.xml内のコメントを読めば出来ると思うよ。
サンプルじゃなくてごめん。
0871nobodyさん
03/04/01 14:13ID:???HTTP/1.0 401 Unauthorized
を返すようにすればブラウザが勝手にBASIC認証窓開かないか?
んで認証窓にID/Pass入力されて再度HTTPリクエストが来たらHTTPリクエストに
Authorization: Basic e398adncSCDfaU=
ってのがあるはずだから「e398adncSCDfaU=」の部分をBase64エンコードすれば
「ID:Pass」を取得することが出来る。
あとは取得したID/PassをファイルなりDBなりとマッチングさせれ。
↑の処理を行うクラス作っとけばサーブレットコンテナの環境に依存しなくていいんでないかい?
0872nobodyさん
03/04/01 22:16ID:???<% out.print("hello"); %>
をブラウザで見て、ソースを覗くと初めの行に改行が入ってしまいます。
改行を取り除くにはどうすればいいでしょうか...。
0873nobodyさん
03/04/01 22:40ID:uPwsrMiw<%@ page contentType="text/plain;charset=Shift_JIS"%><% out.print("hello"); %>
こう書くしかない。1行目の終わりに改行があるからブラウザにそれが出力されている。
0874nobodyさん
03/04/02 09:52ID:YSAS7m2/さんくす。参考になる。
0875bloom
03/04/02 10:01ID:WhIcMm9h0876Web&Java初心者
03/04/02 13:50ID:/kM7QiLhJdk 1.3.1
Tomcat 4.0.2
1.ユーザがダウンロードボタンをクリックしたら、
選択したデータをZipファイルにして送信し、
ユーザのPCに保存終了後、データベースに送信完了のフラグを更新する。
2.ダウンロードボタンをクリックした時に、
ファイルを作成する処理でなんらかの理由でデータを抽出できない事があるので、
処理結果をブラウザに表示する。
よろしくお願いします。
0877nobodyさん
03/04/02 14:35ID:???1番は
application/octet-streamとかDL用のリクエストヘッダをプログラムで返す
↓
ファイルオープンしクライアントと80ポートでsocketオープンする
↓
socket通信でファイルの中身を送信する
↓
ファイルとsocket通信をクローズする
ってやるんだと思う。想像だけど。
1番が実現出来れば2番は簡単なはず。catchすればいいだけのはずだから。
0878nobodyさん
03/04/02 14:45ID:nAz+h6Nc??????????
Tomcat使ってるのに何でそんなことするの?
876はWEBアプリケーション作りたいんでしょ?
>>876
>ユーザのPCに保存終了後、データベースに送信完了のフラグを更新する。
この部分が難点かも。サーバー側では保存が終了したかどうかはわからないから。
「保存が終了したらこのボタンを押す」みたいなボタンをつけて
ブラウザから終了したことを通知しないと。
HTTP通信は基本的にクライアントからのリクエスト/サーバからレスポンス
で切れちゃうからね。
0879nobodyさん
03/04/02 15:00ID:LshZPoLl0880nobodyさん
03/04/02 15:01ID:3PSDJoeOhttp://www.pink-angel.jp/betu/linkvp2/linkvp.html
0881Web&Java初心者
03/04/02 15:24ID:/kM7QiLh言葉足らずですいません。Web側だけで可能かです。
>>878さん
やはりそうですか。ありがとうございました。
>>876の2をもう少し説明しますと、
(1)ダウンロードボタンクリック
↓
(2)新しい画面が作成される
↓
(3)ファイルの保存ダイアログ
↓
(4)(2)の画面に処理結果が表示される
といったイメージです。
引き続きよろしくお願いします。
0882878
03/04/02 15:44ID:???"処理結果"っていうのがどこで行われる何の処理なのかわからないな。
基本的にHTTPではクライアントのリクエストに対して、サーバは何か
結果(画面)を返すってことは忘れないでね。
結果が返された後(画面表示後)はクライアント(ブラウザ)側で起こったことは
クライアントから通知されない限り(もう一度リクエストを送信しない限り)
サーバ側では知る由もない。
0883Web&Java初心者
03/04/02 15:59ID:/kM7QiLh処理結果とは(1)で選択したデータを全て抽出できるとは限らないので、
ダウンロードファイルに選択したデータが含まれているかどうかの一覧表です。
例えば
データ名 結果
データ1 OK
データ2 ・・・により抽出できませんでした。
データ3 OK
のようなカンジです。
0885Web&Java初心者
03/04/02 16:18ID:/kM7QiLhリダイレクトを調べてみます。
ありがとうございました!
0886nobodyさん
03/04/02 20:23ID:rddT8ONN一度のHTTP接続で
ファイルを送ると
HTTPヘッダでは
application/octet-stream
になってるはずなので、
結果をHTMLとして送るのは出来ないのでは?
同じようなシステム作ったことあるけど、
送信した(クライアントがDLした)ファイルの後ろに
HTMLドキュメントがついて保存されたよ。
0887nobodyさん
03/04/03 04:00ID:???C: ダウンロードボタン押下
S: データベースからデータを抽出してダウンロード用のファイルを生成しつつ
HTML 形式で処理経過を返してゆく (out.flush() を使用)
S: ダウンロードデータの抽出が終わったらそのファイルへ飛ぶような JavaScript
を出力し HTML の出力 (サーブレットの処理) を終わる
C: ダウンロードファイルのダウンロードに入る
S: ダウンロード結果を付け込みたかったらファイルダウンロード専用の
サーブレットをかます
しかしクライアント側での保存終了後ってのは明らかに無理だな。保存ではなく
「ファイルを開く」をしたかもしれないし、最後の数バイトでキャンセルボタン
押されたらサーバでは検出できないし。どのみちリトライ可能な手段は残して
おかないとトラブルになるぞ。
0888nobodyさん
03/04/04 06:20ID:???どうやって実装していますか?
俺の考えではセッションに検索条件を持たせて絞り込む時は検索条件を追加
することで実現するのかな?って思ってるんですけど。
なんだか自分の考えに自信が持てないというか、もっといい方法があるような
気がして…。
0889nobodyさん
03/04/04 08:10ID:nSgKy/k8言ってることがよくわかんねえ
なんでセッションなの?
■ このスレッドは過去ログ倉庫に格納されています