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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
065264903/01/24 02:00ID:6jYskYhY
>>651

あのソースじゃ、それだけじゃ無理です。
0653ぁぁぁぁ03/01/24 11:37ID:xVaFOUtv
みなさんお答えありがとうございました。
>>644
さんの言うやり方でやったらできました。
ですが、>>645
さんの言うやり方だとなぜかエラーが出てしまいます。
生成されたサーブレットのエラーです:
setCharactorEncoding(java.lang.String) は interface javax.servlet.http.HttpServletRequest で見つかりません。
てな感じのエラーです。むぅぅぅ。
どうやらこの参考書はリナックス環境で書かれてるみたいです(´ヘ`;)
やっぱり自動認識できるのがあるんですね。よかたよかた。
0654nobodyさん03/01/24 18:41ID:56yOuBZ8
暗黙オブジェクトをmethodの引数で渡すときってどういう理由でクラス決めてる?
うちはweblogicなんで session.getClass() で
class weblogic.servlet.internal.session.MemorySession が帰ってくるんだけど
一般的にsessionてHttpSessionクラス使うよね ↓のメソッドはどういう違いがあるんでしょ?
public void setUserData( weblogic.servlet.internal.session.MemorySession session ) {
・・・

public void setUserData( HttpSession ) {
・・・
0655nobodyさん03/01/24 23:52ID:W9H/DsUV
むりですか。。。。
ご教授してください。お願いします
0656nobodyさん03/01/24 23:53ID:6jYskYhY
>>654

HttpSessionはインターフェースです。
HttpSessionのWebLogicでの実装がweblogic.servlet.internal.session.MemorySession
だと思われるので、HttpSessionを使うのが良いですよ。
0657ぁぁぁぁ03/01/25 01:50ID:rgWLNR9L
CharactorではなくCharacterだったんですね・・・(;・∀・)
0658nobody03/01/25 03:25ID:LiaTHzWg
はじめまして。いつも参考にさせてもらっています。
ちょっとお伺いしたいのですが、Tomcat+PostgreSQLという環境を構築することになりました。
ただ、Tomcat(AP)とPostgreSQL(DB)間にはFWがあり、AP-DB間でプールしてあるはずのコネクションを切断してしまうというらしいのです。
H/W要件が変更できないので(しかもアプリ側では無理らしい。)
@FWでコネクションを切断しないように設定する。
ATomcatで再接続するような設定をする。
BOS(RedHat7.3です)でダミーのパケットを送ってコネクションを維持する。
なんて手があるらしいのですが
A、Bについて何かヒントいただけないでしょうか?

ちょっと八方塞状態です。
良かったらアドバイスいただけますでしょうか?
0659nobodyさん03/01/25 10:59ID:SRxd5RzK
>>658

Aに関しては、そんなことするくらいなら、コネクションプールなんて
使用しない方がいいと思う。

Bに関しては、多分FWはセッションごとに管理しているので、そのセッ
ション内でパケットを飛ばす必要があると思う。
ということは、既にアプリサーバがポートをつかんでいるからOSから
パケットを飛ばすのは難しいのでは?

FWの設定を変えるしかないと思いますよ。
0660nobodyさん03/01/25 17:49ID:9WV/0U1f
Vectorの変数にVectorの変数って格納できるのか?
0661nobodyさん03/01/25 20:31ID:???
>>658
コネクションプールの設定は開発側でできるんだな?

1. コネクションを取得する。
2. 接続確認のため簡単な SQL を発行する。
3. 例外が発生したら 1 へ戻る。

これをコネクションプール数 + 1 回繰り返してやれば、最悪プール内の
コネクションがすべて切断されていても再接続してくれるだろう。最後の
一回で取れなければ本物の接続障害だ (切り分けとして毎回 SQL コード
見ても良いが)。現在時刻を取ってくる程度の SQL ならディスク I/O が
発生しないので、プール使わないで毎回接続に行くより遥かに速い。

ちなみに Tomcat でコネクションプール使うときのソフトウェア要件と
web.xml のサンプル教えてくだちい (今度自宅で組もうと思ってるんで)。

>>660
できるよ。変数つうかオブジェクト (インスタンス) だが。
0662nobodyさん03/01/25 22:10ID:8ocJ7akI
>>654
他のサーバで使うのにコードの修正が必要になる
ってんでHttpSessionにするべきかな
0663nobodyさん03/01/25 22:36ID:SRxd5RzK
>>660

できる。
0664nobodyさん03/01/26 13:30ID:nck0ClEc
秀和システムの「はじめてのJSP&サーブレットプログラミング」
Tomcat4+MySQL3対応 アイティーブースト著
で、本の通りにインストール行ったのですが、最後のTomcat4のとこ
ろでlocalhost:8080とやっても、本のようにThe Jakarta Projectの
画面が出てくれません。Tomcat version3.2.4の画面が出てしまうの
ですが?
これで問題ないのですか?
0665nobodyさん03/01/26 14:34ID:???
>>664
問題ありますよ。
Tomcat3.2.4をとめてください。
0666nobodyさん03/01/26 19:02ID:MU9JCDZB
ありがとう>>656
0667nobodyさん03/01/26 19:59ID:INUYZKhE
>>664
ありがとう。Tomcat3.2.4を止めても、Tomcat4を起動すると、
Tomcat3.2.4が動いてしまいます。
この本はダメなので、「10日でおぼえるJSPサーブレット入門教室」
SE SHOEISYAを買ってきました。これだと、アパッチをインストールして、
Tomcatもジャカルタだけをインストールするように書いてあるからです。
Xpを再インストールして、また1からトライしてみることにいたします。
0668nobodyさん03/01/26 20:02ID:hfzgm8Bu
http://jsweb.muvc.net/index.html
  ★こんなサイト見つけました★
0669nobodyさん03/01/27 12:51ID:GS9rQNkk
MVCの実装って、人によって違ったりして
M、V、C、それぞれの定義があいまいな気がするんだけど
もっともよい構成って、どんな感じなんですかね?

(たとえば今悩んでるのは、MをJavaBeansで実装して、JavaBeansクラス
のなかでDBにアクセスしてデータを格納しておきたいんだけど
コネクションプールの参照がServletContextに格納されているから
ServletContextオブジェクトにアクセスする必要がある。
でもJavaBeanでServletContextにアクセスするのになんか違和感が
ある・・・)
0670nobodyさん03/01/27 14:03ID:WT1ShOwi
■迷惑メールサイト一斉訪問お祭り開催■

「ワタナベケイコ」なる人物が、
スレ主の携帯に、アドレスを何度も変えては同じ宣伝を送りつけてくる。
その熱意に感動したスレ主は、この宣伝されているサイトに
漏れ達2ちゃんねらというでっかい土産を用意して訪問することにした。
さぁおまいら、この「ワタナベケイコ」の熱意を評して
ガンガン入ってやろうぜ!

携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://jbbs.shitaraba.com/news/bbs/read.cgi?BBS=853&KEY=1043335260

         訪問開始は本日23:00
0671nobodyさん03/01/27 14:09ID:???
すみません、以前chatを作るといっていたものです。
私はp503iで、その機種でしか試してないので、
もし503系で余裕があるかたがいらっしゃいましたら、
試していただけないでしょうか?

http://moranj.mimora.com/etcdown/c/
を見てみていただけるとうれしいです。ダウンロードは
http://moranj.mimora.com/etcdown/c/down/からです。こっちは
携帯電話からしかアクセスできないようになっています。

0672nobodyさん03/01/28 02:05ID:neXie+Qg
>>669

コネクションプールってJNDIで取ってくるんじゃないの?
0673たけそ〜03/01/28 02:17ID:2mY/q7Z6
今ColdFusionのプログラミングをくんでいるのですが、データベースの連携を使って全文検索機能が使いたいのですがどのような形になるのでしょうか?
0674nobodyさん03/01/28 07:54ID:???
>>672
べつにコネクションプールはDataSourceとJNDI使わなければならないわけじゃない。

>>669
Strutsとかそんな設計だよね。
俺はStruts使ってもStrutsのコネクションプールフレームワークは使わない。
気持ち悪いから。
0675nobodyさん03/01/28 07:55ID:???
>>673
スレ違い
0676nobodyさん03/01/28 23:58ID:???
>>669
ServletContextとJabaBeanを受け取って、DBとごにょごにょするクラスを
別につくればよいとかそういう話ではなくて?

俗にヘルパーClassっていうのかな。
0677nobodyさん03/01/29 23:46ID:D8ZQc5hA
動的にテーブルを作成するにはどうすればいいのでしょうか?
よろしくお願いします。
0678nobodyさん03/01/30 00:19ID:???
>>677
EJBのCMP使う。
0679nobodyさん03/01/30 00:26ID:I+zAWRkN
>>678
レスありがとうございます。
EJBは初心者なもので
具体的な方法、又は参照ドキュメント教えてもらえないでしょうか
0680nobodyさん03/01/30 02:21ID:???
>>677
Connection con = DriverManager.getConnection("jdbc:db:HOGE");
Statement stmt = con.createStatement();
stmt.executeUpdate("CREATE TABLE HOGE(ID INTEGER NOT NULL PRIMARY KEY)");

つうか、動的にテーブルを作るようなシステムは (要件しだいだが) 根本的な
設計が間違っている。
0681nobodyさん03/01/30 02:41ID:I+zAWRkN
>>680
ありがとうございます。
設計に関しても考え直してみます。
068268103/01/30 02:43ID:I+zAWRkN
SQL文を記述せずに作成する方法はないのでしょうか?
0683nobodyさん03/01/30 03:43ID:???
>>682
データベースエンジンを自作せれ
0684nobodyさん03/01/30 08:24ID:???
>>682
EJBのCMP使う。
0685nobodyさん03/01/30 16:12ID:???
WebObjectsでも使え
0686nobodyさん03/01/31 02:20ID:mtgy7+Pq
EJBにてORACLEのDBを検索するときの不具合があります。
検索結果の Number型を BigDecimal として取得する際、不正な
値として返ってきます。対策を御存知の方がいらしたらお教えくださ
い。過去ログに既にありましたら申し訳ありません.

【環境】
・Linux RedHat 7.1(x86)
・Oracle9i
・WebSphere4.0 AE
・JDK1.3.1

【状況】
NUMBER(8)型のカラム1つ、その他は全てvarchar2のテーブルの
検索結果を ResultSet.getBigDecimal(...) で取得した際、
1回目は正しく値を取得できるのですが、同じ検索条件で2回目
以降は不正な値が帰ってきます。sqlplus などでは正しく
表示されるのですが、例えば 1434 なる値が
-10110000000000.....0000000 (128桁)
として取得されてしまいます.
getInt(), getDouble(),... にしても変わりませんでした.
sqlを変えて、to_char(..)して getString() としても
正しい値は取得できませんでした.

情報をお持ちの方、お教えください。
0687nobodyさん03/01/31 15:09ID:GqbYQhQy
WebSphere4.0.4をアプリケーションサーバとして開発しているものです。
WebSphereを停止させることなくサーブレットコンテナーで管理している
全てのセッションを破棄させる方法はないでしょうか?
0688nobodyさん03/01/31 15:40ID:iS05n2/F
jsp:include アクションを使って、外部ファイルを取り込んで表示させたい
のですが、文字コードの問題で困っています。

環境は、以下です。
・TurboLinux 8
・Tomcat4.1
・JDK1.4.1

最終的な出力が、SJISになるように、インクルードする側のファイルで、
<%@page contentType="text/html; charset=SJIS"%>と指定しています。

そして、取り込まれるファイルがJSPファイルの場合は、
そのファイルに<%@page contentType="text/html; charset=SJIS"%>
と記述して、このファイルからの出力をSJISに指定してあげれば問題はないのですが、
取り込まれるファイルがHTMLなどの静的なファイルの場合、
取り込まれるファイルからの出力の文字コードの指定ができず、
システムのデフォルトの文字コード(この場合はEUC)でエン
コードされるからか、文字化けしてしまいます。

http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
↑このページの jsp:include アクションの項を参考にすると、
Tomcat 3.2では,jsp:includeで取り込む静的なファイルの
文字エンコーディングは,Javaのデフォルトエンコーディング
と一致していないと正しく処理できないバグがあるということ
なのですが、Tomcat4.1でも同様なのでしょうか?

Javaのデフォルトエンコーディングで保存していない
静的なファイルを、jsp:include アクションでインクルードして
正しく表示させる方法はないのでしょうか?
(パッチを当てるしかないのでしょうか?)
0689nobodyさん03/01/31 16:55ID:???
サーブレットからJSPへのフォワード後のURLを、JSPのURLすることはできないでしょうか?
0690nobodyさん03/02/01 12:56ID:???
>>688
HTMLファイルに手を加えてもいいなら
<%@page pageEncoding="Shift_JIS" %>
が使えたような気がする。気のせいかもしれん
0691nobodyさん03/02/01 13:47ID:???
>>688
静的ファイルなら、<jsp:include>じゃなくて<%@ include %>使えば?
<jsp:include>は別々に処理されて、クライアントへ出力する段階でインクルードされるが、
<%@ include %>ならソースコードがマージされるだけだよ。

>>690
気のせいです。
HTMLファイルに<%@page pageEncoding="Shift_JIS" %>って書いても
何も起こりません。
0692nobodyさん03/02/01 13:48ID:???
>>689
フォワードの仕組みを考えたらそれは無理。
リダイレクト使うべし。
0693nobodyさん03/02/01 22:53ID:BuJmI9p/
Apache1.3.27+Tomcat/4.1.18
の環境でサーバを立てたのですが、
http://localhost/examples/にアクセスするとservlet/ jsp/のリストが出るのですが、
そのリンクを踏むと、404エラーになってしまいます。エラーログにはただFile does not existしか書かれていません。
対処法を教えて下さい。設定は下の通りです。
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
0694nobodyさん03/02/01 23:06ID:???
あ、エラーログはこんな感じでした。
File does not exist: /examples/jsp/index.html
0695nobodyさん03/02/03 12:47ID:Om6JyMaE
>>690

やってみましたが、
<%@page pageEncoding="Shift_JIS" %>
がそのまま出力されてしまいました。

>>691

<%@ include %> だと、インクルードされる側の
ファイルを更新したときに、インクルードしている
ファイルも更新しないと、更新が反映されなくなっ
てしまいますよね?

多数のファイルからインクルードされるファイル
の更新などを考えると、なるべく<jsp:include>で
インクルードしたいな〜とか思ってるのです。

更新後、まとめてtouchでタイムスタンプを更新しちゃう
という手があるかもしれませんが・・・。
069669103/02/03 13:07ID:???
>>695
インクルードされる側のファイルは静的でも、拡張子だけ.jspに変える
ってのはだめ?
そうすれば
<jsp:include>使って、インクルードされる側のファイルに
<%@ page contentType="text/html; charset=Shift_JIS"%>
とか書けるけど。
0697nobodyさん03/02/03 13:24ID:Om6JyMaE
>>696

> インクルードされる側のファイルは静的でも、
> 拡張子だけ.jspに変える ってのはだめ?

最初はそれで解決と思ったのですが、
インクルードされるファイルをメンテする
デザイナの話だと、HTMLエディタの関係なのか、
拡張子がJSPよりもHTMLの方がいいらしいのです。

拡張子がJSPよりもHTMLの方が、どういう理由で
どれくらい嬉しいのか、もう一度デザイナに確認して、
大きな問題がないようだったら、拡張子をJSPにして
もらおうかな〜とか今は思ってます。
0698nobodyさん03/02/03 19:42ID:???
>>697
HTMLファイルを読み込んで出力するだけのメソッド一つ作れば?
<%= xxx.includeTextFile("hoge.html") %>
みたいに。必要ならメモリ上にキャッシュしてもいいし。

または、x.htmlが更新されたらすぐにx.jspにコピーするようなスクリプト書いておくとか。
cp x.html x.jsp
0699nobodyさん03/02/04 13:19ID:???
ServletやJSPを学ぶのに良い本を教えてください。
インストールの方法などはどうでもいいので、Servletやbeans,jspを
どのように連携させると良いのか、などのノウハウを学べるものはないでしょうか?
070043803/02/04 22:09ID:REZtK6Vr
>>697
ローカルで拡張子が.htmlだとブラウザでの確認が楽だからじゃないですか?

さて…apache側でErrorDocumentを 404.jspなんてしてるんですが
forward?されてる事から、getRequestURL()ではエラー元のURLが
取得できないです。
また、getHeader("Referer")ではエラーページのURLになってしまいます。

どうすれば取得できるんでしょうか…
0701nobodyさん03/02/05 01:23ID:???
>>700
String url = (String)request.getAttribute("...");

※... の部分は忘れた。エラーページ側でリクエストの全属性出力してみれ。

ファイルアップロードサーブレットのバージョンがひそかに上げられているようでつ。
なんか web.xml 見ると帯域制限とか付けられるみたいでつ。サポート掲示板とかねぇのか…。
http://tool-ya.ddo.jp/2ch/trash-box/index.html
070270103/02/05 01:27ID:???
>>700
ぬ、Apache のエラーページ設定で、か。じゃ多分無理ぽ。
0703nobodyさん03/02/05 02:06ID:???
>>701
menu.jsp の中に悪金になってるリモホがハードコードされてて笑える
0704nobodyさん03/02/05 11:43ID:???
InputStreamと、OutputStreamを使って、
バイナリファイルをクライアントへ送信しているのですが、
ファイル送信後に、別ページへリンクを使ってジャンプしようとすると、
ページが切り替わらない事象が発生して困っています。

webページはフレームで分割されており、リンクを行う際には、
指定フレームのURIを切り替えるような形になっています。

IEで「新しいウィンドウを開く」を行うと、正しくページが開くので、
Servletが落ちているわけでもないようなのです

どなたか、この事象のヒントなどご存知でないでしょうか?
0705nobodyさん03/02/05 11:48ID:???
>>704
MS のサイトにソレらしいバグが報告されていた。最新の SP あててみれ。
070670403/02/05 11:53ID:???
Σ(゚Д゚;

この二日は何だったんだ(´・ω・`)
0707nobodyさん03/02/05 12:12ID:???
>>706
いや、まだそれと確信したわけじゃないから、ダメもとで試してみれ。
070870403/02/05 12:59ID:???
(´・ω・`)ダメデツタ・・・

IE6 sp1の最新にしたんでつが・・・
0709nobodyさん03/02/05 15:39ID:???
Servletでファイルのダウンロードを行いたいのですが、
ファイル名に日本語を使用すると化けてしまいます。
対処法知ってる人いませんか?

response.setHeader("Content-Disposition", "attachment; filename=\"日本語.txt\"");

# ファイル名に日本語なんか使うんじゃねーよ (つД`)
0710nobodyさん03/02/05 16:09ID:HskkGycj
インターネットを使って無料でできるお金儲けの方法を紹介します。
基本的な仕組みは、広告を見ることによって報酬をもらえるというものです。
メールなどでスポンサーの広告を見ることにより広告費が視聴者に渡るようになっているのです。
お金儲けサイトはたくさんあるので、どれから始めればいいか迷うと思います。
そこで、すぐに収入がもらえるサイトを紹介します。
僕も4日で900円ほど稼ぎました
下からどうぞ
http://www.chobirich.com/intorduce/?10653
0711nobodyさん03/02/05 17:54ID:???
ちゃんとRFC読んでないから知らないけどMIMEエンコードとかいらんの?
071243803/02/05 19:24ID:???
>>701-702
レスサンキューです。やはり無理そうですか。

perlだと出来たりするのは、やはりapacheで処理されてるからですかね…
tomcatに飛んだ時点で、ダメみたいです。

ちなみに自分の>>700、getRequestURL()はgetRequestURI()の間違いです。
071343803/02/05 20:25ID:???
>>712
ちなみにphpだと出るんですよね。
$_SERVER['REDIRECT_URL']
とか。
071470103/02/05 21:15ID:???
>>712-713
正直 Apache 管轄の URL から Tomcat 管轄のエラーページ JSP へ
処理が渡されたときの元 URL がどうなっているかは実装依存なので
よく分からない。request#getAttributeNames() や request#getHeaders()
とかで調べてみたほうが良いと思われ。
0715nobodyさん03/02/06 02:38ID:???
すんません。ちょっと質問。
どなたかピンと来る方アドバイス下さい。
「WinXP Pro + Apache1.3.27 + tocat4.0.6 mod_jk.dll」の環境を
「WinXP Pro + Apache2.0.43 + tomcat4.1.18 mod_jk2.dll」に変えてみました。
ApacheとTomcatの連携は何とか成功しました。
が、テストにごく簡単なHTMLファイルの表示をさせたらものの見事に文字化けです。
メニューバーの「表示」→「エンコード」を見ると「西ヨーロッパ言語(ISO)」になってます。

何処が原因になってるのか検討が付けられないほど初心者です。
とりあえず、何処を疑えばいいんでしょうか?
0716nobodyさん03/02/06 03:27ID:???
apache2 iso-8859-1 でぐぐれ
0717nobodyさん03/02/06 12:45ID:???
>>715
拡張子を.jspに直して1行目に
<%@page contentType="text/html; charset=Shift_JIS"%>
を記述。

どうしてもHTMLファイルがいいなら<head></head>に
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
を記述。

だれかがブラウザに文字コードを教えてあげないと。
0718nobodyさん03/02/06 18:20ID:uPbgsKYm
質問でつ。ServletでHTMLを出力する際に、出力部分を独立したメソッドで作成し、
パラメータによって出力順を変える事は可能ですか?

<HTML>
<BODY>
モナー
モナー
ギコ
ギコ
しぃ
しぃ
</BODY>
</HTML>

モナーの部分の表示と、ギコの部分の表示を別メソッドにして、パラメータによって表従順を上下させたい
のですが、単純に別メソッドにして、元メソッドの途中から呼ぶと呼出先が最初に出力されます。

モナー
モナー
ギコ
ギコ
<HTML>
<BODY>
しぃ
しぃ
</BODY>
</HTML>

とりあえず回避策として別メソッドにせずに、ひとつのメソッドの中で、2通りの表示内容を作って条件分けしてますが、
もっとスマートな方法がないでつか?
0719nobodyさん03/02/06 18:36ID:kfFPimv5
http://www.agemasukudasai.com/bloom/
072043803/02/06 19:05ID:???
>>641-645
もし tomcat4.Xならフィルタを使うと良いかも。
今日初めて、恥ずかしながら、自分もフィルタ、使ってみました。
今まではいちいち、
String formVal = fields[i+1];
formVal = new String(fields[i+1].getBytes("iso-8859-1"), "Shift_JIS");
なんてことしてました。

SetCharacterEncodingFilter.java
参考。
http://hp.vector.co.jp/authors/VA017148/java/tomcat_enc_4_0_3.html

ついでにgzipのフィルタも動かしてみた。
いずれも格納場所は
$CATALINA_HOME/shared/classes/filters
全てのwebappsに反映させたければ、ここでいいんですよね??
072171803/02/06 19:51ID:???
別メソッドの引数までHttpServletRequest request, HttpServletResponse response
にしていたオイラがバカですた。BufferedWriter outにして解決しますた。
072243803/02/06 20:48ID:???
>>720
> $CATALINA_HOME/shared/classes/filters
> 全てのwebappsに反映させたければ、ここでいいんですよね??
すいません、動いてなかった…いい加減な事書いちゃった。
0723nobodyさん03/02/06 22:33ID:???
>>717
>だれかがブラウザに文字コードを教えてあげないと。
JSPのpageディレクティブで<%@page contentType="text/html; charset=Shift_JIS"%>
を書いてもブラウザに教えてあげることにはならないよ。
Servletコンテナがクライアントへ出力する文字コードセットの指定をしているだけだから。
JSPのソースが.javaファイルに展開されたときに
HtteServletResponse::setContentType()メソッドに変換される。

ブラウザに教えてあげられるのは
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
こっちだけね。
0724nobodyさん03/02/07 01:38ID:???
>ブラウザに教えてあげられるのは
><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
>こっちだけね。

激しく無知。嘘教えんなよ(藁
0725nobodyさん03/02/07 02:16ID:???
>>724
へ?javax.servlet.jsp.JspWriterが実際に何の文字コードセットを使って出力するかを設定するための指定じゃないの?
ブラウザに教えてるんじゃなくてわたってきた文字コードセットをブラウザが勝手に自動認識してるだけじゃなくて?
0726nobodyさん03/02/07 04:34ID:???
>>725
>>724 じゃないけど、ブラウザは HTTP の Content-Type ヘッダを見て
文字コードを決定している。もちろんそれで解決できなければ <META>
タグも見るけど。

Content-Type の charset 指定はクライアントが受信する文字コードで
あり、同時にサーバ側で出力する文字コードだから、サーブレットは
setContentType() の設定値を見て出力文字コードを決定しているだけ。

ちなみに WebSphere の開発では setContentType() で Shift_JIS を
指定すると「−」「〜」などが文字化けするので、変わりに Cp943C
(Shift_JIS の IBM 版) を指定する。ただしこれはブラウザ側が知ら
ない文字コードなので、このままだと自動認識が走ってたまに化けて
しまう。なので、<META> タグに Shift_JIS を宣言して、サーバ側で
は Cp943C、クライアント側では Shift_JIS で認識させてやらないと
いけない。
0727nobodyさん03/02/07 04:45ID:???
ちなみに <META> タグの HTTP-EQUIV 属性のもともとの意味が「HTTP
ヘッダと同意に扱え」という事を考えれば、<META> タグによる Content-Type
指定が setContentType() によってもたらされる Content-Type ヘッダと
同じ動きをするということになる。

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> ≒ Content-Type: text/html; charset=Shift_JIS

今のブラウザはどうだか知らないけど、昔 HTTP-EQUIV に Location を指定して
やったらちゃんとリダイレクトと同じ動きをした記憶がある。そのほかにも
<META> タグを使用して Cache-Control や Pragma に no-cache を指定する
こともできる (IE しか知らんけど)。
0728nobodyさん03/02/07 08:13ID:???
>>726-727
お勉強になりまつた。

>ちなみに WebSphere の開発では setContentType() で Shift_JIS を
>指定すると「−」「〜」などが文字化けするので、
これ、
・Windows2000pro
・Java2SDK1.4.1_01
でnative2acciiコマンドでも化けました。
だからResourceBandleとかStrutsのリソースファイルに
「−」「〜」が使えなくて困ったことがありまつ。
0729nobodyさん03/02/07 11:23ID:Uodii1t/
サーブレット環境を整えたばかりの初心者です。
Webアプリケーション名をsampleとして、セッションが存在する時に
sample/pagesフォルダの中のページにアクセスされた場合、
「アクセスされた」ことを認識する方法と、
そのファイル名を取得する方法を教えていただけないでしょうか。
0730nobodyさん03/02/07 12:24ID:???
>>729
何をもって「認識」とするかはわからないし
どんな環境かも書いてないけど、
Tomcat決め打ちで答えると

$CATLINA_HOME/logs/localhost_access_log.yyyy-mm-dd.txt
をみればよいんじゃない?

※$CATLINA_HOME=Tomcatがインストールされているディレクトリ
(例)C:\Java\jakarta-tomcat-4.0.3\logs\localhost_access_log.2003-02-07.txt
0731nobodyさん03/02/07 17:34ID:Uodii1t/
>>730
すみません、Tomcat4.1です。
認識というのは…たとえばフォルダ内のページにアクセスされたら
そのページの<TITLE>要素を取得する、というように、アクセスされた場合の
処理を書きたいのです。分かりにくくて済みません。
073271503/02/07 23:50ID:???
レスくれた方々、どうもありがとうございます。
初心者にレスの数々、申し訳ない。

TOMCAT単体で起動してHTMLを見ると正常に表示されるのが、
Apacheを経由すると文字化けを起こしてます。
ちなみに、METAは書いてます。↓
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
0733nobodyさん03/02/07 23:52ID:???
何故完璧に答えている >>716 を無視するのだろうか?
073471503/02/07 23:55ID:???
すいません。追加ネタでApache経由でも、
HTMLからJSPにフォーム使って値を飛ばし、それを元にDBにアクセス。
結果を表示させると正常に表示されます。
どうやら静的なドキュメントだけ化けるようです。
てことはApacheが何かやらかしてるという事でしょうか?
0735nobodyさん03/02/08 00:20ID:???
何故完璧に答えている >>716 を無視するのだろうか?
073671503/02/08 00:49ID:???
>>733
>>716
おわ、申し訳ない。
さっそく調べます
0737nobodyさん03/02/08 12:45ID:9B0qUJ8h
>>731
うーん、まだやりたいことがイマイチわからん
たとえばJSPで

<%
  String title = "とっぷぺーじ";
  //ログに吐かれる→任意のファイルに書いてもよし
  System.out.println( title );
%>
<html><head><title><%=title%></title></head>
<body>トップページだゴルァ</body><html>

とかってのはどう?
0738nobodyさん03/02/08 14:53ID:???
JSP、Servlet、EJBの組み合わせはコーディング量が多くてちょっとな。
0739nobodyさん03/02/09 13:27ID:???
コーディング量が割に合わないような規模の案件なら、無理にその構成にしなくても可。
JSPしか使わなきゃPHPと同等。
0740nobodyさん03/02/09 15:58ID:???
分岐点はどの辺なのだろうね。
0741nobodyさん03/02/11 02:52ID:???
>>735
おれもオモタ
Apacheのデフォルトエンコードの問題なのにね。
0742nobodyさん03/02/11 08:55ID:JR8ddDUL
Apache1.3.27+Tomcat3.2.4+Windows2000pro環境でJSPサーバを起動しています。
その状態でIISも起動してASPを使用したいのですが(IISは最初にインストールしてあって
Apacheをインストールした時から、サービスを停止させていました。)、Apache側のポートを80
のままで、IIS側のポートを変更してサービスを起動しましたが、Apche側WEBは繋がるのに、
IIS側は繋がりません。ポート番号をずらせば同時に使用できると聞いていたのですが...
IIS側のポートは、IISのサービスマネージャでTCPポートの所を、88や20や28等の
適当な番号に変更して(これが悪いのでしょうか?)試しました。
どなたか、どうやったら同時に使用出来るようになるのか教えて下さい。
お願いします。
0743nobodyさん03/02/11 13:38ID:???
http://localhost:80/
http://localhost:88/の違いってなぁーんだ?
0744nobodyさん03/02/11 13:53ID:???
ポート番号
074574203/02/11 14:08ID:JR8ddDUL
>>743
すみません。
解決しました。
デフォルトのポート番号と変更したポート番号は別だってのは当たり前の事でしたね(恥
ありがとうございました。
0746nobodyさん03/02/12 19:12ID:???
jsp xml syntax + jstl + xhtml で完全 XML 形式のJSPをつくりたいんですが、

<a href="<c:out var="${url}" />">リンク</a>

のところでエラーになります.
なにか良い方法はないでしょうか?
0747nobodyさん03/02/13 13:43ID:rGWdrtCQ
MVCのサンプルでグッチものがあったら教えてくれ。
HPでも本でもかまいまそん。
データエントリー編集削除系のがあればなおグッチ。
0748nobodyさん03/02/14 02:46ID:ehmUiT7Y
>>747

J2EEパターンでも読んどけ。
本も出てるし、Sunのページにもあるぞ。

ついでに、EJBデザインパターンというのもいいかも。
0749nobodyさん03/02/15 03:57ID:???
EJBデザインパターン、最近読んだけど、良いなこれ。
てか、こういうのも読んでない状態で、EJB案件任されて
誰も保守したくないコード書いちまったよ。

反省。責任とる気はないけど。
0750nobodyさん03/02/19 15:42ID:m0zTyLSq
Servlet上からhhtpコネクションの切断指示の出し方を教えてください。

具体的にはServletの判断でリプライ時にTCPコネクションのClose、
KeepAliveの制御ができるか、ということです。

ServletからConnection: Closeを付加したりもしましたが、Closeは
できませんでした。

iPlanet 6を使用しています。
0751nobodyさん03/02/19 19:26ID:???
>>750
サーブレット API でできる方法は Connection: close を送り返すこと
だけだが、それでも TCP/IP の切断が起きないなら、それはサーブレット
コンテナが悪い。
0752nobodyさん03/02/21 12:10ID:05q4TO88
>>751
やっぱりそうですか。
マニュアル読んでもRFC読んでもなかなかはっきりしなくて
困ってました。
#読みこみがたりないのか(^^;;
ではやっぱりコンテナ屋さんに確認してみます。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています