トップページ⇒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
0693nobodyさん05/02/28 11:07:23ID:???
あ、JDKじゃなくJREをインストールしているとか。
0694nobodyさん05/02/28 16:47:50ID:GROreEWY
再起動しても再インストールしてもダメでした。
英語版にしても変わらず。
もちろんインストール時にJDKは指定してます。
なんでこんなことでつまづかなきゃならないのだろう。。。
069569405/02/28 21:26:43ID:???
.javaファイルはsrcフォルダに入れたらコンパイルできるようになりました。
いままでWEB-INF\classesに直接入れてたのが悪かったみたいです。
069669405/02/28 21:27:26ID:???
>>692>>693
というわけで解決しました。ありがとうございました。
0697nobodyさん05/03/01 14:22:32ID:uFS6gP5Y
コネクションプーリングを定義したファイルをアプリケーション単位で適用したい場合、

Tomcat5.0の頃に書かれた本だと
「Tomcat_Home/conf/Catalina/localhost」に
「アプリ名.xml」の形で置くと説明しています。

Tomcat5.5の頃に書かれた本だと
直接アプリフォルダ配下のMETA-INFにcontext.xmlとして
置いてるみたいです。
この方法は5.0だとまだ使えない(対応してない)でしょうか?

試してみたんですがうまくいきませんで、
対応自体していないのか、他のどこかにミスがあるのか原因がつかめません。
どなたか教えて下さい。お願いします。
0698nobodyさん05/03/01 14:31:05ID:???
>>697
配備のときに反映される
0699nobodyさん05/03/01 15:08:08ID:Hl+Khw7N
サーバにアクセスした端末のIPアドレスを取得したいのですが
わかりません・・・
InetAddress.getLocalHostだと自分(サーバ)のアドレスになってしまうし。
070069705/03/01 15:08:49ID:???
>>698
すいません、ちょっと意味が…
お聞きしたいのは5.0はMETA-INF下にcontext.xmlを置く方法に
対応してるかどうかという事であります。

更にもう一つ付け加えたいのですが、
どうもそれぞれ内容の書き方も違うみたいなのです。
これはバージョンの違いによる仕様変更と考えていいんでしょうか?

5.0の頃に書かれたサンプルは、
<parameter>
〜
</parameter>
で一つ一つ設定値がくくられおり、かなりXMLチックで長いです。

これに比べて5.5の頃に書かれた新しい本では
<Resource … />
の中で全部まとめて書かれていて短いです。
0701nobodyさん05/03/01 15:13:14ID:???
>>700
個別の本のことなんか知らん。

> お聞きしたいのは5.0はMETA-INF下にcontext.xmlを置く方法に
> 対応してるかどうかという事であります。

だから、配備のときに反映される、と。
反映されることがあるんだから、対応してることになるんだろうな。
0702nobodyさん05/03/01 15:14:10ID:???
つか、5.5の頃にかかれた本、とか言われてもなぁ。
070369705/03/01 15:25:37ID:???
>>701
>反映されることがあるんだから、対応してることになるんだろうな。
そういうことですか。ありがとうございました。

>個別の本のことなんか知らん。
本の問題というより
Tomcatのバージョンによりコネクションプーリングの書式に
違いがあるかどうか、という事をお聞きしたいのであります。
あるから違うのか、
ないけど別の理由で変えているのか、
どっちの方法で書いてもいいのか…
0704nobodyさん05/03/01 15:50:19ID:???
両方試せばいいじゃない
070569705/03/01 15:58:06ID:???
いろいろ試してるんですけど、上手くいってないです。
どこかミスがあって自分が悪いのか、バージョンが対応してないのか、
問題の切り分けが出来ないので時間が勿体無いです。
0706nobodyさん05/03/01 16:12:15ID:???
>>697
Tomcat 5.5.7 を昨日インストールして、この辺の問題でつまづいた。
基本的には、
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html
ここを見て設定したけれど、これだとデータソースが見つからないというエラーが出たので、
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources-howto.html#Adding%20Custom%20Resource%20Factories
ここのように factory で org.apache.commons.dbcp.BasicDataSourceFactory を指定して
動作させるようにした。

<Resource name="jdbc/pgsql" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/dbname"
username="username" password="password"
maxActive="8" maxIdle="4" maxWait="10000"/>
0707nobodyさん05/03/01 22:19:44ID:???
>>699
なんでInetAddressなんかに行き着いたんだ?
そういう場合普通はHttpServletRequest見るのが筋じゃないか?
0708nobodyさん05/03/02 00:10:09ID:UQuYUU2o
.javaのimplementsで取り込んでいたインターフェースを、
jspでも使いたいんですが、どーすればいいんでしょうか?
jspからはインターフェースって参照できませんか?
クラスに作り変えるしかないですか??
0709nobodyさん05/03/02 00:17:36ID:???
>>708
普通に import しれ。
0710nobodyさん05/03/02 00:32:37ID:???
>>708
おおぉ!ありがとうございます。できました。
javaでimplementsしたときと同様、変数名だけで参照しようとしていたのが敗因でした。
<%=インターフェース名.変数名%>
と、インターフェース名もつけることで参照できました。
感謝です!
0711nobodyさん05/03/02 00:33:15ID:???
ごめんさい。>>710は>>709さん宛てのまちがいです。
0712nobodyさん05/03/02 01:59:54ID:???
importしてないし・・・。
変数まとめるだけのインターフェイス作ってるし・・・。
0713nobodyさん05/03/03 21:27:13ID:Hyslfu2a
>>712
C上がりなのだろう。
0714nobodyさん05/03/05 17:15:36ID:Wo+eXXh9
Tomcat5.0とMySQL4.1で掲示板のサンプルを試してるんですが、
掲示板の投稿を保存したデータをBeansを通しデータベース内から読み出し、
jspに表示してみると??????などのように文字化けしてしまいます。
jspページ内の他の文字要素(ページタイトルとか「投稿者名」「記事内容」等々)は
普通に表示されており、文字化けしているのはデータベースから読み出した
文字だけです。

コマンドプロンプトからデータベース内を直接見てみると
記録自体は文字化けせずに正しくできているようです。
なのでフォームからBeanに渡してデータベースに書き込むまでは
上手くいっているはずなので、問題は読み出し時にあると思うのですが…

データベースから読み出す時に文字コードを指定する手続きとかって
必要でしたっけ?(そういう命令とかありましたっけ?)
もしくは他になにか考えられる原因などはありますでしょうか?
0715nobodyさん05/03/05 23:20:58ID:Xmv/4rx/
TomcatでCGIを使う
http://www.atmarkit.co.jp/fjava/javatips/083container012.html
↑ここみながら設定してみたんだけど、8080ポートでなら動くけど
Apache2と連携させようとすると動かないんですよね・・・
どこのページみても8080ポートでの動作しかさせてないみたいです

どなたか成功させてる人いますか?

環境
Redhat9、Apache2、Tomcat5、JDK5
0716nobodyさん05/03/06 00:53:36ID:???
ていうか連携させるくらいならApacheでCGI動かせばいいじゃない
0717nobodyさん05/03/06 05:04:27ID:???
>>716
iアプリで使ってるから同じドメインで
jspとcgiが動かないと困るんですよー
0718nobodyさん05/03/06 07:23:11ID:???
何で連携させるとドメイン変わるんだ(;´Д`)?
0719nobodyさん05/03/06 14:56:26ID:???
>>718
?
0720nobodyさん05/03/06 15:07:04ID:???
>>718
cgiはapache
jspはtomcat
なんて設定同じドメインでできるんすか?
0721nobodyさん05/03/06 15:09:17ID:???
ドメインの意味を理解してないのかこいつらは…

>>720
その質問には「できる」と答えておく、
けど、お前はドメインの意味をはき違えていると思う
0722nobodyさん05/03/06 15:53:43ID:???
>>721
その解凍から考えると俺がやろうとしてることはできないということでFA?
0723nobodyさん05/03/06 15:54:18ID:???
知るかよ
0724nobodyさん05/03/06 17:09:10ID:???
>>720
あなたが言っている「ドメイン」というのは、DNSアドレスのこと?
例えば、"pc5.2ch.net" みたいな?
0725nobodyさん05/03/06 18:30:45ID:???
とりあえず、Servlet/JSP の前にネットワークの勉強しようぜ
0726nobodyさん05/03/06 20:38:32ID:???
>>715
ApacheとTomcatを連係させるためにはmod_jk2 というのが必要。
後はググれ。
0727nobodyさん05/03/06 20:42:47ID:uqVKdTuZ
というか、「apache tomcat」 でググればすぐでてくるぞ。
後、最近は mod_jk2 よりも、jakarta-tomcat-connectors-jk2 の方が
通りがいいかもしれん。
0728nobodyさん05/03/06 20:46:26ID:???
あのぉ・・JK2は非推奨になってますが・・・
0729nobodyさん05/03/06 21:00:16ID:???
JSTL関連でトラブッてるのですが質問はここでよろしいですか?

JSTLを利用してXMLの操作を行おうとしているのですがうまくいきません。
サンプルのhttp://localhost:8080/standard-examples/xml/Parse.jspは動くのですが、このソースをコピーしたものを使ってもエラーが出ます。
エラーは
[Fatal Error] jstl::1:1: Content is not allowed in prolog.
StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました
org.xml.sax.SAXParseException: Content is not allowed in prolog.
〜以下略〜

といった感じです。また
<c:set var="xmlText"><test></test></c:set>
<x:parse var="a" doc="${xmlText}" />
の時はエラーが出ますが

<x:parse var="a" doc="<test></test>" />
の時はエラーが出ません。

環境はTomcat5.028、JSTL1.1.2+Eclipse3.0+Tomcatプラグイン+StrutsIDEです。
0730nobodyさん05/03/06 21:16:35ID:???
>>728
じゃ、mod_jk で。それとも、何か別にお勧めがある?
ttp://www.jajakarta.org/tomcat/faq/connectors.html
0731www.geocities.jp/shouhishahogo/05/03/06 22:10:38ID:???
HTML(HyperText Markup Language)
   Webページを記述するためのマークアップ言語

   現在はホームページなどを記述する為の言語と理解されています。
   ホームページ(Webページ)はIE(インターネットエクスプローラ)
   ネットスケープ、オペラなどあらゆるブラウザで閲覧できます。

   ただし利用するブラウザで同じように表示できない場合もあるので
   HTMLで作成したホームページ(Webページ)は注意がひつようです。
0732nobodyさん05/03/07 01:10:50ID:hhpd6BQB
すいません。質問です。
現在Webアプリケーションの開発をしております。ブラウザの閉じるボタン(×ボタン)を
クリックした時に特定のアクションを起こさせることってできますか?
×ボタン押下時にJAVAスクリプト関数を呼び出して、そこから特定の処理をさせたいのですが・・・
0733nobodyさん05/03/07 01:20:51ID:???
スレチガイ
073471505/03/07 06:50:16ID:???
質問答えてもらって申し訳ないんですが、
元質問の意味がいつのまにか変わってます

mod_jk環境でCGIも使いたいってことなんですが
0735nobodyさん05/03/07 07:38:48ID:???
>>734
「ApacheでCGI動かせ」でFA
0736nobodyさん05/03/07 13:09:07ID:???
以下のページの、「10. HttpSessionにはビジネス・ロジックに必要な最小限のデータだけを保管すること」
の後半に、
> また、HttpSessionの永続化は忘れずに動作させること。
と書かれていますが、この、「HttpSessionの永続化」というのは、
具体的にはどういったことを指しているのでしょうか?
つまり、WebSphere かなにかが持っている「HttpSessionの永続化機能」をON にするということなのか、
単に、アプリケーションに永続化処理をきちんと記述しろということいっているのか、
どちらなんでしょうか?

@IT > Java Solution > J2EEのベストプラクティス・トップ10(+2)(後編)
http://www.atmarkit.co.jp/fjava/rensai3/devworks04/devworks04_3.html
0737nobodyさん05/03/07 15:43:57ID:???
ポイ使ってエクセルファイルを編集してブラウザに返す処理について
うまく行かずに悩んでるんです。

テンプレのエクセルを加工して、それをブラウザに返す処理なんです
が、取りあえず大まかな流れは

-----
response.setContentType("application/vnd.ms-excel");
ServletOutputStream st = response.getOutputStream();

FileInputStream in = new FileInputStream("sample.xls");
POIFSFileSystem fs = new POIFSFileSystem(in);

HSSFWorkbook wb = new HSSFWorkbook(fs);

in.close();

(ここでworkbook編集)

workbook.write(st);
st.flush();
-----

これじゃダメですかね?真っ白なExcelしか開かないんですよ。

所でポイって、一番最初にエクセルファイルを全部メモリに読み込む
んですよね?ファイルのサイズとか気にしなくても大丈夫なんだろう
か・・・
0738nobodyさん05/03/09 01:01:55ID:???
>737
自己レス
Excelシートの構造が問題だったようです。同一ソースで別のExcelファイルだと全く問題なく
動いたので。

しかしそうなると業務でポイを使うのはちょっと気を使うな。
だれか、実際の業務でポイを使ってる人とかいませんか?
0739nobodyさん05/03/09 08:42:05ID:???
JSPとjstlを使って、TEXTフォームの内容をMYSQLへ入れたり出したりする
練習をしてるんですが、改行がうまく復元できないで困っています。

TEXTフォームに書き込んだ改行を含む文字列を、そのままMYSQLの
TEXT型カラムが一つだけのテーブルにinsertします。適当に何個か入れます。
プロンプトで見てみると、どれもきちんと改行を保って格納されています。

それを、↓のような感じで全部読んで表示してみているのですが、改行が無視されます。
生成されたhtmlソース自体は改行されているのですが、
行末に</br>とかついてないのでブラウザの表示上は当然改行されてません。
こういうときはどうしたらよいのでしょうか?

<c:forEach var="row" items="${rs.rows}">
<c:out value="${row.kakiko}" /></br>
</c:forEach>
0740nobodyさん05/03/09 10:31:17ID:???
>738
まずそのふざけた言い方直してからだな>ポイ。
人に質問するときにそんな脳内言語使っていいのか?

ちなみに普通に使ってる。
074173805/03/09 11:43:08ID:???
>740
きゃーきゃはははははwwwwwwwうhわははははあwwwwww
言っちゃったね?言っちゃいましたね?いいんですか?
言ってもいいんですか?いいんですね??Wwwwwwwww

じゃああなたwPOSのことをポスって言わないんですねw
WEBのことをウェブwROMのことをロムって言わないんですかw
言いますよねw言ってますよねwきゃははははhwwwwwwww

POIはどうやったってポイですよねwwwwwww
ホントにいいんですかwwwwwいいんですねwwwwうわははっはww
0742nobodyさん05/03/09 12:02:47ID:???
業務とか抜かす前に病院に逝け、手遅れになる前にな。
0743nobodyさん05/03/09 15:13:04ID:???
JSPとjstlを使って、TEXTフォームの内容をMYSQLへ入れたり出したりする
練習をしてるんですが、改行がうまく復元できないで困っています。

TEXTフォームに書き込んだ改行を含む文字列を、そのままMYSQLの
TEXT型カラムが一つだけのテーブルにinsertします。適当に何個か入れます。
プロンプトで見てみると、どれもきちんと改行を保って格納されています。

それを、↓のような感じで全部読んで表示してみているのですが、改行が無視されます。
生成されたhtmlソース自体は改行されているのですが、
行末に</br>とかついてないのでブラウザの表示上は当然改行されてません。
こういうときはどうしたらよいのでしょうか?

<c:forEach var="row" items="${rs.rows}">
<c:out value="${row.kakiko}" /></br>
</c:forEach>
0744nobodyさん05/03/09 16:50:28ID:???
>>738 >>741
豹変具合にワラタ
0745nobodyさん05/03/09 17:36:05ID:???
下らないこと書いてる暇があったら教えてください。

JSPとjstlを使って、TEXTフォームの内容をMYSQLへ入れたり出したりする
練習をしてるんですが、改行がうまく復元できないで困っています。

TEXTフォームに書き込んだ改行を含む文字列を、そのままMYSQLの
TEXT型カラムが一つだけのテーブルにinsertします。適当に何個か入れます。
プロンプトで見てみると、どれもきちんと改行を保って格納されています。

それを、↓のような感じで全部読んで表示してみているのですが、改行が無視されます。
生成されたhtmlソース自体は改行されているのですが、
行末に</br>とかついてないのでブラウザの表示上は当然改行されてません。
こういうときはどうしたらよいのでしょうか?

<c:forEach var="row" items="${rs.rows}">
<c:out value="${row.kakiko}" /></br>
</c:forEach>
0746nobodyさん05/03/09 17:48:19ID:???
\nを<br>に置換すりゃいいじゃん
つうか自分でそう書いてるじゃん
0747nobodyさん05/03/09 18:44:41ID:ftQ8FpB8
>>746
ありがとうございます。
改行コード自体は残っているみたいなので、
${fn:replace(row.article, "\\n", "</br>")}</br>
とか
${fn:replace(row.article, "\\r\\n", "</br>")}</br>
などとしてみたんですが、うまくいきませんでした。

そこで、
${fn:replace(row.article, "
", "</br>")}</br>
として、改行コードを文字で書くのではなくて、
ソース自体を改行してみたら上手くいったみたいなのですが、
なんだか気持ち悪いですし、ダサいです。

こういう場合は皆さんはどうしてるんでしょうか?
参考に教えていただけると嬉しいです。
0748nobodyさん05/03/09 18:51:19ID:???
^
0749nobodyさん05/03/09 22:19:51ID:???
POIは「ポイ」だよ。Jakartaのお偉いさんがインタビューでそう発音してた。
もともとMS技術を小馬鹿にしたニュアンスを含んでいる名称だそうな。

0750nobodyさん05/03/09 22:35:25ID:1Nwn7b+o
質問します

<%@ page language="java" %>
<%@ page contentType="text/html; charset=Shift_JIS"%>
<html><head><title>test</title></head>
<body>
<%
request.setCharacterEncoding("Shift_JIS");
String strMes=request.getParameter("mes");
if(strMes==null){%>
strMes==null
<%}else{%>
strMes!=null
<%}%>

<form action="test.jsp" METHOD="Post">
<input type="text" name="mes"><br>
<input type="submit" value="go">
</form>

</body>
</html>

テキストボックスから入力されたテキストが、空白かどうかを判別したいのですが、
テキストボックスに何も入力されないでサブミットされた場合、上のstrMesには何が入るのでしょうか?
てっきりnullか""かと思ったんですがどうも違うみたいで・・・
075175005/03/09 22:40:03ID:???
あ、書くの忘れましたが上のファイル名はtest.jspです。
サブミットしたら自分のファイルにアクセスするようにしてます。
0752nobodyさん05/03/09 23:59:31ID:???
>てっきりnullか""かと思ったんですがどうも違うみたいで・・・
上のソースじゃ""かどうかまでは判定してないだろが
075375005/03/10 00:23:39ID:???
>>752
これも書くの忘れてました。

if(strMes==null){%>
strMes==null
<%}else{%>
strMes!=null
<%}%>

を

if(strMes==""){%>
strMes==""
<%}else{%>
strMes!=""
<%}%>

に変えてやってもみたんですが
strMes!=""  と判断されてしまいます
0754nobodyさん05/03/10 00:32:04ID:???
>>753
ここで質問する前にやるべき事があるようですね
0755nobodyさん05/03/10 01:19:52ID:???
何で比較するの?
そのまま出力すれば?
0756nobodyさん05/03/10 03:27:41ID:???
>>753
てかそれコンパイル通るのか?
075775005/03/10 20:25:21ID:???
昨日の質問ですが、自己解決致しました・・・

if(strMes==""){%>
のとこを
if(strMes.equals("")){%>
にしたら狙い通りに動いてくれて、テキストボックスに何も入力されずにサブミットされた場合は、""が入るということがわかりました

スレ汚しすいませぬ
0758nobodyさん05/03/10 23:11:04ID:FwNbWUOa
リクエスト情報にBeansのオブジェクトをセットしてJSPにフォワードするとします。

飛んだ先のJSPで、セットしたBeansオブジェクトのプロパティを取得する場合、
式言語を使うと${requestScope['beansobj'].hoge}
とするだけで、ゲッターメソッドから勝手に取得してくれるみたいなのですが、
式言語を使わずに、普通にスクリプトレットで取得したい場合は
どうやって書けばよいのでしょうか?教えてください。お願いします。
0759nobodyさん05/03/10 23:43:47ID:fDk5/oY2
CSV形式のデータを
response.setContentType("application/atom");
response.setHeader("Content-Disposition","filename=200503102340.csv");
で出力して、「開く」を選んだ場合
.csv]200503102340[1]
のようなシート名で開いてしまいます。
ダウンロードして開いた場合には、
ファイル名と同じ名前でシート名がはいっています。

開くを選んだ場合に、ファイル名と同じ名前でシート名を設定する方法を
ご存知のかたがいらっしゃいましたら、教えてください。
0760nobodyさん05/03/10 23:59:14ID:fDk5/oY2
759の追記です。

ブラウザはIE6.0、エクセルは2002、2003で発生しています。
その他の端末環境は確認していません。

よろしくお願いします。
076175805/03/11 00:08:06ID:???
自己解決しました。
0762nobodyさん05/03/11 03:29:04ID:???
レンタルサーバでJSPを勉強してみようと思い立ち
現在契約しているサーバのスペックを調べたらapacheとtomcatと
mod_jkがインストールされていました。
ところがブラウザでローカルホストの8080にアクセスできませんでした。
/etc/servicesを確認すると確かに8080は違うサービスが動いていたのですが、
他のポートで動いているのかと思いサービス名から探したのですが
(apacheに乗らず)tomcat単体で動いている場合、サービス名は何になりますか?
例えば80→wwwみたいな感じで探したいんですが
環境redhat7.2です。
0763nobodyさん05/03/11 08:25:26ID:???
ローカルなのかリモートなのかはっきりしる
0764nobodyさん05/03/11 10:31:15ID:???
>>759
200503102340[1].csv ってファイル名で作るとそうなるから
エクセルの仕様だと思うけど。
[1]とかはIEがキャッシュするときに勝手につけてるから
どうしようもないんじゃ・・・
076576205/03/11 12:17:27ID:???
>>763
ごめんなさい

×ところがブラウザでローカルホストの8080に
○ところがブラウザで自鯖の8080に(http://自鯖IP:8080)
0766nobodyさん05/03/11 18:39:29ID:???
>>765
Apacheと連携させてるなら、一般的にTomcat(8080)へは
外部から直接接続できないようにしてるはず。
mod_jkの設定でApache経由で接続させましょう。
管理などで直接接続したい場合はsshでポート転送すればいいと思います。

あと、動いているサービスの確認は、
# netstat -anp
とかでないとできません。

心配なのが、その古いrh7.2がちゃんとメンテされているのかどうかです。
076776205/03/11 19:06:22ID:???
>>766
レスありがとうございます
netstatしましたがサービスは有効になっていないようでした
mod_jkの設定をみようとlocate mod_jkしたら
/usr/java/jakarta-tomcat-3.2.3/conf/mod_jk.confという設定ファイルらしきものがありました
jakarta-tomcat-3.2.3ってなんだよと思いつつlessで確認したところ
<IfModule mod_jk.c>

JkLogLevel warn
JkMount /*.jsp ajp12
JkMount /servlet/* ajp12

</IfModule>
…読み方がまったくわからんのでぐぐってきます。(´∀`;)
0768nobodyさん05/03/11 21:46:10ID:???
>>767
ちなみに何ていうレンタルサーバなわけ?
俺も興味あるんで教えて欲し
0769nobodyさん05/03/12 17:51:31ID:NMsvHl9/
Tomcat5でのJSPの文字コード指定について質問なんですが、
JSP一枚ずつ文字コード設定するのは面倒だと思い、文字コード設定のみを行ったJSPを他のJSPでincludeしています。

こんな内容のJSPを作って(ファイル名はcharset.jspだとします。)
<%@ page pageEncoding="Windows-31J" contentType="text/html; charset=Windows-31J" %>

んでこれを他のJSPの先頭で↓みたいにしています。
<%@ include file="charset.jsp" %>

しかしこれを行うと思いっきり日本語が文字化け・・・。
JSPごとにいちいち文字コード設定入れれば直るんですが、このやり方ってそもそも駄目なんでしょうか?
できれば文字コードは一箇所で設定変更できるようにしておきたいのですが・・・。

対処法、もしくは代替案があったらぜひ教えて下さい。
よろしくお願いします。
0770nobodyさん05/03/12 20:00:02ID:???
そもそもだめでしょう
0771nobodyさん05/03/12 20:04:38ID:NMsvHl9/
>>770
WebLogic Serverではこの方法で出来るのですが、Tomcatでは不可能、という事でしょうか?
0772nobodyさん05/03/12 20:21:22ID:???
>>771
JSPコンテナの実装依存だな。
動いてしまうことと、仕様として動くとことになっていることとは違う。
Tomcatでできないことはやらないほうがいい。
0773nobodyさん05/03/12 22:28:29ID:???
>>769
> 対処法、もしくは代替案があったらぜひ教えて下さい。

web.xml の locale-encoding-mapping で一括指定。
Tomcat 依存ではなく Servlet 2.4 仕様。
077476905/03/13 01:43:03ID:iOc5Vlj8
>>772
>>773

レスありがとうございます。
コンテナ次第というのはあまりよくないですよね・・・。

http://edocs.beasys.co.jp/e-docs/wls/docs81/notes/new.html#1183974

上記を見るとWebLogicはServlet 2.3 までしかサポートしていないようなのですが、Servlet 2.3環境では
JSP毎に文字コード指定するしかないという事になるのでしょうか。
これだとどちらにせよコンテナ次第で方法を切り替えなければならないですよね。
う〜ん・・・。
なんとかどの環境でも一箇所で文字コード指定を済ませる方法はないものでしょうか?
都合良過ぎですかね・・・。

とりあえず、Tomcat 5環境では>>773さんに教えて頂いたweb.xmlによる指定を使用したいと思います。
ありがとうございました。
0775nobodyさん05/03/13 13:51:46ID:EHuTQNQa
Tomcat限定のしかも初歩的な質問なんだけど
社内システムで、ほぼ全てのコンテンツをServlet/JSPで生成する場合
(画像もほとんどなし)、ApacheとTomcatを連携させる意義ってあるかしらん?

それともただの1つでも画像などの静的文書を含む限り、
連携させた方が効果的かな?
0776nobodyさん05/03/13 16:42:11ID:???
静的文書があるかどうかじゃなくて、
むちゃくちゃアクセスがあるとか、クラスタリングするとか、cgiつかうとか、
どれぐらい負荷がかかるかでしょ。
セキュリティ対応具合はよく知らないけど。
077777505/03/13 18:45:04ID:EHuTQNQa
レスありがとう>>776
クラスタリング構成の場合と、cgiも使いたい場合ということですね。
アクセスが多い、負荷がかかる場合というのはクラスタリング前提の話、ということで
いいのかな?
つまりクラスタリング構成にしない場合、リクエストされるコンテンツのほとんどが
Servletだとしたら、Apache+Tomcat連携しても負荷分散の役には全く立たない、
という認識だけどこれは正しいでしょうか?
077876205/03/13 21:02:20ID:???
遅レスですが
>>768
アイル(GMO)です。
レン鯖板でスッゲー叩かれてたトコロなんですが…。
けっこう設定がむちゃくちゃだったり…。
(ノД`)
0779nobodyさん05/03/14 09:52:14ID:WWS4KC60
アプリ内の*.jspに対して、pageディレクティブなどを全部に書くと面倒なので
一つのjspに書いてweb.xmlの<jsp-config>内で共通のヘッダとして
インクルードするように設定して使っています。
これと同じような感覚で、
アプリ内の*.tagファイルについても、定型の宣言(jstlとか)などを
一つにまとめて書いてインクルードする事はできないでしょうか?
078077905/03/14 10:31:57ID:???
書き忘れましたがTomcatは5.0です。
どなたかご存知でしたらよろしくお願いします。
0781nobodyさん05/03/14 21:15:49ID:wvCTDLy1
velocityってコンテナ介さずに使えるけどどうしてなんですか?
ファイルサイズが変わってるとそれをパースしてリロードするだけ〜
と聞いたのですが、何かと文献漁っても情報不足&知識足らずでして・・・。
0782nobodyさん05/03/14 21:17:33ID:???
>>779
そんなような記事見た気がする
http://www.atmarkit.co.jp/fjava/javatips/119jspservlet39.html
これっぽくない?
0783nobodyさん05/03/14 21:34:00ID:???
>>782
それは既に知っててやってるんでしょ?
で、それと同じことを*.tagファイルに対してやるにはどうしたらよいのか、と
そういう質問じゃないかと。
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
あげさせてください。
お願いします。
■ このスレッドは過去ログ倉庫に格納されています