トップページ⇒tech
983コメント352KB

JavaサーブレットQ&A LV2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
サーブレットに関する疑問・質問はこちらで。
0653デフォルトの名無しさんNGNG
絶対既出だと思いますけど、アフォなんで許してください。

トムキャットやJRUNでサーブレット&JSPを動かすらしいですね。

アパッチ好きは、それらと連動させればいいそうですが、アパッチだけで動かすのは無理ですか?

アフォでごめんなさい・・・
0654デフォルトの名無しさんNGNG
>>642
Context単位でClassLoader持ってるからですよね?

>>652
あそこのは本当に汚いね。最初のころは何がなにやらわからなかったよ。
でも、まめに探し物してるとあれでもいいやって思えてくる(藁
単に慣れてしまっただけなんだろうけどね・・・・
0655デフォルトの名無しさんNGNG
俺はいまだに JServ が ClassLoader 分けてくれるか疑問。
バグフィクスはしているようだが JSDK 2.0 の頃の代物だぞ。

>>653
Apache だけで動かすのは無理。質問の意図が手軽さかリソース
消費量か知らんけど、手軽さならどのサーブレットコンテナも
インストーラが付いている。リソース消費量は Tomcat が常駐
3〜10MB くらい、その他の奴はデフォルトでいろいろ起動する
のでもうちょっと必要 (使ってなければほとんどスワップアウト
されると思うが)。まぁサーブレットコンテナもインストール後に
設定で使用最大メモリ量を調整すれば良い事だが。
0656654NGNG
>>655
THX!!
わざわざ、意図まで汲み取ってくれてありがとう。手軽かどうかを知りたかったのです。

サーブレットコンテナつーのは、アパッチとサーブレットの間をとりもってくれるものだと覚えてたんだけど、あってる?
Jserv?とかあったな、そういや。

とにかく、サーブレットコンテナ入れれば動くわけなので、
入れてみよう。ありがとね。
0657653NGNG
↑は、653が書きました。
あぁ、間違えた・・・

回線切って、寝ます

0658デフォルトの名無しさんNGNG
Weblogicのはなしは出ないな(w

日本でWeblogic6なんか使ってる
とこはほとんど無いってことか。
0659デフォルトの名無しさんNGNG
>>642
いやだからね、その機能の実装が必須ならわかるよ?
じゃそのコードがほかのサーブレットエンジンで間違いなく同じように動くって保証があんたにはできんの?
0660デフォルトの名無しさんNGNG
>>658
つーか、ちょっと試しに使ってみようってのには向かないからだろ。
0661デフォルトの名無しさんNGNG
>>660
そなの? 詳細きぼんぬ。
0662デフォルトの名無しさんNGNG
>>660
バーカ
0663デフォルトの名無しさんNGNG
>>655
一応Servlet Zone(Context)単位でClassLoaderは分けてるよ。
0664デフォルトの名無しさんNGNG
weblogicってデフォルトインストールでは[weblogic/myserver/public_html]
がドキュメントルートになるけど、[weblogic/任意のフォルダ/public_html]を
ドキュメントルートにしたいけど、どこの設定をいじれば良いんですか?
インストールからやり直さないと出来ないのでしょうか?
0665デフォルトの名無しさんNGNG
>>664
http://www.beasys.co.jp/application/BeaPortal?dest=%2Fportals%2FBeaPortal%2Fevamenu.jsp&id=1
マニュアルあるみたいだから調べてみたら?
0666デフォルトの名無しさんNGNG
なんか、会社の先輩とプロジェクトを遂行するっていってたやつ
どうなったの?
0667デフォルトの名無しさんNGNG
>>666
ほじくりかえすなYO!
0668デフォルトの名無しさんNGNG
オラクルのAPサーバ使っている人はいないの?
0669デフォルトの名無しさんNGNG
tomcatのソースコードを見てて、
HttpServerRequestFacadeという名前のクラス
があるのですが、「Facade」とはどういう意味
なのでしょうか?
0670デフォルトの名無しさんNGNG
でざいんぱたんの本を読め
0671デフォルトの名無しさんNGNG
>>669
ガンマ本によれば「サブシステム内に存在する複数のインタフェース
に1つの統一インタフェースを与える。Facade パターンはサブシス
テムの利用を容易にするための高レベルインタフェースを定義する。」
だそうな。まぁごちゃごちゃ/こまごましたインターフェースを簡素化
したラッパーという意味かな。
0672デフォルトの名無しさんNGNG
Facade
フランス語で「建物の正面。また,建物の外観を構成する主要な立面をもいう。」
たぶん、デザインパターンに出てくるFACADEの意味だと思う。
0673669NGNG
>>670-672
有難うございます。デザインパターン
の本読んでみます。
0674デフォルトの名無しさんNGNG
「ふぁさーど」と読むようだぞ。
0675デフォルトの名無しさんNGNG
バイオ・・・?
0676デフォルトの名無しさんNGNG
グレイマウザー・・・?
067788NGNG
ttp://www.42ch.net/UploaderSmall/source/1022520216.dat
ttp://www.42ch.net/UploaderSmall/source/1022520586.dat
ttp://www.42ch.net/UploaderSmall/source/1022520768.dat
ttp://www.42ch.net/UploaderSmall/source/1022521101.dat
0678デフォルトの名無しさんNGNG
>>676
ファファード…?
0679デフォルトの名無しさんNGNG
>>678
正解。
0680デフォルトの名無しさんNGNG
もれずに、にこにこ・・・
0681デフォルトの名無しさんNGNG
パンパーチュ!?
0682デフォルトの名無しさんNGNG
>>681
正解!
0683デフォルトの名無しさんNGNG
afo?
0684デフォルトの名無しさんNGNG
>>683
正解!
0685デフォルトの名無しさんNGNG
JSP書くのに適した、
またはみなさんがつかってるエディタor開発環境を
おしえておくれ
板違いだったらすまん
0686デフォルトの名無しさんNGNG
>>685
デザインフェーズは macromedia UltraDeveloper。
コーディングフェーズは秀丸+UltoraDeveloper が半々くらい。
とりあえずホームページビルダーは野暮ったすぎて嫌い (デザインも生成 HTML も画像も)。
0687デフォルトの名無しさんNGNG
>686

JSPのなかに処理が鬼のようにつまっている状態なのですが、
ステップ実行とかできるソフト(できればフリー)あります?
ないっすよねぇ・・・・?
0688デフォルトの名無しさんNGNG
JSPのステップ実行か…
0689デフォルトの名無しさんNGNG
>>687
あーんと、そういうのなら俺は Visual Age for Java 使うかな (IBM 関連なもんで; お奨めはできんが)。
フリーの Eclipse って JSP のステップ実行できるプラグインあったっけ?
0690デフォルトの名無しさんNGNG
>688
見てると泣けてくるソースなんだよ・・・・
0691デフォルトの名無しさんNGNG
>>687
そういった処理はサーブレットでヤレ。
JSPはページ出力くらいに考えれ。

オレはJBuilderPro使ってるが、689もいってるようにEclipseが
いいかも。
0692デフォルトの名無しさんNGNG
>>690
J-Builderを試用してみれば?
0693デフォルトの名無しさんNGNG
質問。

server side JAVAで「beanを使う」って時の beanなんだけと、これって例えば BDKに付属してくる
jarアーカイブされた beanとかと同様 jarアーカイブにするものなの?
それとも classファイルのまま鯖の中に置いて「気分的に bean扱い」で beanと呼ぶものなの?
それから server side JAVAで使う用の beanを作る時に絶対継承/インプリしなきゃならないクラスってあるの?

以上。(教えてくんでごめん。)
0694デフォルトの名無しさんNGNG
>>693
大抵は「気分的 Bean」が正解。
普通は Serializable を implement するが (しなくても良いけど)
この意味をよく考えれよ。
0695693NGNG
サンクス>694。言われて考えてみた。
Serializeする際の読み出し元or書き込み先が
アーカイブされたファイルじゃまずいだろって理解で
いーのだろうか?
0696デフォルトの名無しさんNGNG
>>693
俺も同じ質問仕様としてこのスレ来たんだ。
わっかりにくいよなー。
何がびーんだ馬鹿野郎、普通のクラスじゃねーか、とか思ったりして。
だいたいさ、JavaBeansっていうフレームワークがあるのに、
そうじゃないものをJavaBeanって呼ぶ神経がわからねえよ。

あー今まで理解できなかったことがこれでやっとわかったズラ。
Bean=JSPサーバ上に置く単なるクラス。これでホントに良いのかな?
0697デフォルトの名無しさんNGNG
EJBが謎
0698デフォルトの名無しさんNGNG
>Bean=JSPサーバ上に置く単なるクラス。これでホントに良いのかな?
良くない。GUIエディタのパーツとかもbeanでつくるしね。
0699696NGNG
>>698

いや、だからさ、そのbeanとJSPで言われるbeanってのは
別物でしょ? ってことを言いたいんだけど。
GUIパーツのJavaBeansは、こー作んなきゃダメ、っていう
規定があるじゃない。プロパティ持たないとダメよ、とか。
JSPでいうbeanっていうのはそういうことしなくていいんでしょ?
単なる普通のクラスをbeanって呼んでるだけでしょ?って
こと。
違うのかな。
0700693NGNG
同士発見。>696
漏れも最初いわゆる GUIベースでの beanの説明を見て、少なくともそれと
同等の実装をサーバーサイドでもしなきゃーならんのかなーと思ってた。
でもサーバーサイドの構築経験者が beanと呼称するものを classファイルのまま
鯖に置いてたんで、それで混乱して質問してみた次第。

ただ GUIベースで使う beanと呼ばれるものも
・必ずしも jarに固めなくてもいい
・get**、set**で private変数にアクセスするようにする
つー基本路線では「同じモノ」なのかもとか思ってみたりした。
しかし異なる目的にある機能を提供するものを同じ名称で呼ぶのは
正直紛らわしいと思う。それじゃM$と変わらん。
0701696NGNG
>>700

そうそう、さらに言えばEJB("Enterprise" JavaBeans)ってのも
あるじゃん。これもまた別もんだよね?
「EJBにはセッションビーンとエンティティビーンがあってうんぬん」
とかさ。俺は最初、JSPの説明のところで出てきているJavaBeans
ってのはEJBのことだと思ってた。
EJBは面倒くさそうだし(どの説明読んでもろくなのがない)、
かー、EJBわかんねえとJSP書けねえのか、しんどいなあ、とか
思ってた。だったらJSPの説明の前にEJB説明しろよタコ、とか。
beanなんて変な名前つけないで、クラスって言えよクラスって。
単なる普通のクラスじゃねーかボケ、と今は怒りでいっぱいです。
0702デフォルトの名無しさんNGNG
>>701
勝手に誤解してキレてんなよ(w
0703696NGNG
誤解するような名前つけてんじゃねえ、って切れてるんだろがw
0704デフォルトの名無しさんNGNG
使い方が違うじゃん(w
0705デフォルトの名無しさんNGNG
あんた、名前だけでものを判断してるだろ?
0706デフォルトの名無しさんNGNG
>>701

今は怒りでいっぱいですか?
それじゃ Java やめれば?
誰も文句いいませんよ。
0707デフォルトの名無しさんNGNG
下らんネタでいちいち煽るな。
0708デフォルトの名無しさんNGNG
なんかバカが集まってきたな
0709デフォルトの名無しさんNGNG
下層階級はこういうときにしか参加できねえからな。
0710デフォルトの名無しさんNGNG
>>664
web.xmlを使えば可能。
web.xmlは以前はweblogic.propertiesにパス等の設定していたが、
最近のバージョンのは変わったはず。確認要。
0711デフォルトの名無しさんNGNG
しかし、商用AP鯖ってWebSphereとWebLogic以外はあまり話を聞かないね。
Oracleのなんかもいい感じに思うし、無償AP鯖のHPもどうかな、と思うのだけど。
0712質問です。NGNG
サーブレット勉強しようと思ってます。で、どうせならJbuilder
使ってやろうと思っているので「Jbuilderサーブレット開発」
という本を買おうと思ってます。でも、私のJはパーソナルなのです。
なんかサーブレット機能をやるにはエンタープライズとかじゃないと
無理っぽい気がするのですが、どうなんでしょうか?
0713デフォルトの名無しさんNGNG
>>712
問題なし。
tomcat関連jarを全部ライブラリで指定して読み込んで、BootStrapとかなんだかのクラスを実行してやればデバッグとかもできる。
JSPのステップ実行は多分無理。
でもサーブレットの勉強なら基本的にいらんでしょ。
0714Java&servlet初心者NGNG
サーブレットでGraphicsを扱う事ってできますか?

リクエストに応じて動的にサーブレットで画像を生成して、jpg等でサーバーに置いて、
htmlから参照させて表示させるようにしたいのです。
0715デフォルトの名無しさんNGNG
名前とパスワード、メールアドレスの登録をするWeb

register.jsp(HTMLフォームがある)
1↓
RegisterServletでrequest.getParameter〜 4→ registerOK.jsp or registerFailure.jsp
2↓ 3↑
RegisterBeans(データベースにアクセス)

んで、
名前、パス、メールがヌルだったら、エラー
名前が既に登録されていたら、エラー
ってどうやんの? 

今は、RegisterBeansで、
if else if else ,,,で判定して、
RegisterErrorというenumクラスのエラーをRegisterBeansが持ってるのですが。
(Name_is_null...Mail_is_null...etc)

これらは例外にするべき?
jsp,servlet,beansの分業というか、Java例外の使いっぷりとかよくわかりません。
0716デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数:105420人 発行日:2002/05/030
どもども、風薫る5月ワキガも香るひろゆきですー。

今日はどうしても報告したいことがあるですよー。
東京地裁の顔になりつつある今日この頃ですが、最近裁判官がおいらを露骨に馬鹿にするですよー。
裁判を傍聴している人は既にご存知でしょうが、ついこの前は、おいらのことを
「あなたは売春クラブの経営者みたいな言い訳をしますね」
なんて言いやがったですよー。
どうやら売春クラブの経営者は警察に捕まると必ず
「出会いの場を提供しただけだ」
と、見苦しい言い訳をするらしいですよー。。。
そんなセコイ奴等とおいらを並べて語るとは悔しいけど、ストライクですー。。。えぇえぇ、、、

確かにおいらは企業や公人の誹謗中傷を禁止していませんし、削除もしません。
その上、「発信元は判らない」を看板とし、悪質な書き込みをし易い環境を提供し、いやむしろそれを売りにしようと目論んでいますが、そんなことはおいらのクチビルの厚さとは関係ないですよー。。。

ところで、中央大卒のおいらの同級生達がおいらのことを「宅八郎みたいな奴」と罵っているって本当ですか?。。。うぅうぅ、、、

んじゃ!
0717デフォルトの名無しさんNGNG
>>714
できるよ
0718デフォルトの名無しさんNGNG
>>714
Jimi か JAI だろうな。
0719デフォルトの名無しさんNGNG
>>715
Servletで、
request.setAttribute("REGISTER_BEAN", registerbean);

JSPで
request.getAttribute("REGISTER_BEAN");

じゃだめなのか?
0720デフォルトの名無しさんNGNG
>>718
jimiって何? jini のこと?
jiniもJAIもServletで動的に画像を作成するのに必要ない。

>>714
そのServletを使うOSは何ですか?
Linuxで、Xが立ちあがってない環境で、そのServletを使っての・・・
書くの面倒くさい。 自分で調べてください。 

0721デフォルトの名無しさんNGNG
>720 シッタカ君ハッケソ。JIMIくらい検索しる。
0722タロNGNG
皆さんの知識をお借りしたく質問させていただきます。

サーブレット上で複数のJSPから同時に利用される、
Singletonのクラス、Sを作成しました。
このSは、コンストラクタをprivate宣言し
インスタンスを取得するための関数(getInstance())を
synchronize宣言をしています。

このクラスSを利用する、use.jspを作成しましたが、
ひとつ、問題にぶつかっています。

これで、クラスSはサーブレット内で唯一のインスタンスと
なると考えていましたが、僕の知識不足のようで、
クラスSのインスタンスが無い状態で(あっても?)、
use.jspを同時に複数呼び出しますと、synchronize宣言してあるはずの
getInstance()が複数呼び出されてしまいます。

クラスSのインスタンスを、複数のJSPから同時に
利用したいと考えていますが、
初期化は一度だけ行いたいと考えています。

サーブレット上で、グローバルなSingletonクラスを
作成する際に、参考になるWebページなどは無いでしょうか、

よろしくお願いします。
0723デフォルトの名無しさんNGNG
>>722
そりゃgetInstance()は何度も呼ばれるだろうが、
2度目以降に初期化しないようにコード書くだけじゃないの?

static boolean first = false
public synchronized S getInstance(){
  if(first){
    // 初期化
  } else {
    return this;
  }
}
0724デフォルトの名無しさんNGNG
>>723
Singleton って何か知ってる?
0725デフォルトの名無しさんNGNG
724 に Singleton って何なのか、聞いてみたいな。
0726デフォルトの名無しさんNGNG
private static S hoge = null;
public static synchronized S getInstance(){
  if(hoge != null)  return hoge;
  hoge = new S();
  // hoge の初期化処理等
  return hoge;
}
0727デフォルトの名無しさんNGNG
厳密にSingletonやろうとするなら、

private final static S hoge = new S();
public static synchronized S getInstance(){
  return hoge;
}

なんだろうけどね。

けど、実際書くなら自分も>>726のやり方かな。
0728714NGNG
>>717,718,720
レスありがとうございます
とりあえず、できるという事で安心
サーバーはLinux+JRunを検討中
ちょっとだけ調べたけど、 なんか、Linuxだといろいろめんどそうね

JAIとかjimiはまだ詳しく調べてないですけど、これらがないと、画像処理はできないの?
動的に画像を生成、と書いたけど、やりたい事は、
CreateImageや、文字描画くらいです。
Graphicsオブジェクトを用意してそこに描画するのは
サーブレットではできないのかな
0729デフォルトの名無しさんNGNG
>>727
遅延戦略ってしってるか?
クラスロードされても、実際に要求がくるまでインスタンスを
作らないようにして、無駄な処理を省くんだよ。
>>726のはそれ。>>727のは、クラスがロードされてしまうと
実際に使おうが使うまいがSのインスタンスが出来ちまう。
普通は>>726のように書く。>>726の場合は、hogeの初期化は
コンストラクタでやればいいと思うが。
0730デフォルトの名無しさんNGNG
>>723
getInstance()はstaticでないと呼び出せないだろ。
コンストラクタはprivateであることが条件なんだから。
0731デフォルトの名無しさんNGNG
>>729
Lazy Instantiation
0732デフォルトの名無しさんNGNG
>>728
そりゃ、イメージの生成はサーブレットでもいくらでもできるが、
それをどこに表示するかだな。
サーブレットは普通のクラスだから、必要なパッケージをimportすれば
画像処理(加工とか)はできるけど、表示させるのはアプレットなどに任せればいい。
0733デフォルトの名無しさんNGNG
>>727

このようなクラスは、実は単に全てのフィールド/オペレーションをstaticにしたものを使っても同じです。

Singletonパターンが全てをstaticにしたクラスに対して勝れているのは、
クラスではなくオブジェクトとして唯一であるため、オブジェクト個数を一つ以外に制限することができる点と、
うまくすればサブクラスを返させるようにしてポリモーフィズムによる拡張が可能という点です。

しかしprivateコンストラクタを用いてしまうと、サブクラスのインスタンス化が不可能になってしまうため、この効果が得られません。
また、C++ではprotectedコンストラクタにすることでサブクラスのインスタンス化を可能にしていますが、
Javaのprotectedはパッケージ内の他のクラスからもアクセス可能なため、この目的に沿いません。
(パッケージ管理をちゃんと行えていればそれでもよいのですが)

従って、Javaでは素直にSingletonを実装することはできないということになります。

Singletonの継承を捨てるなら話は別ですが、それならば、全てをstaticにすればよい話です。
まあ、全てstaticは見苦しいからあまりしないとは思いますが。

Javaで完全なSingletonパターンを実現するためには、interfaceと内部クラスを用いたトリッキーな方法を使わざるをえません。
0734デフォルトの名無しさんNGNG
>>733
説明的かつ意味の無い文章だな。多態化を使いたいなら Factory 使って
Singleton にしとけば良かろう。
0735デフォルトの名無しさんNGNG
>>734
そーゆーことは
http://www.sk-jp.com/java/pattern/singleton.html
の作者に言ってくれ。
0736デフォルトの名無しさんNGNG
文字になってるからって鵜呑みにすんなよ... (;´д`)
0737デフォルトの名無しさんNGNG
>>722

何のServlet Container使ってるんですか?
もしかしてTOMCAT? なら無理です。
ど〜してかと言うと、秘密です。
0738デフォルトの名無しさんNGNG
>>737
オートリロードの件? WebShere もオートリロードするとクラスローダーが
入れ替わって複数インスタンスできちゃうんだよね。莫迦が Singleton の
スレッドにサーバソケット開かせるような設計するともう大変。二つ目以降
のスレッドは起動失敗。せっかくのオートリロード機能も使えず、ちょっと
修正するたびにプロセスごとリスタート、ってね。今の SMβC だけど。
0739デフォルトの名無しさんNGNG
質問。
tomcatに DBとのコネクションプーリングの機能って存在してる?
あと、用語的に

DBコネクションプーリング≒データソース

でいいのだろうか? それともデータソースは
ネーミングサービスを使う事が前提の別もの?

以上よろしこ。
0740デフォルトの名無しさんNGNG
>>739
あったと思うが使ったことがない。
普通に会話してるときは「DBコネクションプーリング≒データソース」
であってる。細かく言えば、コネクションプーリングは「しくみ」と
いうか「方法」で、データソースは「概念」「クラス」等。
0741737NGNG
>>738
全然違う。

738さんが言っているのは、それでClassCastExceptionとかにもなっちゃうやつでしょ?
それはServlet Containerの性質上仕方無い。Tomcat,JRunでもなる。つーか、それで泣いた
時期もある。
でも、今回のはTomcatの実装による問題。
0742デフォルトの名無しさんNGNG
>>741
Tomcat の実装で Singleton に関する扱いに何か問題あったっけ?
0743741NGNG
>>742
まぁいいんじゃないの、無いと思うなら無いで。
0744タロNGNG
>>737

 趣味でやっているので、TOMCATです、

TOMCAT上の問題ということでしょうか?

 自分でも調べてみることにします。
0745デフォルトの名無しさんNGNG
>>743
分からん、ヒントだけでも教えてよ。
0746デフォルトの名無しさんNGNG
ところで、WebSphere AS 4.0 AEってWin2k Proでは動かないの? インストールはできるんだけど。
対応OSじゃないから駄目なのかな? ちなみに、シングルサーバ版の方はちゃんと動く。
0747タロNGNG
 >>737

なんとなく、原因がわかりました、
大感謝です、ありがとうございました。
0748デフォルトの名無しさんNGNG
>>747
ぐほっ、気になるー
教えてくれー
0749デフォルトの名無しさんNGNG
>740
お答えサンキュ。
DBコネクションプーリングって実装的にはVectorか
ArrayListあたりに Connectionをぶち込んでおいて
接続状態を別途管理する、みたいな感じかなのかな。

もしこれを自前で実装する、というかしなきゃならないとしたら
この点は絶対気を付けておかないと! って事ある?
0750デフォルトの名無しさんNGNG
>>746

問題なく動く。なんらかの設定ミスかインストール失敗と思われる。
0751デフォルトの名無しさんNGNG
>>750
あ、そうなの? じゃあ今度再挑戦してみます。さんきゅ。
0752デフォルトの名無しさんNGNG
>>750
まだ自分もAEは試したことなかったので、一瞬「おや?」と思ってしまったよ。
一安心。

>>749
これなんかどうです?
ttp://archive.coreservlets.com/coreservlets/ConnectionPool.java
■ このスレッドは過去ログ倉庫に格納されています