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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
0792nobodyさん03/02/26 22:08ID:???
>>794
登録済みのデータとはどういうことですか?
もう少し詳しくお願いします。
0793nobodyさん03/02/27 06:44ID:z/A5KhNZ
質問します。
現在、複雑なフォーム(テーブルとか、データのグループとか)を含むJSPからリクエストが来たとき、
保存処理や再表示のためにパラメータをListやMapからなるデータ構造に変換しています。
この処理はSevlet側に書くのが一般的なんでしょうか。
パラメータを全部Mapに詰めてBeanに渡してやって、そちらに書いたほうがいいんでしょうか。
教えてください。
0794nobodyさん03/02/27 08:17ID:Trby5BNM
>>793
Strutsとか使えばそんなことで悩まなくてすむし
自分でいちいちそんな処理を書かなくてもすむ。
0795被害者03/02/27 13:25ID:???
Struts マンセー野郎ってどうしてこうも無責任なこと言うかね。
0796nobodyさん03/02/27 16:52ID:Trby5BNM
他の方法も示さないで非難するだけより数千倍ましだと思うが。
0797nobodyさん03/02/27 16:53ID:Trby5BNM
お?同じIDってことは某太陽のイベント会場より書き込んでる香具師か?
0798nobodyさん03/02/27 21:57ID:???
>>755
私の持っている本によると、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:???
Collection クラスのオブジェクトの文字列表現って返せないんですか?
普通のクラスなら toString() でできるけど。
0800nobodyさん03/02/28 18:55ID:???
>>799
toStringってObjectのメソッドじゃ?
0801nobodyさん03/02/28 20:25ID:???
>>800
そうですよ。
Objectクラスはすべてのクラスの親。
オーバーライドできます。
0802nobodyさん03/02/28 20:25ID:???
java.util.Collectionはインターフェース
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:UDhEEzxc
JSP/Servlet を勉強しようと思ったのですが、
Apache2 と Tomcat4 の連携ができなくて挫折しました。
みなさん、さようなら…。
0804nobodyさん03/03/01 22:45ID:???
>>803
勉強するだけならApacheいらないと思うのだが。
0805これ本当?03/03/01 23:47ID:RWe+LVkR
2chには回線使用料がある。ようするに2chの維持費。
スレッド削除すると、サーバ内では結構複雑で負荷のかかる処理がされるらしい。
それで連鎖的に転送量が増える。
よって、スレッドを削除すると、回線使用料がいくらかかかる。
詳しいことは知らんが、8月閉鎖騒動の時に夜勤が言ってた。
0806nobodyさん03/03/02 00:01ID:???
>>805
死ね。
0807nobodyさん03/03/02 00:15ID:???
>>806
バッタリ
0808nobodyさん03/03/02 00:39ID:tFPlqROd
画像ファイルをアップロードするため、[multipart/form-data]タイプの
FORMを使ってます。
<FORM NAME="uploadForm1" enctype="multipart/form-data" method=post
action="/servlet/Info">
サーバ側には「com.oreilly.servlet.MultipartRequest.MultipartRequest」という
ユーティリティクラスを使って、ファイルをアップロードしています。そうすると、同じFORMに含まれる入力項目
漢字が入力されると、サーバ側で正しく取得できません(結果として、文字化けにな
ります)。
何かよい対処法はあるでしょうか?
0809nobodyさん03/03/02 05:10ID:???
URLDecoder.decode(String)でもつかってみては?
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/URLDecoder.html
0810nobodyさん03/03/03 16:48ID:7D9MuGKh
画面上のcheckboxをクリックするたびにクリックしたcheckboxのプロパティを
サーバ上にログ出力したいのですが何か良い方法はありますか?
0811nobodyさん03/03/03 18:19ID:???
>>819
onclickで毎回submitするしかないだろうな。
0812nobodyさん03/03/03 19:19ID:7D9MuGKh
>>811
そのようなことができるのですか?
どうか教えてください。お願いします。
0813nobodyさん03/03/03 22:19ID:???
>>812
そうなると JavaScript の仕事でしょう。なのでスレ違い。
0814nobodyさん03/03/04 05:22ID:CAxnoJ36
今までServlet/JSPには手を出したこと無いのに仕事で急にServlet/JSPにてウェブアプ
リを組むことになりました。
いろいろ勉強して簡単なサンプルのようなものは作れるようになったのですが
複雑なものを作ろうした時にどうしてもうまい設計が出来ません。
こればっかりは経験だと思うのですがちょっと相談させて下さい。

例えばショッピングカートの商品一覧から『カートに入れる』というリンクで
カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの
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:???
>814
初心者にしては目のつけどころがいいね。

その考えを発展させていってできたのが、Struts。
いきなりStrutsを勉強するのはあれなので、
もう少しServlet/JSPについて勉強してから、
Strutsを使用してみることをお勧めするよ。
081781403/03/05 01:26ID:???
>>815
>なぜ?
…といわれても困るのですが、見ているページが変わらないのに
URLだけ変わっていくのは何かと不便かな? と思いまして…。

終了の文字は脳内アボーンさせてください( ´Д⊂

>>816
>初心者にしては目のつけどころがいいね。
まじすか? 嬉しいっす。
今Strutsの事をサラッと調べてみたんですけど、面白そうですね。
Actionクラスのドキュメントを読むとどことなくGUIアプリの開発に
近い感じがして(Observerパターン?)凄い気になります。

>>816さんが言うようにもう少し突き詰めて勉強してから手を出してみようかと
思います。
0818nobodyさん03/03/05 05:27ID:???
どうしてこうも Struts マンセー 野郎は (略
0819nobodyさん03/03/05 07:47ID:ZZA84Xi8
確かに>>814さんのカキコを見てると「最初からツトラッスのこと知ってて書いてるんじゃ?」
とちょっと勘ぐりたくなる。

それはさておき、Strutsについてはフレームワークスレでも議論されている
のでそちらも参考になる鴨。
0820nobodyさん03/03/05 07:49ID:xBgObjO5
亀頭が入っていく瞬間が好きです。
http://homepage3.nifty.com/digikei/index2.html
082181403/03/05 20:43ID:???
>>819
いや、まじで知らないんですけど、そんなに>>814で書いたことは
Strutsを思わせる内容なのですか?
だとすれば余計に使いたくなるんですけど…

でも(おそらく)便利なStrutsをいきなり使うよりも、今の環境で
出来ることをやった方が自分のためにもなると思うので J2EEパターン
を勉強し始めました。

今後の参考のためにフレームワークスレの方も今から読んでもようと思います。
0822nobodyさん03/03/06 00:27ID:???
http://www.keisan.nta.go.jp/
これのソースと、ディレクトリ構造を教えてください。
0823nobodyさん03/03/06 01:25ID:???
これまた馬鹿そうな質問が。
0824nobodyさん03/03/07 10:38ID:2QXXuFP/
>821
最近はよく雑誌でもStrutsを取り上げているから、参考にしてみれば?
Struts1.0.2だったら、ソースもそれほど大きくないし、
おっかけてみるのも良いかも。

Tapestryもなかなか面白いフレームワークです。
0825nobodyさん03/03/07 13:13ID:vB7exDgn
WebSphere上のエンタープライズ・アプリケーショ
ンでデータベースの接続に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
082681403/03/07 18:41ID:???
>>824
そうですね、ソースの方を追ってみます。
どんなパターンが使われているのかを調べてみるのも
いい勉強になりそうですし。

それにしても Servlet/JSP を仕事でやってる(or 趣味だけどやりこんでる人)
はいろんなフレームワークや技術に精通してますよね。
凄いなぁ。
いつかは俺もがんがん質問に答えられるようになりたい…

みなさん、いろいろアドバイスありがとです。
0827nobodyさん03/03/07 21:45ID:???
変な質問なんですが、画面所にチェックボックスとリンクが複数あって
リンクをクリックしたら別画面に移動するのですが、同時にそのときに
チェックされているチェックボックスの情報を取得することはできるのでしょうか
既にチェックボックスとリンクは<form>タブで囲まれていてsubmitボタンが存在します。

このような状況でリンクをクリックしてチェックボックスの情報取得してページ移動も
する方法を教えてください。お願いします。
0828nobodyさん03/03/07 21:58ID:???
>825

使用しなければいいじゃない。

Datasouceをlookupせずに、
普通のJavaアプリと同じ方法でConnection張ればいいだけだろ。
もっともコンテナ内で動くメリットを思いっきり捨てるわけだが。
その辺は覚悟しているのか。
0829nobodyさん03/03/08 01:07ID:???
>>827
スレ違い
0830nobodyさん03/03/08 01:19ID:???
>>814

おれも815と同感で

>カートに商品を入れる処理を行うとします。この場合俺がやりたいのはブラウザの
>URL欄をかえずにカートに商品を入れたいのです。

になぜこだわるのかが疑問。
こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
あれこれ頭をなやます理由として弱いのではないでしょうか。

Strutsに似ている云々という話があってさらに迷っているようですが
似てないから安心して(w、固定観念なしでStrutsの勉強されることをお勧めします。
きっとServlet/JSPが初めてなだけでWebアプリの作成は経験ある方なのでしょうから
すんなり理解することが出来ると思うです。

と、エラソーかつマジレスを試みてみる...。
083181403/03/08 05:57ID:???
>>830
>こういったらアレですけど、そんなもの機能としてはどうでもいい部分の話だし
>あれこれ頭をなやます理由として弱いのではないでしょうか。
やっぱりそうなんですか…。どこのサイトにもこういうこと書いてないから
『もしかしてこれを気にする時点で何か間違えてるのか?』って薄々
感じてたんですよ。

もともとなんでこれを気にしたかっていうと、ウェブアプリ内にある静的なページ
(HTML)に対してforwardした時に(静的ページ内の)相対パスが使えない事に気付いて
『どうすればきれいに解決できるのかな?』って思ったのが切っ掛けなんですよ。

今思い付く解決策は『常に絶対パス』『パラメータ付きでServletにリンクしてServletが行き先を決める』『設計を改善』のどれかかなぁ?って。これ自体やっぱりどうでもいい
事なんでしょうか?

みなさんはどうしてるんでしょうか?
(あぁ、質問厨になってきた、すいません。)
083283003/03/08 11:36ID:???
>>831

またまた役に立たない回答をしにのこのこやってきました。w

これはひとそれぞれ考え方はあるので違う意見もあるでしょうが、
絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
それはむしろすごくスマートな方法だと思うのですがどうでしょうか。

感覚的になじめない、というのはすぐ慣れるので没問題です。w

またどうしてもブラウザのアドレス欄を実際のファイルの場所を表示させたいのなら
<meta http-equiv="Refresh" ... > のHTML(JSP)にまずフォワードして、
実際に飛ばしたいパスはそのmetaタグで指定してやることで、結果的にURL欄には
本来のファイルのパスが表示されるわけですが、これはとてもスマートとはいえないですよね。

何の仕事もそうですが、何が重要なことなのか(どこに注力すべきか)を見極める事も
技術のうちなんじゃないでしょうか。

てことで、がんがってください。

0833nobodyさん03/03/08 12:02ID:???
>>831
相対パスが使えないのは環境設定のせいではない?
だったら設定変える方向も手だと思うが。

URLが変わったほうがいいのか変わらないほうがいいのかは機能にもよりそうなんだけどな。
検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
083481403/03/08 16:37ID:???
>>832
>絶対パスで表記することで実際の置き場所に依存せずちゃんと機能する、と考えると、
>それはむしろすごくスマートな方法だと思うのですがどうでしょうか。
なるほど…。
Refresh使うのは激しく避けたいやりかたっすね。

>>833
>相対パスが使えないのは環境設定のせいではない?
そうなんですか?多分違うのではないかと思うんですけど。。

>検索結果表示するばあい(カタログから検索したあととか)は変わったほうがいいし
>今言ってるみたいなカートに入れちゃうようなケースは変わらない方がいいし。
そうかもしれないっすね。>>832さんも言ってたけどやっぱり状況によって
何に重点を置くかを見極める技術も大事なんでしょうね。

なんだかいろんなレスもらって気持ちがすっきりしました。
小さな勘違いが積み重なって大きな勘違いになっているような気がしてきましたよ。
ウェブアプリに関してあまり人のソースを読んでないからいけないのかな?Struts
を初めいろいろソースも読んで試してみます。
奥が深いなぁServlet/Java。。。
0835山崎渉03/03/13 17:06ID:???
(^^)
0836nobodyさん03/03/13 23:29ID:???
age
0837nobodyさん03/03/15 02:46ID:???
ホウチ(・A・)イクナイ!
0838nobodyさん03/03/15 16:27ID:???
じゃあおまいが脱げ
0839nobodyさん03/03/16 04:38ID:???
じゃがいもが脱げ
0840nobodyさん03/03/18 20:59ID:rglKCMuj
本を読みながらJSPプログラミングをしていて質問です。(ム板から誘導されました。向こうの住人さんごめんなさい。)
TOMCAT_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:PyosuKeN
オロオロ(゚ロ゚;))((;゚ロ゚)オロオロ
http://hkwr.com/
http://hkwr.com/bbs
0842nobodyさん03/03/18 22:48ID:???
>>840
packageとかあってる?
0843nobodyさん03/03/20 15:04ID:???
>>837 ワロタ
0844nobodyさん03/03/21 19:08ID:???
>>840
CATALINA_HOME/logs/以下にあるファイルになんかエラー出てない?
ぱっとみ俺も>>842さんの意見と同じこと思ったんだけど。
TOMCATのバージョンは?
0845nobodyさん03/03/22 15:24ID:vlHFEXy6
JSPやサーブレットのURLをアドレス欄に見せないようにしたいのですが
何か方法はないでしょうか?
Tomcatを使っています。
0846nobodyさん03/03/22 15:51ID:tvVDGUGi
>>845
アドレス欄に何も書かずにWEBページにアクセスする方法知ってますか?
あなたがそれを知っていれば簡単なことです。
0847nobodyさん03/03/22 18:34ID:???
>>845
そういうブラウザ作ってシェア90%にしてください。
0848nobodyさん03/03/22 18:35ID:???
>>845
フレームにすれば一応見えない。
0849nobodyさん03/03/22 19:15ID:tvVDGUGi
>>848
F5キーを押されると怖い
0850nobodyさん03/03/22 20:19ID:???
>>849
なんで?
0851nobodyさん03/03/22 20:41ID:tvVDGUGi
>>850
だって、フレームを記述しているページがリロードされてしまうから
ページ制御が大変そうじゃん。
085285003/03/22 20:44ID:tvVDGUGi
すれ違いの流れになってきた気がする。

フレームの件はページ遷移をしっかり考えれば
なんとかなるけど、>>845のような質問してくるような奴には
そこまで頭回らないと思う。
0853nobodyさん03/03/22 20:44ID:tvVDGUGi
>>852
の名前は850ではなく851でしたすんまそん。
0854nobodyさん03/03/22 22:27ID:/t7xrt68
http://www.hoge.com/にあくせすしたら、index.jspにアクセスするようにしたいのです。
どうしたらよいですか?

index.jspはTomcat\webapps\index.jspにありまつ。

tomcat4.1.8 + Apache2.0.44

(Apacheの質問になるのかな…)
0855nobodyさん03/03/22 23:06ID:tvVDGUGi
>>854
ApacheでDocumentRootをindex.jspにするのじゃダメ?
0856nobodyさん03/03/22 23:19ID:LQ5sLBh+
>>854
mod_jk?
085785403/03/22 23:36ID:???
>855
なるほど…
そこじたいをルートにすると。
Apacheと連携が意味なくなりそうですが、簡単でよさそうですね。

>856
そです。
mod_jk2
0858nobodyさん03/03/23 00:13ID:0qX0GKp5
>>857
なんで、Apacheとの連携が意味なくなるの?
0859nobodyさん03/03/29 22:26ID:4JmL7Ui+
Tomcat4+Java1.4でServletの開発をしています。
質問ですがSingleThreadModelだとhttpのリクエストが
同時に発生したとき1つずつ順番に処理していくはずですよね。

フレームで4分割して4つとも同じServletを呼んでおり、
doGetの入り口と出口で文字列をファイルに出してみました。
すると、doGetを抜けないうちに別のリクエストのdoGetが
実行されていました。

SingleThreadModelなのにどうしてこうなるのでしょうか。
SingleThreadModelの認識が間違っていたらすいません。
0860nobodyさん03/03/29 22:35ID:C7EFXviW
>>859

http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/SingleThreadModel.html
「このインタフェースでは、静的クラス変数などの共有リソースへのアクセス、
またはサーブレットの適用範囲外のクラスへのアクセスにより
生じる同期の問題を防ぐことは行いません。 」

とあるが、この辺の問題ではないのかな?
0861nobodyさん03/03/29 22:36ID:i2vNq3FD
http://www.agemasukudasai.com/bloom/
0862nobodyさん03/03/29 23:06ID:YkFGJIRL
>860
インスタンス変数しか使っていないのでクラスのstaticな
変数は定数を除いてありません。
SingleThreadModelで同時にdoGetが実行されなければ、それで
いいのですが。
0863nobodyさん03/03/29 23:58ID:C7EFXviW
>>862
ほんじゃ、これかいな?
http://java-house.jp/ml/archive/j-h-b/051643.html
0864nobodyさん03/03/31 21:55ID:LphoPnfa
Apache2とTomcat4を連携して使ってるのですが、"http://hoge/A"に要求が来た時は
ローカルホスト1へリダイレクト、"http://hoge/B"に要求が来た場合はホスト2へリダイレクトといった
処理は可能でしょうか?
コンテナにはmod_jkを利用しています。
mod_jkには「Alias /A "ホスト1/A"」と記述したのですが、上手くリダイレクトされませんでした。
0865nobodyさん03/04/01 00:07ID:lNskJ6yJ
>>862どこに行った!
0866nobodyさん03/04/01 00:35ID:???
地味な話だけどServlet/JSPでの開発時にパッケージ名はどういう風に
分けてます?俺は最初【モデル】【コントローラ】【豆】のように役割で
分けていたんですけど、どうも良くない気がしてきて。。
みんなはどうしてるのかなぁ?って……。
0867nobodyさん03/04/01 01:09ID:RhFG9j26
ServletでBASIC認証とFORM認証を行うサンプルプログラムが
あれば教えてください。TOMCAT4でお願いします。
googleしてみたけど、適当なのが見付からなかった。
英語だとすぐにみつかるのかなー
0868nobodyさん03/04/01 01:13ID:???
>>867
BASIC認証の方はBASIC認証の仕組みがわかっていれば簡単に作れると思うのだが。
0869nobodyさん03/04/01 01:42ID:RhFG9j26
>>868
そうかな?web.xmlの記述とか、roleの設定があるはずだけど。
0870nobodyさん03/04/01 09:24ID:???
>>869
>そうかな?web.xmlの記述とか、roleの設定があるはずだけど。
それだけだよ。
あ、server.xmlも関係あるか。
http://www.sk-jp.com/java/servlet/webxml.html
↑これとserver.xml内のコメントを読めば出来ると思うよ。

サンプルじゃなくてごめん。
0871nobodyさん03/04/01 14:13ID:???
BASIC認証ならHTTPリクエストを受けたらHTTPレスポンスで
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:???
<%@ page contentType="text/plain;charset=Shift_JIS"%>
<% out.print("hello"); %>

をブラウザで見て、ソースを覗くと初めの行に改行が入ってしまいます。
改行を取り除くにはどうすればいいでしょうか...。
0873nobodyさん03/04/01 22:40ID:uPwsrMiw
>>872
<%@ page contentType="text/plain;charset=Shift_JIS"%><% out.print("hello"); %>
こう書くしかない。1行目の終わりに改行があるからブラウザにそれが出力されている。
0874nobodyさん03/04/02 09:52ID:YSAS7m2/
>>870
さんくす。参考になる。
0875bloom03/04/02 10:01ID:WhIcMm9h
http://www.agemasukudasai.com/bloom/
0876Web&Java初心者03/04/02 13:50ID:/kM7QiLh
こんな処理が可能なのかヒントだけでもお教え下さい。
Jdk 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
>>877
??????????
Tomcat使ってるのに何でそんなことするの?
876はWEBアプリケーション作りたいんでしょ?

>>876
>ユーザのPCに保存終了後、データベースに送信完了のフラグを更新する。
この部分が難点かも。サーバー側では保存が終了したかどうかはわからないから。
「保存が終了したらこのボタンを押す」みたいなボタンをつけて
ブラウザから終了したことを通知しないと。
HTTP通信は基本的にクライアントからのリクエスト/サーバからレスポンス
で切れちゃうからね。
0879nobodyさん03/04/02 15:00ID:LshZPoLl
http://esoterikdreams.hp.infoseek.co.jp/
0880nobodyさん03/04/02 15:01ID:3PSDJoeO
★賞金が当たる★彼女が出来る★スッゲー気持ちいい★
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0881Web&Java初心者03/04/02 15:24ID:/kM7QiLh
>>877さん
言葉足らずですいません。Web側だけで可能かです。

>>878さん
やはりそうですか。ありがとうございました。


>>876の2をもう少し説明しますと、

(1)ダウンロードボタンクリック

(2)新しい画面が作成される

(3)ファイルの保存ダイアログ

(4)(2)の画面に処理結果が表示される

といったイメージです。

引き続きよろしくお願いします。
088287803/04/02 15:44ID:???
>>881
"処理結果"っていうのがどこで行われる何の処理なのかわからないな。
基本的にHTTPではクライアントのリクエストに対して、サーバは何か
結果(画面)を返すってことは忘れないでね。
結果が返された後(画面表示後)はクライアント(ブラウザ)側で起こったことは
クライアントから通知されない限り(もう一度リクエストを送信しない限り)
サーバ側では知る由もない。
0883Web&Java初心者03/04/02 15:59ID:/kM7QiLh
>>882さん
処理結果とは(1)で選択したデータを全て抽出できるとは限らないので、
ダウンロードファイルに選択したデータが含まれているかどうかの一覧表です。
例えば
データ名 結果
データ1 OK
データ2 ・・・により抽出できませんでした。
データ3 OK
のようなカンジです。
088488203/04/02 16:15ID:???
>>883
可能です。
処理結果表示後に目的のファイルのURLにリダイレクトするようにすればいい。
0885Web&Java初心者03/04/02 16:18ID:/kM7QiLh
>882さん
リダイレクトを調べてみます。
ありがとうございました!
0886nobodyさん03/04/02 20:23ID:rddT8ONN
>>884
一度のHTTP接続で
ファイルを送ると
HTTPヘッダでは
application/octet-stream
になってるはずなので、
結果をHTMLとして送るのは出来ないのでは?

同じようなシステム作ったことあるけど、
送信した(クライアントがDLした)ファイルの後ろに
HTMLドキュメントがついて保存されたよ。
0887nobodyさん03/04/03 04:00ID:???
リダイレクトじゃなくて JavaScript だろが。

C: ダウンロードボタン押下
S: データベースからデータを抽出してダウンロード用のファイルを生成しつつ
  HTML 形式で処理経過を返してゆく (out.flush() を使用)
S: ダウンロードデータの抽出が終わったらそのファイルへ飛ぶような JavaScript
  を出力し HTML の出力 (サーブレットの処理) を終わる
C: ダウンロードファイルのダウンロードに入る
S: ダウンロード結果を付け込みたかったらファイルダウンロード専用の
  サーブレットをかます

しかしクライアント側での保存終了後ってのは明らかに無理だな。保存ではなく
「ファイルを開く」をしたかもしれないし、最後の数バイトでキャンセルボタン
押されたらサーバでは検出できないし。どのみちリトライ可能な手段は残して
おかないとトラブルになるぞ。
0888nobodyさん03/04/04 06:20ID:???
質問なんですけど検索システムでよくある『絞り込み検索』ってみなさん
どうやって実装していますか?

俺の考えではセッションに検索条件を持たせて絞り込む時は検索条件を追加
することで実現するのかな?って思ってるんですけど。
なんだか自分の考えに自信が持てないというか、もっといい方法があるような
気がして…。
0889nobodyさん03/04/04 08:10ID:nSgKy/k8
>>888
言ってることがよくわかんねえ
なんでセッションなの?
0890nobodyさん03/04/04 13:40ID:???
>>888
hiddenに持たせれば済む話。
0891nobodyさん03/04/04 23:22ID:???
>>888
前の検索条件と AND で繋げれば良い。セッションに持っても HIDDEN で
持たせても Cookie に持たせても、好きなようにやれ。
0892nobodyさん03/04/05 08:33ID:LO75gp9Z
Javaのセッション管理について質問します
ResponseのendodeURLって結局セッションIDをhiddenで持たせるのと何がちがうんでしょうか?
宜しくお願いします。
■ このスレッドは過去ログ倉庫に格納されています