トップページ⇒php
982コメント347KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/05/14 11:32ID:RETM9b3/

前スレ
■■ Servlet/JSP(EJB含む) 質問スレ ■■
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
0175nobodyさん03/06/15 01:12ID:???
>>173
161は
>>中小規模なら Bean と JSP だけで十分だな。
と言っている。いらないとしているのは、
「JSPから自動変換されるサーブレットを除いたサーブレット」
0176nobodyさん03/06/15 02:50ID:???
Beanだってサーブレットじゃないか。

御大層な名前がついてるだけ。
0177nobodyさん03/06/15 02:57ID:FrtOxuV+
>>176
あなたのサーブレットの定義を書いてみて。
0178nobodyさん03/06/15 05:30ID:???
>>176
激しく勘違い
おまいにとってはサーバ上で動くクラスは全てサーブレットなのか?
017917603/06/15 09:03ID:???
>>178
その通り。
俺にとってクラス=サーブレットだ。
0180nobodyさん03/06/15 11:19ID:???
>>179
サーブレットは
javax.servlet.GenericServletクラスを継承したクラスだけだ。
018117603/06/15 16:26ID:???
なるほど。理解した。
0182nobodyさん03/06/15 16:57ID:L3TTNj8P
質問です。

サーブレットで取得したHttpServletRequestの内容を書き換えることって
できますか?

form→サーブレット→JSPとリクエストを渡していきたいのですが
サーブレットで内容を書き換えて、JSP側のgetParameterで、取得できる情報を
変更したいのです。

formがpostする内容によって、JSP側の表示情報を変えたいわけですが、
JSPではgetParameter以外は使えない状況なんです。

どなたか知ってる方よろしくお願いします。
0183nobodyさん03/06/16 00:12ID:XlDEkkZn
JSPやサーブレットで運営されてるサイトってどんなところがありますか?
あまり見かけなくて普及してるのかなぁ?って感じです。
↓取りあえず一つ見つけました。
http://www.shigotokan.ehdo.go.jp/jjw/top.html
0184nobodyさん03/06/16 00:39ID:???
>>183
@IT
0185nobodyさん03/06/16 00:44ID:???
>>184
あそこはJava使ってないよ
宮下さんから聞いた。HTML手で書いてるって。
掲示板はPHP。
0186nobodyさん03/06/16 00:55ID:???
>>183
俺は自鯖立ててJSP+サーブレットで掲示板作ってる。
しかも無駄にDB使って書き込み保存してる

最近はPHPが増えてきてるね。PHP使えるフリー鯖が増えてきたのも原因かも。
JSP・サーブレットが使えるフリー鯖がまるでないので一般への浸透率はまだまだだな。
業務アプリではサーバサイドはJavaばっかりなんだけど。

>>185
@ITクラブなんかは、モロにサーブレットじゃないか?
018718503/06/16 01:04ID:???
> @ITクラブなんかは、モロにサーブレットじゃないか?
ほんとだ。だんだん使われ始めてきてるね。
0188nobodyさん03/06/16 03:23ID:???
>>182
session じゃだめ?それが一番簡単だけど。
あとは setAttribute で RequestDispatcher かね。

http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html
0189nobodyさん03/06/16 08:12ID:e2+2jq6k
>>188
やっぱり、それしかないですかねぇ。
うーん・・・
0190JSP勉強中03/06/16 09:57ID:zvI8NSxj
servletのservice()とdoget()とdopost()はどのように
使い分けたらよいですか?
service()だけでよいような気がするんですけど。
0191JSP勉強中03/06/16 10:58ID:zvI8NSxj
あと、JSPとサーブレットで開発するときは
JSPにはDBとのやりとりは書かないものなんですか?
0192nobodyさん03/06/16 12:49ID:YEAaEmmk
>>191
書かない。
0193nobodyさん03/06/16 13:32ID:???
>>183
IT Pro
http://itpro.nikkeibp.co.jp/

インターネットタウンページ
http://itp.ne.jp/

OpenOffice.org
http://www.openoffice.org/

三井住友銀行(ネットバンキング部分)
http://www.smbc.co.jp/
みずほ銀行のネットバンキング
http://www.em-town-bank.com/

パッと気が付いた、有名どころだけ、
URL見てると、結構使ってるところある。
0194JSP勉強中03/06/16 14:12ID:zvI8NSxj
>>192
Servletには書きますか?
それともbeanだけですか?
0195nobodyさん03/06/16 15:59ID:olrkysza
>194
beanは入物。
servlet又は別のクラスでやったほうがいい
0196JSP勉強中03/06/16 16:38ID:zvI8NSxj
>>195
たとえば検索ページを作るとして
検索の条件をテーブルから拾って表示している場合
beanにそのリストを入れておくとしたら
そのリストを入れる行為はサーブレットでやるって
ことでしょうか?
うーん。オブジェクト指向って難しいなー
0197JSP勉強中03/06/16 16:43ID:zvI8NSxj
あと、bean書いてみたんですけどこれって修正してコンパイルしても
tomcatを再起動しないと反映されませんね。
何かスパッと反映される方法はないでしょうか?
0198JSP勉強中03/06/16 17:01ID:zvI8NSxj
たとえば、検索結果もいったんbeanに入れて
それをJSPで表示するって感じですか?
0199nobodyさん03/06/16 17:12ID:YEAaEmmk
>>198
ServletではBeanに情報をセットする。
JSPではBeanから情報を取得する。
何も悩むことなどない。
0200nobodyさん03/06/16 17:14ID:YEAaEmmk
>>197
ServletコンテナとしてTomcatを使っているのなら、conf/server.xmlの
Context要素のreloadable属性にtrueを設定すればよいのでは?

<Context path="/testApp" docBase="testApp" debug="0" reloadable="true"/>

こんな感じ。
0201JSP勉強中03/06/16 17:26ID:zvI8NSxj
>>199
ありがとうございます。
beanはだいたいスコープはセッションでいいでしょうか?
0202JSP勉強中03/06/16 17:27ID:zvI8NSxj
>>200
ども!
やってみます。
0203JSP勉強中03/06/16 18:10ID:???
今現在の感想としてはかなり開発効率悪いんですけど
慣れてきたらよくなるんでしょうか?
0204nobodyさん03/06/16 19:40ID:???
少人数の開発ならJSPでゴリゴリやったほうが進捗は早い。
だがJSPのみだとMVC厨に鼻で笑われる危険を伴うw
0205JSP勉強中03/06/16 20:48ID:???
どうにもオブジェクト指向は好きになれません。
0206JSP勉強中03/06/16 20:56ID:???
MVCとかいうのもわけわかんないです。
0207nobodyさん03/06/16 22:51ID:???
アッソ
0208nobodyさん03/06/16 23:31ID:???
>>206
最も優秀なコンピュータに送られる称号 by 知ったかぶり辞典
0209nobodyさん03/06/17 01:16ID:???
>JSP勉強中
最初は無理せず、JSPだけでもいいよ。
BeanだのEJBだのは、一通りできてからでオッケー。

MVCはModel、View、Controlerと分けて作りなさいということだが、
人によって何がViewで何がControlerかというのは違うらしいので、
ふーん、と思っとけばよし。

まずは、掲示板でも何でも完成させてみ。
0210JSP勉強中03/06/17 07:20ID:???
>>209
ども!
ASPやCGIは結構やってきたのでJSPだけならASPのJava版と思えば
ぜんぜん問題ないです。掲示板じゃないけど似たようなものは作ってみました。
ただ、仕事でやるとなるとJavaらしい設計とコーディングを
しないとやっぱりだめですよね。
MVCってやっぱり人によって違うみたいですね。
サンプルを見ると上にあったbeanは入れ物というのとは
ちょっと違うようなデータベースを更新したりするものもありました。
今日はいろいろなMVCのパターンを見ていきたいと思います。
0211JSP勉強中03/06/17 13:14ID:???
>>200
すみません。やってみたのですがサーブレットを変更してコンパイルしても
反映されません。
他に何か設定するところがあるでしょうか?
0212JSP勉強中03/06/17 13:50ID:???
MVCって自己満足の世界ですね。
0213JSP勉強中03/06/17 14:13ID:???
EJBってJavaBeanのリモート版と思っていいでしょうか?
0214nobodyさん03/06/17 17:29ID:hLuo4PP6
>>211

Tomcatがクラスファイルの更新を検出すると、コンソールか
logs/catalina.outあたりに

WebappClassLoader: Resource '/WEB-INF/classes/Hoge.class' was modified;
Date is now: Tue Jun 17 17:28:22 JST 2003 Was: Fri Jun 06 15:56:38 JST 2003

みたいなログが出力されるんだけど、これすら出ませんか?
0215JSP勉強中03/06/17 17:44ID:???
>>214
原因はいろいろありそうなんですが
まず、そのテストマシンにはTomcatのほかにJ2EEとWebLogic評価版を
入れてしまって環境がぼろぼろなのかもしれません。
あと、サーブレットを/WEB-INF/classes/Serv/testserv.class
のようにclassesにさらにサブディレクトリを作っています。
これって問題ありでしょうか?
0216nobodyさん03/06/17 19:57ID:hLuo4PP6
>>215
classesの下にサブディレクトリってのは、普通そうするだろうし問題なし。
で、>>214に書いたようなログは出てますか?
0217JSP勉強中03/06/17 21:01ID:???
>>216
それらしきものはコンソールには出ていません。
ログにも見当たりません。
うーむ。
0218nobodyさん03/06/17 23:22ID:???
TomcatとJavaのバージョンくらい書けよタコが
0219JSP勉強中03/06/18 10:01ID:???
Javaは1.4.1でTomcatは4.0です。
0220nobodyさん03/06/18 14:33ID:???
趣味で自宅鯖にApache+Tomcatを入れ、パート1スレでも紹介されていた、
10日でおぼえるJSP/サーブレット入門教室をほぼ終えた者です。

少し面倒くさい事をしているので、もし方法を御存知でしたら教えてください。
まず、前述の通り、Apache+Tomcatは、mod_webappで連携が正常にでき、
JSPもサーブレットも正常に動きました。
その後、バーチャルホストを試してみようと思い立ち、Apacheの方に
mod_vhost_alias入れて試験し始めましたら、Tomcatに繋がらなくなって
しまいました。
どうも、Tomcatがバーチャルホストに対応出来てないようなのです。
仕方なく、JSPをテストするときは、httpd.confのmod_vhost_alias関係の
記述にコメントアウトを入れて、Apacheを再起動しています。

自鯖は非公開ですから、別にApacheを再起動しても誰が困る訳では
ないのですが、やはりhttpd.confのコメントアウトをして再起動というの
はちょっと面倒ですし、正しい対応とも思えません。

mod_vhost_aliasで作ったバーチャルホストに、Tomcatを対応させる
方法ってないでしょうか?

いろいろぐぐってみたところ、ApacheMLに過去、同様の質問があり
ましたが、回答はありませんでした。
0221nobodyさん03/06/18 14:36ID:???
>>220

ちなみに、
Java 1.4.1
Apache 2.0.44
Tomcat 4.1.18

です。インストール後、あまり環境などは弄っていません。
0222ごまお ◆cNUxPJ5ztQ 03/06/24 12:01ID:???
>>220

根本的な解決じゃないんだけど、mod_webappはすでにほとんど
「非推奨」扱いのコネクタらしいので、JK2など開発が進行中のものを
利用したほうが資料も解決策も多いかもよ。

このへんのコネクタについて詳しくは今月のJava Developerていう雑誌に
特集記事があるです。
0223nobodyさん03/06/24 13:33ID:???
>>222
WARPってベースとなるURLに対してwebappをマップするような感じだよね?
これだと画像ファイルやらなにやらまでTomcatに丸投げするから
効率悪いように思うんだが。
0224JSP勉強中03/06/24 16:23ID:???
jdkとtomcatをインストールしました。
.jspファイルを作り、そのなかでEnumerationのインスタンス化で
エラーになります。
java.util.*はインポートしてるんですけどなぜでしょう?
0225nobodyさん03/06/24 16:36ID:???
Enumerationはインスタンス化できない。
JSP以前にJava勉強すれ
022622003/06/24 17:16ID:l2ibIr6t
>>222

おおう。一週間も放置されてたんで、もうダメかと思いました。
コネクタについては、調べてみますね。
0227本7 ◆uPD9aFm9hI 03/06/24 17:22ID:NRot/Ugh
JSPの決定的な優位性って何ですか?
0228JSP勉強中03/06/24 17:56ID:???
>>225
インスタンス化って言葉が間違ってました。
odbcのデータソース作り忘れてました。スマソ。
0229nobodyさん03/06/24 19:22ID:???
>>227
カスタムタグが面白い。



え?w
0230nobodyさん03/06/25 23:02ID:???
基本的なことだと思うのですが質問です。

サーブレットを使ったアプリケーション(httpサーブレット以外も含む)
に関する設計に関してなのですが、
一つのアプリケーションでGenericServletを継承したクラスが複数存在するのが
正しい設計なのでしょうか?

たとえばStrutsフレームワークを見ると
requesut、responseを処理するクラスは一つに設計されてるようなのですが、
単純なサーブレットのサンプルを見ると一画面に一サーブレットクラス
のような気がします。

私の勉強不足でしょうが、GenericServletを継承したクラスが一つのアプリケーションに
複数存在するのは感覚的に落ち着きません。

httpを処理するサーブレットでない場合もGenericServletを継承したクラスは
一つであったほうがいいと思うのですが、一般的にはどうなのでしょうか?

参考文献などもありましたらアドバイスと供によろしくお願いします。
0231nobodyさん03/06/25 23:13ID:???
>>230
どっちでもいいんだよ。
好みとか考え方とか開発効率とかで最適なやり方を選択すればいい。
0232nobodyさん03/06/26 16:44ID:???
>>230
Strutsの場合は、そいつがディスパッチャで各画面はそのディスパッチャから呼ばれる
Actionクラスだから自然とそういうスタイルになるだけでは。
0233nobodyさん03/06/27 00:33ID:???
「一画面に一サーブレットクラス」だったとしても、

GenericServlet
↓
・・・
↓
なんらかの(俺様流)フレームワークServlet
↓
・・・
業務処理(1画面毎の)Servlet ×n

として、フレームワークServletは、アプリケーションに一つの方が良いと思う。
023422003/06/27 11:24ID:sYWueejY
>>222

jk2でGoogleしまして、mod_jk2をコンパイルして組み込んでみたら、
examples/が表示できました。

でも、Tomcatの起動してないですよ?psにも出てないし?
と思ったら、jk2ってTomcatの事前起動無しに、JSPやサーブレット呼び出せる
のか!

いや、こりゃ便利ですね。

なんか、バーチャルホストも出来そうですし、もう少しGoogleで調べてみます。
0235null03/06/28 14:54ID:x9iwUQrE
JSPから、Servletを呼び出すと、

java.lang.NullPointerException
at java.lang.ClassLoader.resolveClass0(Native Method)
at java.lang.ClassLoader.resolveClass(ClassLoader.java:588)
at org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.java:430)
at org.apache.tomcat.loader.AdaptiveServletLoader.loadClass(AdaptiveServletLoader.java:174)
at org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:265)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java:166)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)

が表示されます。
eclipse上では、うまくいくのですが、いろいろ試したのですが、知識不足でわかりません。
どうすればいいか教えてください。
0236nobodyさん03/06/28 15:28ID:WE3G3OqE
MySQLを使ってる人で文字化けに困ってる人いませんか?

どうも上手くいかないんですよね。
0237nobodyさん03/06/28 15:33ID:WE3G3OqE
で、症状なんですが
リクエストを
request.setCharacterEncoding("JISAutoDetect");
でエンコーディングしているのですが
�@�Aなどの記号が化けてしまいます。
0238nobodyさん03/06/28 15:38ID:???
>>237
そんな字を使う方が悪い。
0239nobodyさん03/06/28 15:41ID:WE3G3OqE
今わかってる事は、
<%@ page contentType="text/html; charset=Windows-31J" %>
とすれば
�@
は上手くいくけど
〜
は上手くいかなくなります。
0240nobodyさん03/06/28 15:49ID:WE3G3OqE
とりあえず、解決方法が一つわかったので
報告しておきますね。

まず、元ねたを書くと
http://www.moriwaki.net:8080/webapp/henkan2.jsp
このページを参考にしました。
で、簡潔にまとめると
windowsでは
これは使ってはいけなくて
request.setCharacterEncoding("JISAutoDetect");
以下のようにデコードする
text3 = new String(text.getBytes("ISO8859_1"), "MS932");
そして、
<%@ page contentType="text/html; charset=Windows-31J" %>
を使う

何かコメントあればよろしく
0241nobodyさん03/06/28 15:50ID:???
>>239
あのさあ、環境も書かない、どの段階でどこから入力した文字が化けるのかも書かないで何をわかれっていうの?
せめて
・Servletコンテナ
・JDK
・OS
・JSPの保存形式
・JDBCドライバ
・JDBC接続URLの文字コードオプション
これらの情報を書いて、
どこから入力した文字がどの段階で化けるのかを書け!
1.Servletがブラウザからリクエストを受け取った段階
2.データベースへ格納した段階(他のツールを使ってテーブル内を見たら化けた、とか)
3.データベースから取り出した段階
4.JSPで表示した段階
普通に考えても文字化けする段階はこのぐらいのパターンはあるだろ?
0242nobodyさん03/06/28 15:53ID:???
>>240
おまい、ばかか?
自分の環境に合わせて読み替えるぐらいしたらどうだ?
0243nobodyさん03/06/28 16:05ID:WE3G3OqE
はぁ、申し訳ないね。
MYSQLって書いたけど、あれは無視して。
なんとなく書いてしまっただけで、そっちは全部解決してるから。
まあ、どんな環境でも文字化けは発生するわけで
ついでに環境を限定した情報よりは、いろいろな環境における
情報が欲しかったので。
やってたのは、リクエストを正しくユニコードへ直すところ。
解決したのは
JDK1.4
TOMCAT4124
の時
0244nobodyさん03/06/28 16:06ID:???
>>240
んで、
> windowsでは
> これは使ってはいけなくて
> request.setCharacterEncoding("JISAutoDetect");
なんてどこに書いてあるの?
Tomcat4以上なら
それで充分OKなのだが。
0245nobodyさん03/06/28 16:06ID:???
何の情報も提供できないくせに
いきがってるバカが住み着いてるのは困ったもんだ
0246nobodyさん03/06/28 16:09ID:WE3G3OqE
>>244
それでやると化ける。
request.setCharacterEncoding("MS932");
にしても同じ事ね。
0247あぼーんNGNG
あぼーん
0248nobodyさん03/06/28 16:10ID:WE3G3OqE
といっても、ある文字だけが化けるんだけどね
024924403/06/28 16:13ID:???
この辺でも読んでおけ
http://www.ingrid.org/java/i18n/encoding/shift_jis.html
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
025024403/06/28 16:18ID:???
ついでにいうと、おまいらServet APIのソース読んだことあるのかと小一時間・・・
request,setCharacterEncoding(エンコード名)
の中でやっていることはまさに
new String(string.getBytes("8859_1"), エンコード名)
だったりするのだが?
0251nobodyさん03/06/28 16:21ID:WE3G3OqE
>>249
そこは既に読んでますが、
あまり役に立ちませんね。
ちゃんと読んだものだけ教えてくださいねw
0252nobodyさん03/06/28 16:23ID:WE3G3OqE
>new String(string.getBytes("8859_1"), エンコード名)
>だったりするのだが?
最初はそう思ってたんですが、違うという事がわかりました。
まあ、嘘だと思ったら自分でやってみてください。
あるいは信じなくてもいいですし。
0253nobodyさん03/06/28 16:33ID:WE3G3OqE
じゃあ、解決したので消えます
0254あぼーんNGNG
あぼーん
025524403/06/28 16:45ID:???
> windowsでは
> これは使ってはいけなくて
> request.setCharacterEncoding("JISAutoDetect");
なんてどこに書いてあるの?

これわかんないんだけど・・・
025624403/06/28 16:56ID:???
>>252
スマソ。俺には理解できん。
org.apache.catalina.util.RequestUtilのparseParametersメソッドで
やっていることは
new String(string.getBytes("8859_1"), エンコード名)
にしか見えんのだが?
解説きぼん
0257あぼーんNGNG
あぼーん
0258nobodyさん03/06/28 17:03ID:???
>>252
HttpServletはインターフェイスだから、
メソッドの実装はtomcat等のサーブレットコンテナが行なってるんでしょ
鯖によって処理方法の違いはあるんじゃないの?
025925803/06/28 17:03ID:???
まちがえた
×HttpServlet
○ServletRequest
026024403/06/28 17:22ID:???
>>258
いや、244の環境はTomcat4.1.24って言っているし・・・
俺が見たソースもTomcatの実装だし・・・・
0261nobodyさん03/07/01 21:20ID:???
HttpSessionのgetId
で取得できるセッションIDは実質英数字だと思うのですが、
APIにはコンテナの実装依存とあり
コンテナの情報なども見たのですが明確に書かれているものが
見つかりませんでした。

実際、セッションIDは英数字と考えてよいのでしょうか?
そのような記述がどこかにありましたらWEBでも本でも
よいので教えてください。コンテナは何でもかまいません。
0262nobodyさん03/07/01 21:49ID:???
>>261
分からないときは勝手に決め付けないで、
あらゆる可能性を考えるべきだと思うのだが。

英数字であって欲しい理由でもあるの?
0263nobodyさん03/07/01 21:53ID:???
>>262
そういうわけではありません。
はっきりとどこにも書いてなかったので
想像していました。

確かにあらゆる可能性を考えなければならないと思います。
実際、そのように仕様として決められていないのでしょうか?
026426203/07/01 22:57ID:???
実際にはCookieやURLに付加してクライアントを識別するんだから、
それらに使える文字ってことになるんでは。
0265261=26303/07/01 23:03ID:???
>>264
なるほど。
アドバイスありがとうございます。

仕様としては決められてはいないのですね。
0266nobodyさん03/07/02 15:25ID:ma8TNOqR
>>261-262
仕様が決まってなければ実装を見ればいいだろ。
中途半端な知識のまま放置しておく癖をつけるのは(・A・)イクナイ!

で、TomcatのソースによるとsessionIdの生成には
Long.toString (n, Character.MAX_RADIX)

を使用しているので、必然的に使われる文字は
0123456789abcdefghijklmnopqrstuvwxyz
('\u0030' 〜 '\u0039' , '\u0061' 〜 '\u007a')

に限定される。他のコンテナも似たような設計じゃないかと思われ。
自分で確認したい香具師は org.apache.tomcat.util.SessionIdGenerator を参照しろってことだ。
0267nobodyさん03/07/02 15:34ID:???
おっと、これはTomcat3.2.4の話ね。4.xとか他のコンテナはまだ見てない。
0268追加03/07/02 15:52ID:???
Tomcat4.1.24の場合:org.apache.catalina.session.ManagerBase#generateSessionId()

ライセンス貼るのも馬鹿らしいのでソース転載はしないけど、ダイジェスト値を取得した
byte列の各文字に対して & 0x000f かけて 0123456789ABCDEF に対応させてた。
3.x系とはちょっと方法も生成文字列も違うぽいな。まあ、英数字ではあるけど。
0269261=26303/07/02 21:02ID:???
>266-268
ありがとうございます。

そうですね。ソースを見ればよかったです。
0270nobodyさん03/07/02 22:12ID:???
おい、おまえらの力を結集させて、マカー御用達のフレームワーク、WebObjectで作った掲示板システム
http://web1.aaacafe.ne.jp/~tetsuyak/cgi-bin/WebObjects/VanquishBBS/index.html
↑を凌駕するモノをつくってください。どうか、おながいします!!
0271nobodyさん03/07/03 18:25ID:I2i4RQEc
apache+tomcatで、404エラーの場合に、JSPファイルに飛ばして、
そこで、アクセスされたURLを解析したいと思っています。
JSPファイルに飛ばすところまでは、httpd.confの設定で出来たのですが、
JSPファイルでアクセスされたURLを取得することができません。
req.getHeader("USER-AGENT");
req.getHeader("REFERER");
req.getRemoteAddr();
req.getPathInfo();
など、どれをやってもnullになってしまい、取得できません。
どのようにしたら取得できるでしょうか?
0272nobodyさん03/07/03 22:12ID:wYy/fb79
Stringの配列をStringに戻すスマートなやり方って
どんなのがありますか?
getParameterMapが値をStringの配列で返すみたいで、
Stringに戻すやり方がわからんのです。
配列をぐるぐる回して組み立てるくらいしか思いつかないのですが、
化けちゃって・・・
基礎すぎるのか、Web調べてもわかりませんでした。
0273nobodyさん03/07/04 09:27ID:???
>>271
ServletRequest#getAttribute()で、
"javax.servlet.error.request_uri" かな。

>>272
Jakartaになってしまうが、
http://jakarta.apache.org/commons/lang.html
StringUtils#join()
で出来るんじゃないかな。

質問の意味が、ちと分かってないかもしれんが。
027427103/07/04 10:24ID:???
>>273
ありがとうございます。
<%= request.getAttribute("javax.servlet.error.request_uri") %>
で表示させてみましたが、nullでした。
apache+tomcatではセットされないのでしょうか?
ちなみに、javax.servlet.error.status_codeもnullでした。
うーん。やり方が悪いんですかねぇ...
■ このスレッドは過去ログ倉庫に格納されています