トップページ⇒php
992コメント372KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/06/16 05:30ID:XUmu9/tY
質問する前に最低でもGoogleで検索するように

前スレ
■■ Servlet/JSP(EJB含む) 質問スレ Part2 ■■
http://pc5.2ch.net/test/read.cgi/php/1052879533/l50
過去スレ
■■ Servlet/JSP(EJB含む) 質問スレ ■■
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50

関連スレ
【初心者】Java質問・相談スレ47【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1086716004/l50
JSP/Servletで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1063121571/l50
◆JSP◆
http://pc5.2ch.net/test/read.cgi/php/984840356/l50

関連は>>2-10
0784nobodyさん05/03/14 21:42:20ID:???
*.tagファイルってなに
0785nobodyさん05/03/14 22:28:03ID:???
>>783
jstlとか、って言ってるし、taglibディレクティブの事でしょ?
だったら>>782のリンク先で出来るって書いてあるじゃん。
pageディレクティブと同じJSPに書いて<include-prelude>で指定すりゃいんだろ。
0786nobodyさん05/03/15 01:36:53ID:???
include-preludeはjsp-configの中の要素なので
.jspに対するインクルードしかできないのでは。
試してないから知らんけど。
0787nobodyさん05/03/15 23:29:08ID:???
>>786
え?だから<@taglib>を集めたJSPをinclude-preludeでインクルードすればいいって話じゃないの?
リンク先でinclude-preludeの解説でインクルードしているJSPがそんな感じになってるし、
>>779も >定型の宣言(jstlとか)って言ってるから、>>782が言いたかったのはそーゆーことだと思ってたけど・・・。

もしかして*.tagファイルっつーのがあってそのファイル自体をまとめてインクルードしたいって事なの?
0788nobodyさん05/03/16 01:05:27ID:???
だから>>782は、
「汎用的に用いたい@taglibなどをまとめて書いた.jsp」を
「アプリ内の*.jspにインクルードする方法」。

質問は、同じようなものを*.jspじゃなくて「*.tagにインクルードする方法」。
include-preludeはjsp-configの要素であるからして、
jspファイルに対する設定なのではないかと。
*.tagに対する設定として使えるのかどうか。俺は知らん。
0789nobodyさん05/03/16 01:21:52ID:???
だから*.tagって何?
0790nobodyさん05/03/16 02:28:42ID:???
://programnet.hp.infoseek.co.jp/jsp&servlet/tagfile.html
0791nobodyさん05/03/16 14:00:32ID:???
Servlet を書くために、Tomcat/4.1.31 のバイナリディストリビューションをダウンロードしました。
正確には、ダウンロードしたファイルは、 jakarta-tomcat-4.1.31.zip です。
この中に入っている、servlet.jar の、ソースはどこで手に入りますか?

jakarta-tomcat-4.1.31-src.zip のほうもダウンロードしてみたのですが、
中に、ServletAPI のソースが見当たりません。

googleして、このページを見つけました。
http://muimi.com/j/eclipse/struts03.html

このページに書いてある、「ServletAPIソースアタッチ」というところの
説明にあるURL
http://cvs.apache.org/builds/jakarta-servletapi-4/nightly/src/
にアクセスしたのですが、空っぽのディレクトリリストがあらわれます。

やりたいことは、Servlet 2.3 API のソースを手に入れて、
Eclipse で servlet.jar のソースとしてアタッチすることです。
079279105/03/16 19:27:59ID:PDVekXVe
あげさせてください。
お願いします。
0793nobodyさん05/03/16 22:00:05ID:???
>jakarta-tomcat-4.1.31-src.zip のほうもダウンロードしてみたのですが、
>中に、ServletAPI のソースが見当たりません。
お前が目久良なだけ
079479105/03/16 23:22:45ID:PDVekXVe
jakarta-tomcat-4.1.31-src.zip を展開したディレクトリツリーに対して、
HttpServlet.java というファイル名で検索をかけたのですが、
やはり見当たりません。

探し方がまずいのでしょうか。
0795nobodyさん05/03/17 00:08:21ID:???
>>788
*.tagなんてあったんだね。
無知でしたごめんなさいorz
0796nobodyさん05/03/17 21:39:01ID:???
>>791
ttp://cvs.apache.org/viewcvs.cgi/jakarta-servletapi-4/src/share/javax/servlet/
0797nobodyさん05/03/18 00:08:46ID:???
>>796
ありがとうございます。助かりました。
0798nobodyさん2005/03/22(火) 00:03:02ID:???
>>781
すんません、もう少し説明をよろしく。
0799nobodyさん2005/03/27(日) 00:14:19ID:09CLh+Ql
lombozでサーブレットのソースを変更しても何にも反映されません

同じ症状の人いる?
0800nobodyさん2005/03/27(日) 00:31:25ID:???
マルチには答えません
0801nobodyさん2005/03/27(日) 00:42:36ID:k/c/cYW0
このソースで、sleep 中にブラウザのストップボタンを押すと、doPost()が2回呼ばれるのですが、
なぜだか分かりますか?
Apache+JK2+Tomcatだとこの現象が発生し、Tomcat単体だと発生しません。

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

System.out.println("doPost <<Start>>");

try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}

PrintWriter pw = response.getWriter();
pw.println("1");
pw.flush();
pw.println("1");

pw.close();

System.out.println("doPost <<End>>");

}
0802nobodyさん2005/03/27(日) 01:46:30ID:k/c/cYW0
>>801
IEだと2回走るのですが、ネスケだと1回です。
IEはストップボタンを押したら変な信号送ってるんですか?
0803nobodyさん2005/03/27(日) 20:25:49ID:???
>>801
この辺見て会席しましょう
http://www.atmarkit.co.jp/fjava/javatips/113jakarta020.html
0804nobodyさん2005/03/27(日) 23:10:16ID:k/c/cYW0
>>803
情報ありがとうございます。
やってみましたが、これを通すと、IEでも1回しか走らなくなりました。
残念ながら、違いを確認することができませんでした。
別のモニタリングツールってありませんか?
0805nobodyさん2005/03/28(月) 10:18:02ID:???
>>804
俺は「Achilles」かな。@ITに記事があったと思う。
ttp://packetstormsecurity.nl/

0806nobodyさん2005/03/28(月) 10:52:08ID:???
ServletでHttpリクエストによるファイルアップロードをやりたいんですが、
(クライアントのWebブラウザ→サーバ)
クライアントからアップロードする際の帯域制限って、Servletのレベルで
可能なんでしょうか?httpdサーバはapacheでつ。
(素直にmod_bandwidth使うのがデフォでつか?)
08078062005/03/28(月) 15:42:28ID:???
commonsのfileuploadを改造すればできるか?と
思ったけど、そもそもapacheのレベルでレスポンスキューを
全部読み込んだ状態でfileuploadがparseかけてるから、
どうあがいても無理ぽ・・・という結論でよろしいでしょうか?
0808nobodyさん2005/03/28(月) 17:09:44ID:???
想像だけど、あちこちで細かくバッファリングはしてるだろうけど、
いったん全部読むなんてことはしてないと思う。
単純なPOSTデータをServletでちょっとずつ読んでみるとかで
試してみては?
0809nobodyさん2005/03/28(月) 17:49:31ID:???
>>808
(>Д<)ゝ”ラジャー!!試してみます。
下記リンク先を参考にUPLOAD用フォームとサーブレットを用意して、
Tomcat5.5上で動かしてみます。
whileループ内、ServletInputStreamからバッファーサイズ分read後、
sleepを入れたら帯域制御することになるんかいな?というのが
現時点での焦点だす。

ttp://www.t3.rim.or.jp/~yoko-k-h/java/servlet/programming/howtoupload.html
08108062005/03/28(月) 18:40:00ID:???
動かしてみますたが、sleepでウエイト入れた分、
確かにダウンロード時間は長くなって一見帯域制限やってるっぽいんですが、
本当にそうなのか確信が持てません。 _| ̄|○
08118062005/03/28(月) 21:08:02ID:???
>>808
御助言ありがとうございます。
ググっていろいろ調べてみましたが、
帯域制御をServletレベルで行うつーのはナシみたいっす。
普通にApacheのモジュールで行うのが無難っぽいですね。
もとよりServletでトラフィック制御を行わなければいけない理由は・・・え?ある?
なんですってぇーーー?!
ぐはぁ、無理だ無理だよママン _| ̄|○
つーわけであと2日で私は失踪予定でつ;
0812nobodyさん2005/03/28(月) 21:50:13ID:???
その口調のせいで答える意欲がなくなった人間がここにいる
08138062005/03/28(月) 23:50:06ID:???
>>812
なんともかんとも、すみません。
おやすみなさいませ。
先方には帯域制御機能付のルータとスイッチ買えと言っておきます。
0814nobodyさん2005/03/29(火) 01:49:04ID:vUOi85dz
WEBアプリを開発しているものです。
文字化けについて質問します。

Tomcatを3.3.1aから4.1.31にバージョンアップしたのですが、"〜"文字を画面表示する際にが"!)"と化けてしまいます。
Tomcatのserver.xml,web.xmlの設定はインストール時デフォルトにアプリ用のコンテキストを追加しただけで
特に文字コード関連の設定は行っていません。問題なく表示されていたものが、バージョンアップにより文字化け
するようになる原因、またアドバイス等ございましたら、よろしくお願いします。

その他ミドルウェアも以下のように変更しています。

環境
RedHatLinux7.2
Tomcat3.3.1a→Tomcat4.1.31
Apache1.3.27→Apache1.3.31
jdk1.4.1_07→j2sdk1.4.2.07
0815nobodyさん2005/03/29(火) 02:41:41ID:???
> 特に文字コード関連の設定は行っていません

ありえない。特にJavaでWeb系の開発するなら、文字コードについて
きっちり勉強してからだ。ネット上に情報はあり余るほどある。
書いてないところを見ると、何の文字コードで開発しているかも解って
いないんだろ?
0816nobodyさん2005/03/29(火) 10:17:13ID:???
バージョンアップする際にに変更してないってことならそれほど問題ないような。
エンコードをどういう風に指定しているのか晒してみ>814
ていうかtomcat4でどういう風に指定するべきか調べてきたほうが早いか。
0817nobodyさん2005/03/29(火) 12:29:33ID:???
>>814
Shift_JIS と Windows-31J でぐぐってみそ。
0818nobodyさん2005/03/30(水) 23:48:12ID:EireGDek
>817
〜が化けているのではなく、
データベースはoracle9.2.0(Shift_JIS)で、DBに格納されている"〜£¬"をjava.sql.ResultSetのgetStringで取得時に、
"〜!)!)"となります。JDBCドライバは、JDK1.4用のojdbc14.jar,nls_charset12.jarを使用。
0819nobodyさん2005/03/31(木) 01:11:35ID:???
>>818
だからエンコードの設定間違ってる/やってないんだろ?

常道パターンだと…
・ソースやJSPはShift_JIS(CP932)で書いてcharsetはWindows-31J
・web.xmlのjavaEncodingにWindows-31J指定
・あとはServletのフィルタでWindows-31Jに変換

文字コードをダンプするなりして、何が行われているのか確認すればいいのに。
0820nobodyさん2005/03/31(木) 10:13:07ID:???
>818
ボラクル良く分からんが、DBから取り出した時点で化けてるなら、
それはShift_JIS使ってるからじゃない?
ms932(Windows-31J)やUTF-8使ってみ。
ていうかTomcatのバージョンだけ変わったって話だったようだが?
0821nobodyさん2005/03/31(木) 15:31:02ID:???
Oracleから取得したデータを出力する時点でも変換がかかるから
化けてるかどうかは視認ではなくダンプデータが基本。
0822801皇紀2665/04/01(金) 23:12:54ID:sDyCtp7e
どうやらJK2が悪いようです。WindowsでもLinuxでも起こる問題なので、
皆さんどうやって回避してるのでしょうか?
Apache+JK2+Tomcatって一般的な構成だと思ってたのになあ。
結局、JK2はやめて、JKにします。
0823nobodyさん2005/04/05(火) 18:10:06ID:???
みんなNetBeansとEclipse、どっち使ってますか?
0824nobodyさん2005/04/05(火) 21:44:03ID:???
Apache でSSL使うとき、1つのIPで複数ドメインって定義できないのでしょうか?
0825nobodyさん2005/04/05(火) 22:04:53ID:???
NetBeans。
0826nobodyさん2005/04/06(水) 00:39:32ID:oNySr3Gj
appletの質問はこのスレでいいですか?

いまネットスケープ対応の署名アプレットを下のサイトを参考に作成しています。
ttp://hata.cc/docs/SignedObj/index.html

SignToolを使って署名アプレットを作るところまではできたのですが、
配布する段階になって、アプレットをブラウザにダウンロードするタイミングで、
「java.lang.SecurityException:cannot verify signature block file META-INF/ZIGBERT」
という例外が発生します。

署名時に生成されたx509.cacertはブラウザにインポートしており、なぜこの例外が発生するのか皆目見当が付きません。
どなたか回避方法を知りませんでしょうか。
0827nobodyさん2005/04/06(水) 00:58:00ID:???
アプレットは違いそうだな。マ板の方がよくね?
0828nobodyさん2005/04/06(水) 06:57:35ID:???
ム板だった。
08298262005/04/06(水) 08:06:03ID:???
>>828
レスありがとうございます。
はじめにム板のほうを見てきたのですが、
該当するようなスレッドが見つけられませんでした、、、

ム板に限らず、appletについて取り上げているスレをご存じでしたら、
誘導して頂ければ幸いです。
0830nobodyさん2005/04/06(水) 21:52:13ID:???
質問させてください。
ttp://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html
ttp://x68000.q-e-d.net/~68user/net/java-http-url-connection-2.html
この辺を参考に基本認証がかかってるサイトを見れるProxyもどきサーブレットを作成しました。
URLとユーザID、パスワードを渡すと、AuthenticatorとHttpURLConnectionを作ってURLにアクセスし、
結果をそのままresponseに返す仕様です。
ところが、1度目は正しく動作するのですが2度目以降のアクセスには、1度目に使用した
ユーザIDとパスワードで認証をかけにいっています。
デバッグしてみると、AuthenticatorのgetPasswordAuthenticationが最初の1回しか呼ばれてません。

考えるに、getPasswordAuthenticationで返したPasswordAuthenticationを内部で抱え持ってる
感じがします。
毎回、常にユーザID、パスワードを送るにはどうしたらよいでしょうか。
08318302005/04/06(水) 21:55:01ID:???
あ、ちなみに、自分で、
Authorization: BASIC hogehoge
を作ってヘッダーに挿入したら、tomcat側がexceptionを吐きました。orz
0832nobodyさん2005/04/15(金) 01:15:27ID:???
初心者加減が露呈しますがどうかご教授ください。
先日「はじめてのJSP&サーブレットプログラミング」を購入しました↓
http://www.amazon.co.jp/exec/obidos/ASIN/4798003123/250-8270605-2087416
この書籍にそって勉強してるのですが、この本の流れは同一の端末にTomcat MySQL Eclipse
を導入して開発するということになっています。でも実際にやりたいことは、開発はWindows端末、
WebサーバはLinuxで実現したいと思っています。
【質問】この開発環境の構築に参考になる書籍、ページ、キーワードでもいいのでヒントをください。
現在LinuxサーバはApache+Tomcat連携にDBはMySQLが動いています。動きますが放置してます(JDBCの接続テストだけしました)
Windows端末の方は上記書籍の内容にそって(TomcatとMySQLをしかたなく入れて)勉強してます。
こっちの端末は実際にはサーバとして使わないのでTomcatとMySQLを切り離したいです。
0833nobodyさん2005/04/15(金) 01:20:07ID:???
すいませんageさせてください。
0834nobodyさん2005/04/15(金) 01:30:50ID:???
>>832
DBホストをlocalhostじゃなくて、DBサーバの名前なりIPアドレスなりを指定すればいいじゃない
0835nobodyさん2005/04/15(金) 10:32:15ID:???
しかし、今更Tomcat4にMySQL3か。
とくにTomcat4は今からやるには情報として古すぎる。
0836nobodyさん2005/04/16(土) 14:12:47ID:???
>>832
Windows上でEclipse+Tomcat+MySQLの環境が正しく構築済みなら、順番に
切り離していけば特に問題は無いと思う。とりあえずデータベースの接続先を
LinuxのMySQLに変更するところからやってみれば?やり方が解らなければ、
どこが解らないか具体的に書くべし。

ただ、Tomcatはローカルにもあったほうがいいよ。リモートデバッグは遅すぎて
開発効率が悪いと思う。
0837nobodyさん2005/04/16(土) 14:15:20ID:???
> とくにTomcat4は今からやるには情報として古すぎる。

そうは言っても情報量としては一番多いだろ。
今から始めるにはTomcat5からというのは同意だけど、過去の書籍とか
ネットの情報でTomcat4以前の情報がほとんど活用できないことを考えると
4から始めるのは悪くないと思うけど。

0838nobodyさん2005/04/16(土) 17:32:31ID:???
なんか勉強しなきゃいけなくなったんだが、
ASP.N○Tからするとあまりの原始ぶり、非効率ぶりにビックリしてもた。
よく暴動起きないもんだ。
0839nobodyさん2005/04/16(土) 17:52:26ID:???
単に原始的で非効率な勉強してるからでしょ。
08408322005/04/18(月) 21:36:25ID:???
>>834-837
まず書籍の訂正を。
↓こちらでした。よけいな心配をかけてしまったようで。
http://www.amazon.co.jp/exec/obidos/ASIN/479800734X/250-8270605-2087416

MySQLの切り離しは>>834であっさりできました。ありがとうございます。
Tomcatは>>836さんの助言のとおり、ローカルにもあったほうがいいですね。

JSP本は一通りすませて今はStrutsを学習中です。どうもでした。
0841nobodyさん2005/04/24(日) 05:05:14ID:???
>>835
学生のお勉強かよw
現状でTomcat使っての仕事なら、ようやくTomcat3.Xから4.Xに変わり始めた頃だろ。
Tomcat5なんて業務として使ってるところなんて皆無。

遊びでやるなら最新バージョンで、そういう仕事につきたいのなら2世代前のバージョンからってのは常識。
0842nobodyさん2005/04/24(日) 05:30:38ID:???
>>841
古くて狭い常識だね。
というか、勉強の話と運用の話を混同してるのが痛い。
0843nobodyさん2005/04/24(日) 05:37:50ID:???
>>841
仕事でやるなら、案件の性質と開発環境や開発しやすさと安定性を考慮して、適切なバージョンを採用するというのが常識。
やみくもに新しいバージョンを使ったり、逆にやみくもに古いバージョンを使ったりするのは適応性がない証拠。
さらに、自分のところの開発での傾向を常識として押し付けるのは愚の骨頂。
0844nobodyさん2005/04/24(日) 10:59:05ID:???
> Tomcat5なんて業務として使ってるところなんて皆無。
いつの時代の話しをしているのやら。
普通にTomcat5を使っていますが、何か?
0845nobodyさん2005/04/24(日) 11:49:30ID:???
とゆーか3って使えるのか?
0846nobodyさん2005/04/24(日) 11:57:36ID:???
さすがに3は無いだろう。今使うなら4か5で、
Web上に転がる資料は4の方が豊富、これから増えるのは5ってとこだろ
5.5はどうなることやら、
0847nobodyさん2005/04/24(日) 12:14:48ID:???
開発者MLを見ていれば、Tomcat4はもうずっとメンテされていないことは明らかなのだが、それでも使う?
0848nobodyさん2005/04/24(日) 12:22:01ID:???
枯れているって事だろ
0849nobodyさん2005/04/24(日) 12:50:12ID:???
>>848
おめでたいな。
もうメンテされないとドキュメントにも書いてあるよ。
0850nobodyさん2005/04/24(日) 13:02:24ID:???
で?
0851nobodyさん2005/04/24(日) 13:11:09ID:???
>>849
枯れているって事だろ
0852nobodyさん2005/04/24(日) 16:14:00ID:???
公式サイトの Tomcat 4.x のところに
We encourage all users to upgrade to Tomcat 5.x whenever possible.
とあるけどね。
0853nobodyさん2005/04/24(日) 16:15:07ID:???
>>851
っていうか、放置。
0854nobodyさん2005/04/24(日) 19:24:04ID:???
>>853
セキュリティホールとかにはちゃんと対処されてると思うけど。
0855nobodyさん2005/04/24(日) 22:20:41ID:???
>>851
枯れているんじゃないんだ。廃れているんだ。
0856nobodyさん2005/04/26(火) 18:35:25ID:???
Tomcat5(Tomcat5.0.28)だとデフォルトでajp12のポート
(同じくデフォルトで8007)をlistenしないようなのですが、
これを有効にするにはどこを有効にすれば良いのでしょうか?

Tomcat3.x当時は
org.apache.tomcat.service.connector.Ajp12ConnectionHandler
あたりを有効にしたのですが...
0857nobodyさん2005/04/28(木) 14:52:16ID:JL7cKaDn
すみません。
tomcat5.0.28をWin2003サーバのサービスとして動かしたいのですが、なぜかサーブレットを認識してくれません。
jspはちゃんと読み込むのですが…。
理由としては、strutsなどは使用せず、かつ個々のアプリのweb.xmlを記述せず、invokerのデフォルトの
http://localhost:8080/hogetest/servlet/hogeServlet
のような形で直接アクセスしようとしているからだと思います。
環境変数のCLASSPATHに、
%TOMCAT_HOME%\hogetest\WEB-INF\classes
を通しているので、サービスではなく、startup.batからtomcatを起動した場合には起こりません。
(startup.bat起動時にも、setclasspath.batの中でシステムの環境変数を
上書いているようなので、その中を修正しました)

サービスの時だけに使う環境変数などがあるのでしょうか?
なお、service.batファイルのPR_CLASSPATHに、%TOMCAT_HOME%\hogetest\WEB-INF\classesを
追加してみてもだめでした…。
0858nobodyさん2005/04/28(木) 15:03:22ID:???
わかりにくいので修正。

×を通しているので、サービスではなく、startup.batからtomcatを起動した場合には起こりません。

○を通しているので、サービスではなく、startup.batからtomcatを起動した場合には、サーブレットが動きます。
0859nobodyさん2005/04/28(木) 15:06:17ID:???
>>857
環境変数をいじるのは愚の骨頂。

1. invokerを使うな、web.xmlを書け。
2. invokerはデフォルトで無効になっているので、有効化しろ。

1.がベスト。どうしてもinvokerを使いたかったら2.。
環境変数でどうにかしようと考えるのは糞。
0860nobodyさん2005/04/28(木) 15:11:20ID:???
>859
助言サンクス
invokerは有効化してるよ。だからサービス以外では動く。
諸事情でweb.xmlを書くなと言われてる。
だから漏れも困ってるんだよ…。
0861anonymouse2005/04/28(木) 15:55:20ID:???
Eclipse関連スレって無かった?探してみたけど見当たらなかったんだが・・・

ネタ:画像ファイルをテーブルに切り貼りするときに夢波とか写真屋を立ち上げるのが面倒なので、
ライトな機能美のプラグインがありませんかあ?
08628572005/04/28(木) 16:22:30ID:???
自己レスだが、tomcatをServiceにチェック入れた状態で再インスコしたらうまくいきました。


なんだよそれ…○| ̄|_
0863nobodyさん2005/04/28(木) 16:28:20ID:???
>>861
Eclipseは、此処じゃなくプログラム板の方じゃないかと思うが・・・。
0864nobodyさん2005/04/28(木) 17:17:59ID:???
>>857 環境変数をユーザ固有のものに設定してるのでは?
デフォだとサービスはLOCAL SERVICEとかで実行されてる。

質問です。
Tomcat5.5なのですが、
jspでPathInfoを取得するには
どのようなurl-patternでマッピングすればいいのでしょうか?
0865anonymouse2005/04/28(木) 17:20:23ID:???
>>863
ありがとう。探せた。
0866プログラマをされている方にお尋ねします。2005/04/28(木) 20:03:11ID:N9QivnjG
>>857
JAVA SUN APPSERVERを試してみたらいかがですか。DEPLOYTOOLでEAR,WARを構築して、VALIDATOR使えばそのような問題は予防できると思います。

「質問」

こちらで、サーブレットに詳しい方いらっしゃいますか。

・ユーザー(認証してセッション開始済み)が入力した変数(name, birthday)を受け取る。
・name, birthday の内容を含むPDFファイルを作成して、サーバー内に保存する(WEB-INFとは違う外付けHD)。
・PDFファイルを、同ユーザーのブラウザに出力する。
・同ユーザーだけには、再ログインした時に同じファイルの閲覧を許す。

この3行目が問題なのですが、setContentTypeに与えるMIMEの変数を工夫すればよろしいのでしょうか。

どなたか、解決策をご存知でしたらお助けくださいませんでしょうか。

宜しくお願いします。

あさか
0867nobodyさん2005/04/28(木) 20:51:08ID:???
PDFファイルをブラウザに出力するには
AdobeのReaderインストールする必要がある。

実際に表示してるのはAdobeのActiveXプラグインか何かだった気がする。

クライアントの環境に依存するようだが
ヘッダにContent-Disposition: inline を入れるとうまくいく場合もある
0868プログラマをされている方にお尋ねします。2005/04/28(木) 21:02:33ID:N9QivnjG
>>867
早速のご解答をどうもありがとうございます。

response.setContentType("Content-Disposition: inline");

とするのでしょうか。多分、このような変数を指定するのだろうなと
思っているのですが、その後どうすればいいのかなと考えると、
どんどん分からなくなります。

もう、PDFファイルは外部HDに保存済みですから、サーブレットで
HTMLファイルを作って、そのHTMLファイルに上のような変数を
していして、それから外部HDからPDFを読み込めばよろしいのでしょうか。

あさか
0869nobodyさん2005/04/28(木) 21:09:59ID:???
>>868
少しは自分で調べたらどうだね?

response.setContentType("application/pdf");
// ↓ filename の所にファイル名を埋め込む
response.setHeader("Content-disposition","inline; filename=\"" + fileName + "\"");
// ↓これが無いと、https通信の際にIEで表示できない
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
0870nobodyさん2005/04/28(木) 21:10:45ID:???
response.setContentType("type")はresponse.setHeader("Content-Type","type")と同じ。
だからやるならresponse.setHeader("Content-Disposition","inline")

Content-Typeの指定がどのていど影響あるのかはよくわからないな
application/pdfかapplication/octet-streamあたりになるのだろうけど

Googleとかで見つかるPDFをクリックした場合、ブラウザ内に表示される?
されないならクライアントの環境に原因がありそう

0871nobodyさん2005/04/28(木) 21:13:34ID:???
あとURLの最後が.pdfじゃないとうまくいかないかも
0872プログラマをされている方にお尋ねします。2005/04/28(木) 21:16:09ID:N9QivnjG
>>869−871

大変ご丁寧なご指導をどうもありがとうございました。

はい、ここまでご教示いただけましたら、後は自分で調べられると思います。

重ねて御礼申し上げます。 あさか
0873プログラマをされている方にお尋ねします。2005/04/28(木) 22:07:45ID:N9QivnjG
>>871

下の通りにしてみたのですが、どうもうまくいきません。全く何も表示
されませんし、「保存しますか、開きますか」のダイアログボックスも
出てきません。

WEB-INFの下ではなくて、独立した外部HDにPDFを溜めたいのですが、
どうやらここで問題が出ているみたいです。

大変お手数ではありますが、再度ご教示頂けませんでしょうか。

どうぞ宜しくお願い致します。

ASAKA

<%@ page pageEncoding="UTF8" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.util.*" %>
<%
final String filename = "C:/Documents and Settings/Administrator/Desktop/medway_ss.pdf";
response.setContentType("application/pdf");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
response.setHeader("Content-disposition", "inline; filename=\"" + filename + "\"");
%>
0874nobodyさん2005/04/28(木) 22:40:57ID:???
クライアントに対してどんなHTTPメッセージを返すのかを考えれば、
そのコードが根本的におかしいと分かるはず。

それと動作するところまでできたら、
If-Modified-Sinceヘッダに対応するとさらに良くなります。
0875nobodyさん2005/04/28(木) 23:39:26ID:???
サーブレットじゃないじゃん
0876nobodyさん2005/04/29(金) 00:41:07ID:???
// レスポンスのをセット
response.setContentType(application/pdf);
// レスポンスのHTTPヘッダにファイル名をセット
response.setHeader(
"Content-disposition",
"inline; filename=\"" + fileName + "\"");

response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");

// ファイル読み込み用バッファ
byte buffer[] = new byte[4096];
// ファイルをレスポンスのストリーム(ServletOutputStream)へ出力
OutputStream os = response.getOutputStream();
FileInputStream fin =
new FileInputStream("C:/Documents and Settings/Administrator/Desktop/medway_ss.pdf");
int size;
while ((size = fin.read(buffer)) != -1) {
os.write(buffer, 0, size);
}
fin.close();
os.close();

0877プログラマをされている方にお尋ねします。2005/04/29(金) 09:30:35ID:eNtQn2YF
皆さん、どうもありがとうございました。

大変おもしろいです。普段は、テキストファイルしか扱いませんから、良い勉強をさせて頂きました。

私がずっと理解できなかったことを、上手な方はいとも簡単にこなしてしまうのですね。

重ねて御礼申しあげます。

あさか
0878プログラマをされている方にお尋ねします。2005/04/29(金) 09:34:06ID:eNtQn2YF
>>874
If-Modified-Sinceは大変便利そうですね。

あと、HTTPS通信時の対応まで教えてくださって、どうもありがとうございました。

本当に嬉しいです。皆さん、どうもありがとうございました。

あさか
0879おばけQ2005/04/29(金) 11:18:35ID:???
どもどもおばけQこれからよろ
0880nobodyさん2005/04/30(土) 20:59:44ID:???
Tomcat5.5.xでjsvcツール使って起動してる人いますか?
そして問題なく動いてますか?
0881& ◆ZVUKXxfXHM 2005/05/04(水) 17:57:54ID:3i9h8z1f
文字化けで困っています。
-----------------
input_id_pw.html
-----------------
<html>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" />
<head>
<title>ID・パスワード登録</title>
</head>
<body>
ID・パスワード登録<br>
<form method="post" action="input_id_pw_check.jsp">
名前:<input type="text" name="new_name" size="20" /><br>
ID:<input type="text" name="new_id" size="10" /><br>
パスワード:<input type="password" name="new_pw" size="10" /><br>
<input type="submit" value="登録" />
<input type="reset" value="取消" />
</form>
</body>
</html>


0882& ◆GabKxMH/0A 2005/05/04(水) 18:00:42ID:3i9h8z1f
---------------------
input_id_pw_check.jsp
---------------------
<%@ page contentType="text/html;charset=Shift-JIS" %>
<html><head><title>ID・パスワード登録</title></head><body>
ID・パスワード登録<br>
<%
out.println("<br>名前:");
out.println(get_name);
out.println("<br>ID:");
out.println(get_id);
out.println("<br>パスワード:");
out.println(get_pw);
out.println("<br>登録しますか?");
%>
</body></html>

日本語でhtmlからjspにデータを渡した結果が
文字化けしてしまいます。
なぜでしょうか・・・
08838812005/05/04(水) 18:17:17ID:3i9h8z1f
<% %>
内に
request.setCharacterEncoding("Windows-31J");
を入れることにより解決しました
お騒がせしました。
■ このスレッドは過去ログ倉庫に格納されています