トップページ⇒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
0455nobodyさん03/10/16 08:39ID:???
>>454
ない。不要。
0456nobodyさん03/10/16 19:47ID:???
むしろJAVA_HOMEだな
0457知恵を貸してください(つд`)03/10/17 07:41ID:WImn/Rzr
えと、今ペイントアプレットを作ってjspに乗せているんですが、どうにもjspに乗せると画像の保存ができなくなってしまう様で困っています。(アプレット単独動作ではできたモノです)
jspでは画像の保存はできない物なのでしょうか?
どなたか救いの手をお願いします〜。
0458nobodyさん03/10/17 09:30ID:???
Servletでイメージファイルの存在チェックをしたいと思うのですが
そのServletの動いているカレントディレクトリを取得するには
どのようにしたらよいでしょうか?
そのカレントディレクトリからイメージファイルのあるディレクトリを
参照したいのですが。
絶対パスはできれば避けたいと思います。
0459457:知恵を貸してください(つд`) 03/10/17 09:44ID:1hgqGCAt
ごめんなさい
ちょっと違ったみたいで「アプレットで画像の保存ができない」でした、、、
jsp以前の問題ですね、、、
なんとかアプレットで動かす方法ないものでしょうか?
救いの手をお願いします〜。
0460+++03/10/17 20:12ID:???
>>458
ServletContextクラスのメソッドgetRealPathです。
ServletContext sc = getServletContext();
path = sc.getRealPath("WEB-INF/data.xml"):
みたいな。
>指定された仮想パスに対応する実際のパスを格納した String を返します。

>>457
えーと、Appletがクライアント上でデータをセーブしたいという事なのかな?
もともとそれはセキュリティのために無理で、バージョンが上がってから
http://java.sun.com/products/plugin/1.2/docs/ja/security.html
ここに情報がありますね。でもIEのVMには効かないでしょうね。
他に方法があるかは知りません。一般的じゃないのであまりやった人はいないでしょう。
0461デフォルトの名無しさん03/10/17 22:27ID:M/bL+kzK
Servlet/JSPで掲示板作ってもあんまし意味ないですか?
0462うんこ03/10/19 15:15ID:???
意味がないわけでもないと思うけど...........................
趣味でやるんなら全然OKでしょ
0463nobodyさん03/10/19 22:54ID:???
レンタル鯖で使うことを考えなければいいんじゃないか。
Servlet/JSPの使えるレンタル鯖って少ないし。
0464+++03/10/20 12:10ID:???
自宅サーバ立てて外にさらす掲示板ならいいのでは。
0465デフォルトの名無しさん03/10/20 19:41ID:l+AFOoYj
>>464
どうしてですか?
Servlet/JSPの使えるレンタル鯖って少ないから?
というか掲示板程度ならPHPとかで十分かな〜なんて。
まあ試しで作ってみてるんですが
0466+++03/10/20 20:18ID:???
>>465
いや、そうレンタル鯖とか少ないので。
もちろん本格的なサイト構築とか出来るし、社内サーバでも活躍できると思う。
まあそういうのはEJBに行くパターンも多いでしょうが。
私はstrutsで自分ポータルサイトを作ってて、ライフワーク化しつつありますね。
外にはさらしてないんだけど。
0467nobodyさん03/10/20 20:21ID:???
俺はServletで初めて作ったものが掲示板だったけど(笑)
0468nobodyさん03/10/21 06:38ID:???
サーブレットは一台丸ごと使って目的別専用鯖を作るのに向いてるからな。
Perl で CGI のように切り身で売るのには向いてない。

アレなら ADSL に Dynamic DNS で無料で自鯖立てるっつー手もある
(できないプロバイダもあるが)。
0469デフォルトの名無しさん03/10/21 17:51ID:9MZmJRVK
>>466
>私はstrutsで自分ポータルサイトを作ってて、ライフワーク化しつつありますね。
>外にはさらしてないんだけど。

具体的にどんなですか?言える範囲で結構です。教えていただけませんか?
0470nobodyさん03/10/21 18:07ID:???
ライフワークだと( ´,_ゝ`)プッ
0471+++03/10/21 18:27ID:???
>>469
自分が見るサイトURLリンク管理、TODO、ニュース一覧、色一覧ツールとか。
複数台のマシンを使ってると、どのマシンからも使えるので便利。
TODOには追加機能がいっぱいたまってるんだけど・・。

>>470
うるへー。
しかし、これを作り始めたのは去年あたりだけど、やはり自分が必要な
ものを作るのはいいものだ。ホントに一生使うような気がする。
0472nobodyさん03/10/21 20:58ID:Y00rsQnK
>>471
俺CMSという感じだな。
土台にAvalonとかPhoenixを使っているとカコイイかも。
0473+++03/10/23 11:22ID:???
>>472
AvalonはApacheにあるというくらいしか知りませんね。面白そうだったら使ってみましょう。
便利なCMSは目指してるんだけど、なんちゅーか考えること多くて大変。
0474デフォルトの名無しさん03/10/24 02:51ID:???
こんにちは。じゃない、こんばんは。急いでいるので、マルチポストです。

サーブレット→JSPに移動するんですがエラーがでます。
java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:368)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
at IndexServlet.doPost(IndexServlet.java:107)

その部分は、以下です
String url = "/index.jsp";
request.setAttribute("errorMessage",errorMessage);
RequestDispatcher rd = getServletContext().getRequestDispatcher(url);
rd.forward(request, response);

これ以前には、responseオブジェクトをいじるようなソースコードは一切書いていません。
当方、サーブレットはまだ、根本まで理解していないので全然分かりません。

コミットしないようにするとかできるんでしょうか?っていうか、responseオブジェクトは一度も使っていないのに、
なにをセットしているんでしょうか?さっぱりわかりません。おねがいします。
0475デフォルトの名無しさん03/10/24 02:52ID:ehd7Auvi
しまった。下げてしまったので、あげます
0476名無しです03/10/24 12:36ID:DDXJEASb
JSPとMySQLを使ってWEBアプリを作っていますが、分からないことがあったので
教えてください。

データベースのテーブルの内容をフォームのアイテムリストの項目としたい
のですが、JSPのソースをどうすれば良いのでしょうか。

どうか力を貸してください。
後、これの参考になるサイトがあれば教えてください。
0477nobodyさん03/10/24 13:14ID:PLz4+qY/
>>474

ソースの一部だけでは判断できないですよ。
JSPの中も確認したほうが良いと思います。

>>476

JSPから直接JDBCを使用するのでしょうか?
それなら、ResultSet#getString("XXXX")で表示すればいいのでは
ないでしょうか。
0478nobodyさん03/10/26 15:29ID:8C6y7qFc
SessionBeanのメソッドで別のSessionBeanを生成できるんでしょうか?
0479nobodyさん03/10/26 15:55ID:???
>>478
SessionBeanを生成できるのはEJBコンテナだけ。
0480nobodyさん03/10/27 10:12ID:???
××先生の漫画が読めるのは○○○だけ。

みたいだなw
0481nobodyさん03/10/27 21:33ID:???
今、悩んでるのですが、サーブレットで、セッションを設定して、
JSPがそのセッションを取得する時、JavaBeenをしようしないと
いけないですか?
0482nobodyさん03/10/27 23:18ID:???
意味がわかんねえ。
基礎から勉強してこい。
0483nobodyさん03/10/27 23:29ID:???
>>481
requestオブジェクトにsetAttributeして渡せば?
048448103/10/27 23:44ID:???
>>483
レスTHX
でも、それって、JSP→JSPや、サーブレット→サーブレットだけじゃないのですか?
サーブレット→JSPも、それ出来るんですか?
0485nobodyさん03/10/27 23:49ID:???
>>484
でっきるよ
048648103/10/28 22:45ID:???
Sessionオブジェクトと、Requestオブジェクトの違いって、なんですか?
0487nobodyさん03/10/29 01:45ID:???
>>486
PIドキュメントに書いてある
0488nobodyさん03/10/29 01:45ID:???
API
048948103/10/29 01:55ID:???
>>488
thxです。っていうか、初心者的質問してすいません・・・
0490nobodyさん03/10/31 22:19ID:mtbGF6Sw
TOM☆CAT 4.1.24を使っています。
自作クラスライブラリを作って$CATALINA_HOME/shared/libに置きました。
その中からリフレクションAPIを使って、WEB-INF/classesの下に置いてある
クラスをロードしたいのですが、Sharedクラスローダとアプリケーションクラスローダの
守備範囲が違うためか、Class.forName()を使っても、ClassLoader.getSystemClassLoader().loadClass()を使っても、
ClassNotFoundExceptionが飛んでしまいます。
こういう場合のスマートな解決策ってどんな感じでしょうか?
0491+++03/10/31 23:45ID:???
>>490
conf/catalina.policyっていうのはいじってみました?
詳しくはないのでアレだけど。
0492+++03/11/01 00:24ID:???
追加だけど、ここのが参考になるかも。
http://www.zdnet.co.jp/developer/0308/24/dvn03.html
ReflectPermissionというのもあるよ。
0493nobodyさん03/11/01 04:04ID:???
>>490
何をしたいのかわからないけど、
WEB-INF/{classes,lib}内からロードしておいて
自作クラスライブラリとやらにロードしたクラスの
インスタンスなりClassクラスなりを渡してやるとかではダメですか?

ダメなら、何をしたいのかとダメな理由を具体的に書いてみるとか。
049449003/11/01 09:27ID:PnQ6V1Fi
レス有賀トン。
>>493
今まさに、その仰った通りの方法でしのいでますが…
やりたいことはJakarta DB SQL Commonsの簡略化版で、DB問合せ結果をBean
にマップして返すという処理です。処理自体は共通なのでSharedに置きたい、
がBeanクラスはWEB-INFの下に置きたい。かつ、アプリの中でBeanクラスを
渡すのではなくて、struts-configみたいなXMLファイルにクラスの名前を書いて
おいて、それを共通処理に読ませたい(ので、493で言われたクラスを渡す方法は使いたくない)。
>>492
Tomcatのクラスローダがああなってる理由は一応わかるので、セキュリティを
いじるのはあんまりやりたくないんでつ
0495nobodyさん03/11/02 14:30ID:XjVR5g7/
>>494
じゃぁ、クラスローダを渡してやるのは?

public class SharedClass {
  private ClassLoader classLoader;
  private Map beanNameMap;
  public SharedClass(ClassLoader cl, Map map) {
    classLoader = cl;
    beanNameMap = map;
  }
  public Object newInstance(String name) {
    String className = (String) beanNameMap.get(name);
    return Class.forName(className, true, classLoader).newInstance();
  }
}

public class MyServlet extends HttpServlet {
  private SharedClass sharedClass;
  public void init() throws ServletException {
    Map map = /* クラス名を書いておいたファイルから読み込む */
    sharedClass = new SharedClass(this.getClass().getClassLoader(), map);
  }
  void useSharedClass() {
    Object bean = sharedClass.newInstance("hogebean");
    ・・・
  }
}

でも、これで解決するような話なら
あまり悩むようなことではなさそうだし
私、何か勘違いしてるかな?
0496nobodyさん03/11/04 05:31ID:XuV+B38+
DataSourceを利用したコネクションプールで、エラーなど
起こして溜まってしまった、利用されていないコネクションを
強制的に返却なり捨てるなり、DataSourceそのものを初期化する
方法ってありませんか?
0497nobodyさん03/11/04 10:31ID:???
>>496
DataSourceの実装依存だから、そのコンテナなりライブラリなりのドキュメント嫁
0498nobodyさん03/11/10 17:37ID:beKsstU3
すいません、質問させて下さい。

>307 名前:nobodyさん 投稿日:2003/07/15(火) 17:07 ID:mN7Rw2O3
>apache 2.0.46にtomcat4.1.24を連携させて動かそうとしています。
>http://localhost/examples/でサンプルのディレクトリ一覧を表示するとこまでは行けたのですが、
>jsp、servletsのディレクトリの内のhtmlが404エラーが出て読み込みません。
>サンプルプログラムに直接アクセスしたりtomcat単体で動かすとちゃんと実行できますし、
>apacheと連携させないでtomcat単体で動かすとhtmlも表示できます。
>どうやったらapacheとの連携でhtmlファイルを読み込むことができますか?

これと同じ事が起こったんですけど、
コネクタはmod_jk2.soを使っていて310の書き込みを見てhttpd.confに、
Alias /examples "/usr/local/jakarta-tomcat/webapps/examples"
を書き加えましたが改善されません。
もちろんパスも間違えていません。

朝から検索しまくってるのですが全然見つかりません。
良い解決法はないでしょうか?
0499nobodyさん03/11/12 07:29ID:BQSDQCno
HTMLのアンカータグでGET送信する際に、日本語をパラメータで渡す場合に

<A href="sample.java?param1=<%= java.net.URLEncoder.encode("パラメータ1") %>">ここをクリック</A>

のような感じで、エンコードをしてからサーブレット(sample.java)に渡しているのですが、
サーブレット側でgetPrameterで受けとるときに、何も値が入ってません。
1バイト文字なら問題ないのですが。。。
0500nobodyさん03/11/12 09:39ID:???
>499
そのJSPから生成されたHTMLを調べないのはなぜだ?
0501nobodyさん03/11/12 14:00ID:???
めんどうくさいから
0502nobodyさん03/11/13 13:17ID:???
>>499
JDK 1.4ならURLEncoder.encode(String s, String enc) を使ってみたらどうだ?
0503nobodyさん03/11/14 00:15ID:/cKQoZtV
jspでphpのimagecopyresampled関数のように、画像伸縮+リサンプルするのに簡単な方法はありませんか?
0504nobodyさん03/11/14 08:17ID:???
>>503
無いと思う。
自分でImageIOとGraphics2Dを使った、同等機能を実現するBean作るのが良いと思うよう。
0505nobodyさん03/11/16 17:28ID:xjmY728Y
JSPでのcharsetの質問です。頭に書く
<%@ page language="java" contentType="text/html; charset=Windows-31J" %>
なんですが、auのHDML-HTMLコンバーターがWindows-31Jを認識しません。

<%@ page language="java" contentType="text/html; charset=Shift_JIS" %>
と書くと認識しますが、JDK1.4.1からShift_JISとWindows-31Jはコードのマッピングが
違うため、いくつか文字化けする文字があります。

みなさんどうしてますか? 気にしてない?
0506nobodyさん03/11/18 03:20ID:YWvRXQpi
サーブレットを勉強しようと思い、
http://takeoba.cool.ne.jp/moreJava/servletHello.htm
を試したところ、ステータスが404表示されたので
「あー、HelloWorldサーブレットの場所が分からないのね」って思い
web.xmlに次の文を追加したところ

<servlet>
 <servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
 <servlet-name>HelloWorld</servlet-name>
 <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

今度はエラーステータス500が表示されてしまいました。
他のサイトのサンプルをみてもとても簡単にサーブレットを起動
させているので自分の環境が悪いのかなぁって感じています。

同じようなことを経験された方がいましたら是非対応テクを教えてください。
また上記サンプルを試して(デプロイも含めて)無問題だという方ございましたら
お手数ですが挙手おねがいします。
もう一度自分の環境を洗ってみます。

ちなみにTomcat4.1.27、j2sdk1.4.2です。よろしくお願いします。
0507nobodyさん03/11/18 10:15ID:???
>>506
500は実行時エラーだ。
Tomcatのコンソールに何かエラーメッセージは出ていないのか?
0508nobodyさん03/11/18 10:20ID:???
>>506
教材が悪かったな。
そのページに書いてあることは間違いだらけだ。
だいたいそのままやってもコンパイルできないだろ…。

とりあえずtomcatのログを見てがんばってみるか、
それでもダメだと思ったら教材を替えれ。
0509506です その103/11/18 15:06ID:jQNQBxBO
レスありがとう!

サンプルがダメダメってことですか?だとしたらとてもショックです。
夕方から始めてその時間まで粘ってたんです。
だけど他のサイトとか見ても大体同じようなことが記述されているんですよね。
ちなみにコンパイルは通しました(開発環境はエクリプスです)。
508さんはおそらくservlet.jar以外のクラスパスのことをおっしゃてるんですよね。
またTomcatに表示されるエラーですが、長いので抜粋しますと、

type:
  Exception repor

descriptiont:
  The server encountered an internal error () that
  prevented it from fulfilling this request.

exception:
  java.lang.ClassCastException
      :
      :

てな感じです。何か深いとこで例外が発生してます?
0510506です その203/11/18 15:07ID:jQNQBxBO
web.xmlに<servlet>タグを追加したけど、Tomcat Webアプリケーションマネージャに
HelloWorldが表示されないのは、何か情報が足りないんですかね?

そこでお伺いしたいのですが、例えばサーブレットを作成してできたclassファイルを
CATALINA_HOME%\webapps\examples\web-inf\classes\の直下にデプロイする
ということは技術的に問題はないですよね?

またweb.xmlに<servlet>、<servlet-mapping>を記述する必要はあるのでしょうか?
つかり本当は記述すべきだが、特に必要なしってこともあるのかということです。
(サイトによってはそこまで言及していないところもあったですから・・・)

私も再度チャレンジしてみます。
すいませんがまた気が向いたら何か情報を書き込んでください。
0511nobodyさん03/11/18 22:21ID:???
>>505
気にしてなかったので気にすることにします…
agentでレスポンス変えたらどうっすか。
0512nobodyさん03/11/18 23:10ID:???
>>511 DoCoMoの一部の端末も実はWindows-31Jわからないのです・・
agent多すぎてなんだかな。
レスポンスを変えると、JSPソース埋め込みの、「�@」みたいな
いわゆる98文字がおかしなことに。
0513nobodyさん03/11/20 01:17ID:jMJIcLvQ
すいません。
mod_webapp.soかmod_jk.soのLinux版バイナリを手に入れたいのですが、どうすればいいでしょうか?
jakarta.apache.orgから探せません・・・_| ̄|○
0514nobodyさん03/11/20 04:55ID:???
最新ソースを自分でビルドするほうが良いと思うけど?
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/v2.0.1/bin/linux/i386/
0515nobodyさん03/11/20 23:41ID:jMJIcLvQ
>>514
サンクス。
もっともなのでビルドしますた。
configureの引き数間違えたりして手間取りましたが。
0516nobodyさん03/11/21 16:50ID:YzFZUN0E
>>506
もう一回まっさらな状態からやり直せばできるんじゃん。
きっと無駄なことをやりすぎでは (´Д`;)

>>508
漏れはコンパイルできたけど・・・。漏れの環境がおかしいのか (´Д`;)
0517nobodyさん03/11/22 01:14ID:gGrGrQPO
>>505
Windows-31Jではなくて、MS932にすると、認識されます。
0518nobodyさん03/11/23 21:45ID:???
>>517 おー、そうなんですか。さんくす。
0519nobodyさん03/11/27 02:08ID:aFey5bat
JSP/Servlet を最近始めたものですが
みなさんXSS対策とかどうしてますか?

HTMLタグを除去するにも
自分で1から書かないと逝けないのですか?(;´Д`)
0520nobodyさん03/11/27 02:20ID:???
>>519
世の中にはそういう機能を持ったカスタムタグなんぞが存在する
0521nobodyさん03/11/27 06:58ID:???
>>519
http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/StringEscapeUtils.html
こういうのもあるよ
0522nobodyさん03/11/28 00:52ID:???
>>519 一度bean書いちゃえば、以降はそれ使えばいいので。
DB用のエスケープとか、文字数制限もやりたいとかやると
結局自分で書いたほうが早い。
052351903/11/28 22:03ID:???
レスサンクスです。

HTML関連だけならcommonsだけでも十分ぽです
早速使ってみます(=゚ω゚)ノ

0524nobodyさん03/11/30 20:19ID:???
JSP/Servletとで実装されている、DBをウェブから
操作できるツールってありませんか?
アプリの裏管理のとして組み込みたいのですが。
0525nobodyさん03/11/30 21:41ID:???
自分で組んだ方が早そうだ。
0526nobodyさん03/12/02 16:56ID:bqzh3QZl
JSP/ServletとSQLを使って生産管理(PP)システム
組みたいんでつけど、サンプルソース付きの本とか知らないでつか?
サイトでもいいんでつけど。
0527nobodyさん03/12/02 22:48ID:???
通常 localhost/foo/ とか localhost/bar/ とかいうようにデプロイするけど、サブフォルダ化して、
localhost/hoge/foo/ , localhost/hoge/bar/ とかいうようにデプロイってできるの?
0528nobodyさん03/12/02 23:43ID:???
>527
今日Tomcatでやったらできた。
<Context path="/hoge/foo" docBase="どこか/foo" .... />
0529nobodyさん03/12/03 23:57ID:???
>>526
最終目標はわかった。
で、どの部分のサンプルが欲しいんだ?
0530nobodyさん03/12/04 22:11ID:???
>528
さんくす。デプロイ自体は問題なくできますね。
けどwarの展開がなんかうまくいかん。
053152603/12/05 10:50ID:nKIx4TdK
>529
レスありがトン。
所要量展開(MRP)のサンプルが、狂おしい程欲しい。
053252603/12/05 12:45ID:???
>> 531
この本に「第9章 実用アプリケーションの作成 9-3 スケジュール管理:基本機能」
ってのがあるみたいだぞ?オレは読んだことないが。
http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4798006041/contents/ref=cm_toc_more/249-9631441-2769117
053352603/12/06 11:46ID:???
>>532
鯵スかっ!?
ありがとうございます。
0534nobodyさん03/12/09 19:35ID:???
JSP初心者です。
JSPカスタムタグに
<rtexprvalue>要素がありますが、
これはどう発音するのですか?

  るてくすぷるばりゅー?
0535nobodyさん03/12/09 21:32ID:???
>>534
発音は知らんが、おそらくRuntime Express(ion) Valueの略だろうから
そんな感じに呼んどけ。
0536nobodyさん03/12/10 00:48ID:???
>>535
さんくす。
0537nobodyさん03/12/12 00:48ID:???
今さっき、直列化(Serializable)の技を知った。(w

これはCGIの機能と同じと思ってさしつかえないのでしょうか?
(CGIはファイルIOでデータのやり取りをする程度の知識しかしらない。)

SAXを用いるより軽いのでしょうか?

質問していて恐縮ですが、もう寝させていただきます。返事は後日に。
0538nobodyさん03/12/12 21:18ID:???
>>537
はい。ここで問題。
1)直列化とは何をどうするものなのでしょう?
2)CGIとは何でしょう? ファイルI/OしないCGIはあるのでしょうか?
3)SAXとは何でしょう? csvとかバイナリとか読めるのでしょうか?
0539nobodyさん03/12/12 21:51ID:???
javaの超初心者です。
jsp内にsession.setAttribute("hoge", "hoge");という記述をし<jsp:forward page="hoge.jsp" />で
ページを移動したあと、にsession.getAttribute("hoge");で取得した値がnullを返します。
最初のページと次のページでsession.getId()の値が違うため別セッションになっているような気がします。
ちなみにこの現象はIEでのみ発生し, operaやnetscape等では発生しません。
当方の知識ではさっぱりこの現象が理解できません。どなたかお知恵を貸していただけないでしょうか?
環境はRedHat7.2, apache1.3.20-16, tomcat-4.1.29, mod_webapp(4.1.12)になります。
よろしくお願いいたします。



0540nobodyさん03/12/13 04:18ID:???
普通はあり得ないよな。IEのバージョンは?
Apache通さないでTomcatに直接アクセスした場合も発生する?
0541nobodyさん03/12/13 10:53ID:???
>540さん レスありがとうございます。
apacheを通さないでも同じ現象になりました。
クライアントの環境ですが、Win2K+IE5.5 WinXP+IE6.0で現象を確認しております。
NT4+IE6.0では発生しませんでした。
それとWin2K+tomcat-4.1.29の組合せでは現象が出ませんでした。
0542nobodyさん03/12/13 12:09ID:???
>539です。
別の機械で同じ環境を用意すると動作しました。
大変お騒がせいたしました。申し訳ありません。
0543nobodyさん03/12/13 15:10ID:???
>>538
わからないので質問したのに...

自分で調べて勉強しろということですね。

了解しました。お騒がせしました。
054453803/12/13 21:05ID:???
>>543
いや、自分で調べろって言いたい前に、質問が質問になってないのよ。

例えばここが野球スレだったとしてさ、

今さっき、ヒットエンドランの技を知った。(w
これは六甲おろしと同じと思ってさしつかえないのでしょうか?
(六甲おろしはアルプススタンドでシャウトをする程度の知識しかしらない。)
オリックスでバントするより強いのでしょうか?
質問していて恐縮ですが、もう寝させていただきます。返事は後日に。

というような感じで、俺にどう答えろと?
無視して欲しかったんなら謝る。
0545nobodyさん03/12/15 22:32ID:xeYZT3ZQ
質問です。

sessionに割り当てられる識別子は、
「識別子は実装依存であり、Servletコンテナによって割り当てられます。 」
と、APIドキュメントに記述されてますが、
tomcatではこの識別子のサイズを変更する事は可能でしょうか?

tomcat4,1,29で割り当てられる識別子が32バイトと長い為、
少し短くしたいと思うのですが・・・。
0546nobodyさん03/12/16 12:05ID:???
>>545
ソースを見るといいよ
054754503/12/17 00:53ID:???
>>546

一応報告でつ。
時間かかりましたけど、ソースを探してるうちにそれらしき箇所を発見しました。

/src/share/org/apache/catalina/session/ManagerBase.java 内で、
SESSION_ID_BYTES という変数で、jsessionidの文字列の長さを指定してますた。

明日変更して実験してみまつ。
Tomcatの動作に問題無ければいいんだけど・・・。
054854503/12/17 14:30ID:???
結果報告でつ。

sessionidは、

1) SESSION_ID_BYTES で指定されたサイズのバイト配列に乱数をセット。
2) この乱数のMD5値を取得後、MD5値を1バイト毎にchar型の英数字2文字に変換

のように作成されていますた。
MD5が128ビットである為、SESSION_ID_BYTES の値を変えても無駄ですた。

結局 2) でMD5から英数字に変えるとこをchar型の英数字1文字にさせる事で
sessionidを16文字にできますた。

ざっとテストしたところ、問題なさそうです。

・補足
なぜsessionidを短くしたかったかというと、携帯向けサイトでsession管理をさせたい為、
デフォルトの32文字では長すぎて、表示されるページのサイズが大きくなる為です。
0549nobodyさん03/12/18 01:01ID:???
>>548
報告オツ
0550nobodyさん03/12/18 01:06ID:???
TOMCATなんか使ってるってことは商用じゃないんだよねえ。
だったらResin使えば?SessionIDもっと短いよ。
0551nobodyさん03/12/18 01:11ID:???
>>550
商用でTomcat使っていますが、何か?
0552nobodyさん03/12/18 03:03ID:???
>>551 Tomcat落ちない?
Resinのほうが速いし落ちなくていいと思うよ。商用でも500ドルだし。
私用ならただだし。
0553nobodyさん03/12/18 03:12ID:???
>>552
7万ページビュー/日のサイトで使ってるけど落ちないよ。
Resinは一見速く見えるけど、マルチスレッドの並行処理をさせると
とたんに激遅になる。Tomcatのほうがこの辺はちゃんと作ってある印象。
0554nobodyさん03/12/18 14:01ID:???
説得力で553の勝ち
■ このスレッドは過去ログ倉庫に格納されています