トップページ⇒php
1001コメント334KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/06/01(水) 09:09:00ID:???
質問する前に最低でもGoogleで検索するように

前スレ
■■ Servlet/JSP(EJB含む) 質問スレ Part3 ■■
http://pc8.2ch.net/test/read.cgi/php/1087331455/l50
前前スレ
■■ 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
0041nobodyさん2005/06/07(火) 11:30:02ID:???
docBase="webapps/javaroad"
→
docBase="javaroad"

※Tomcatインストールディレクトリ/webapps/javaroad があるという前提。
 Tomcatインストールディレクトリ/webapps/webapps/javaroad があるのならあなたの設定は正しい。
0042nobodyさん2005/06/07(火) 18:03:08ID:JFan3jc8
再度お世話になります。

SUN Java App Server 8を利用しています。ファイルREALMではない認証方式を
りようしたいと考えています。LDAPに興味があるのですが、どなたか
SUN Java App Server 8でLDAPを利用していらっしゃいませんか?

参考になるサイトをご紹介頂ければ大変嬉しいです。

公式マニュアルにはSSHとファイルREALMの方法しか書かれていません。
BEAのサーバーにはLDAP付属しているそうですので、SUNのサーバーでも
できるはずだと思うのですが。

どうぞ宜しくお願い致します。

>>33
SUN Java App Server 8のご利用をお奨めします。インストール大変簡単です。
0043nobodyさん2005/06/07(火) 22:01:13ID:???
>>38
Tomcat4.1で、server.xmlに<context>を追加するな、と。
0044nobodyさん2005/06/07(火) 23:11:13ID:51Ax6C6R
web開発で質問ですが
よく画像ファイルを挿入する場合たいていgifファイルを使ってますよね?
あれって例えば他の画像用の拡張子であるたとえばJPGじゃ駄目というか
gifを使ったほうがいいという何か理由ってあるのでしょうか?
0045nobodyさん2005/06/07(火) 23:29:37ID:???
>>44
見た目の画質の割にファイルサイズを小さくできるからだろ。
jpegで同じファイルサイズにするともっと荒く見えたりする。
0046nobodyさん2005/06/08(水) 15:09:56ID:nLK15AOn
簡単なJSPを作ってセッションの変化を確認するテストをするために
<p><%=request.getSession(true).getId()%></p>
を<body>タグの中に書いてリロードさせているんだけど
IEとネスケでそれぞれクッキーを無効に設定して
やってみたところネスケはリロードするたびにSessionIDが変化して
IEは変化しなかった。
動きとしてはネスケの方が正しいと思うんだけど
なぜIEだとクッキーを送信しているような動きに?

SERVER Windows2000 SP4 + Tomcat5.0.28
CLIANT WindowsXP Home SP2 + IE6.0
0047nobodyさん2005/06/08(水) 15:32:58ID:nLK15AOn
46だけど
ひょっとしてIEの仕様でイントラの
クッキーは受け取るということかな
つまり、イントラにはクッキーを制御する設定がない?
指揮者のだれかおせーて。
0048nobodyさん2005/06/08(水) 15:42:49ID:???
>イントラにはクッキーを制御する設定がない?
そういうこと。
localhostじゃなくて127.0.0.1を使ってみれ。
0049nobodyさん2005/06/08(水) 16:09:44ID:nLK15AOn
>>48
>localhostじゃなくて127.0.0.1を使ってみれ。
たしかに・・・
直IPだとIEはインターネットとして扱うんですね。
プライベートIPであっても。

どーもでした。
0050nobodyさん2005/06/08(水) 22:38:31ID:???
現行のEJB2.0の使用用途がまるっきり見えて来ないんですが
どこいうところで使うもんなんですか?

シリアライズしまくりで、サーバにも優しく無い上に
リモートルックアップするのにコストかかり過ぎです。

ローカルルックアップするぐらいなら、
普通のBeanで組んだ方が速いですよね。

EJBって実用段階に来てない気がしてならないんですが。
罠じゃないんですかEJBって。
0051nobodyさん2005/06/08(水) 23:42:31ID:???
EJB2に不満ならSpring+Hibernateでも使えばいいし、EJB3のプレビューも出てき始めてる中、なにをいまさら・・・
0052nobodyさん2005/06/08(水) 23:43:39ID:???
>>51
ごもっともです
0053nobodyさん2005/06/09(木) 00:36:26ID:???
Spring、Hibernate 結構興味深いなぁ。
BeanからSQL流すのと、どっちが速いか検証してみる価値は十分ありそう。
0054nobodyさん2005/06/09(木) 01:40:45ID:???
実行の速さを競うもんじゃないからなぁ。
「Hibernateの場合はCGLIBを使ってるので10%くらいしか遅くならない」というのが売り文句だったりするわけだし。
開発の早さを競うもんだ。クリティカルな部分だけSQL直で。
0055nobodyさん2005/06/09(木) 13:36:57ID:0Vlq/rvk
サーブレットコンテナの管理用 GUI からウェブアプリの環境変数を設定することってできないんでしょうか?

たとえば、サーブレットが管理者のメールアドレスを表示するようなケースで、メールアドレスを GUI から設定したいのです。

web.xml の init-param は、管理者が手で編集しないといけないし、データベースに格納する場合は、メールアドレスを書き込むための GUI を別途用意しなければいけませんよね?

tomcat と JRun 4 を使っています。
0056nobodyさん2005/06/10(金) 17:43:47ID:utqCHAzS
auでフォームに入力した値をサーブレットで取りたいのですが、
POSTとGETで取得するときのエンコードを変えないと文字化けするのですが
そういうものなのでしょうか?

auでPOSTの場合
byte[] arrBytes = sText.getBytes("WINDOWS-31J");
String sResult = new String(arrBytes, "WINDOWS-31J");

auでGETの場合
byte[] arrBytes = sText.getBytes("ISO-8859-1");
String sResult = new String(arrBytes, "WINDOWS-31J");

ちなみにPC(IE)やドコモ、ボーダフォンはGETとPOSTともに
getBytes("ISO-8859-1")でいけました。
0057nobodyさん2005/06/10(金) 19:56:15ID:???
>>55
サーバにCSVかXMLにして保存。
じゃだめなの?
0058nobodyさん2005/06/10(金) 22:22:55ID:???
MVCモデルについて質問なんですが
C→M→VとM→C→Vはどちらが正しい、
または能率がいいのでしょうか?
0059nobodyさん2005/06/10(金) 22:26:27ID:???
>>58
何を聞きたいのかさっぱりわからん
0060nobodyさん2005/06/10(金) 23:41:23ID:???
>>59
JavaBeanから直にJSPがデータを受け取るのと、
Servletを経由してからJSPで表示するののどちらがいいのか?
ということなのですが・・・
0061nobodyさん2005/06/11(土) 00:56:49ID:???
>>56
そういうものです。URIEncodingを設定してください。
それよりsetBodyEncodingForURIを設定してsetCharacterEncodingするのが楽だと思うけど。
0062nobodyさん2005/06/11(土) 00:58:18ID:???
>>60
で、Servletが受け取った値はどうやってJSPが受け取るのだ?
WebではMVCにするよりレイヤーパターンにしたほうがいいと思うけど。
0063nobodyさん2005/06/11(土) 09:53:02ID:???
>>58
理想を言えば、MVCはそれぞれ独立していて、どれも同じレベルであるものです。
(三権分立みたいな感じ?)

MもVもCもそれぞれが独立したパーツで、Mを別のMに切り替えようとVもCも全く関係なく、Vを別のVに切り替えようとMもCもまったく関係ないというものです。
0064nobodyさん2005/06/11(土) 10:32:20ID:???
>>62
解説してるサイトではどこも微妙に説明が違ってて悩んでました
図なんかではModelがControllerとだけ繋がってたりするので・・・
明確に分離するにはそっちの方がいいのかと思ってました
レイヤーパターンというのも調べてみたいと思います

>>63
それぞれ独立していればMVCモデルの利点は保たれるということでしょうか?
0065nobodyさん2005/06/11(土) 10:34:11ID:???
>>57

シェルがどうとか ftp がどうとか、面倒になるので、ユーザーにコンソールを使わせたくないのです。
すべてをウェブブラウザで操作できるようにしておきたい。
0066nobodyさん2005/06/11(土) 14:17:44ID:???
>>64
独立したらMVCモデルじゃない。MVCは三角形の関連ができてこそMVCなんだけど、VとMが関連すべきではないということでレイヤースタイルになる。
だから、最近の「MVCモデル」の説明は全然「MVCモデル」になってない。
0067nobodyさん2005/06/11(土) 17:46:58ID:???
mvc model2のことかーーーー
0068nobodyさん2005/06/11(土) 21:51:51ID:???
それ以外のMVCだと、ぶっちゃけUI系とデータ系と処理系の3部分に別れてたらとりあえずMVCって感じで、設計の基準にならない。
0069nobodyさん2005/06/12(日) 02:22:28ID:qiQ42OR2
MVCやるなら、Struts使おう。
0070nobodyさん2005/06/12(日) 11:19:57ID:LhGlNmPa
JSPの検索画面で値を入力
↓
その入力値を元にDBを取得
↓
JSPでDB結果を表示

ググったのですが該当しそうなサイトって
以下のものぐらいしか無かったので
これだと検索部分が抜け落ちているので、もしいいやり方などあれば教えてください

ttp://www.atmarkit.co.jp/fjava/rensai3/struts03/struts03_2.html
0071nobodyさん2005/06/12(日) 11:26:48ID:LhGlNmPa
70はstrutsでの話です
0072nobodyさん2005/06/12(日) 14:40:40ID:???
で、まあ、ここに書いてあるような、データ格納用のJavaBeanにデータ操作メソッドを書くというのは、やめたほうがいいわけだ。
0073nobodyさん2005/06/12(日) 15:08:28ID:LhGlNmPa
>>72
ということは
例えば他にどういうやり方があるのでしょうか?
0074nobodyさん2005/06/12(日) 15:29:51ID:???
>>70
StrutsでもJSFでもTapestoryでもSpringでもいいから、とりあえず入門書買え。
その方が早そうだ。
0075nobodyさん2005/06/12(日) 15:33:12ID:???
JavaBeanは単純に値を格納するだけのsetter/getterだけを持つクラスにして、データ転送用のオブジェクトを用意する。
ValueObject(VO)とDataTransferObject(DTO)っていうパターン。
DTOは前はDataAccessObject(DAO)っていう名前だった。
でもデータアクセス自体はORマッピングが行うことも多いから、DAOじゃなくてDTOに変わった。
「エンタープライズアプリケーションアーキテクチャパターン」だと「バリューオブジェクト」と「データ変換オブジェクト」
0076nobodyさん2005/06/12(日) 15:37:41ID:???
>>75
こらこら。嘘書いちゃいかんよ。
0077nobodyさん2005/06/12(日) 15:44:46ID:???
正解キボンヌ
0078nobodyさん2005/06/12(日) 15:47:36ID:???
JavaBeanは単純に値を格納するだけのsetter/getterだけを持つクラスにして、データ転送用のオブジェクトを用意する。
 →これは一つのやり方としてはあり。

ValueObject(VO)とDataTransferObject(DTO)っていうパターン。
 →DAOとDTOだ。

DTOは前はDataAccessObject(DAO)っていう名前だった。
 →大嘘。ValueObject(VO)がDataAccessObject(DAO)になった。
0079nobodyさん2005/06/12(日) 15:48:02ID:???
まちがえた。
ValueObject(VO)がDataTransferObject(DTO)になった。
0080752005/06/12(日) 16:05:10ID:???
sunのパターンだとVO+DAOで、マーチンファウラーのパターンだとDTO+DAOか。
ごっちゃになってた。

ところで、PofEAAの訳本、DTOは「データ変換オブジェクト」って訳されてるはずなのに「データ転送オブジェクト」も索引にのってて、そのページには両方の言葉が混じってるので激ワロス
0081nobodyさん2005/06/12(日) 16:17:04ID:???
Sunも2年ぐらい前からはDTO+DAOだよ。
ちなみに、DTOは「データ転送オブジェクト」だ。
0082nobodyさん2005/06/12(日) 17:16:27ID:zSMpRE9A
それじゃあ単純に値を格納するだけのsetter/getterだけを持つクラスは
DAOなの?DTOなの?
0083nobodyさん2005/06/12(日) 17:27:23ID:???
>>82
DTO。(以前はValueObject)
DAOはEIS層からデータの出し入れ処理を実装するクラスだ。
0084nobodyさん2005/06/12(日) 17:53:11ID:???
へぇ
0085nobodyさん2005/06/13(月) 10:56:35ID:RXkwJR48
SunJavaSystem7ASでクラスパスを通すとき、server.policyでパーミッションを指定しないとだめでしょうか?
JDBCドライバなんかは無指定で見えてるのですが、自前のjarが見えません。
0086nobodyさん2005/06/13(月) 22:49:24ID:???
Tomcat上でJSPを動かしてるのですが、
JSPからみて ../WEB-INF/classes にあるclassファイルの
メソッドを呼び出せないのでしょうか?
0087nobodyさん2005/06/13(月) 22:55:56ID:???
呼べるよ
0088862005/06/13(月) 23:09:22ID:???
どのように呼ぶのでしょうか?
servletと同じように宣言したらシンボルエラーが出てしまいます。
0089nobodyさん2005/06/13(月) 23:19:50ID:???
> servletと同じように宣言したら
おまえがServletでどう宣言しているのかもわからないし

>シンボルエラーが出てしまいます。
「シンボルエラーが出る」がどういうことなのかもよくわからん。

0090nobodyさん2005/06/14(火) 00:09:24ID:???
JSPのようなメソッド名を書かないJavaでは
再帰プログラミングはどう行えばいいんでしか?
(´・ω・)
0091nobodyさん2005/06/14(火) 00:59:23ID:???
inner class
0092nobodyさん2005/06/14(火) 02:34:10ID:???
>>90
メソッドを定義する
0093nobodyさん2005/06/16(木) 02:30:02ID:???
formからサーブレットに文字列を送るとき、
&gt;や<などを渡すとテキストとしてではなくHTMLとして読まれてしまいます。
つまり、&lt;hr&gt; のようなテキストを送信すると
<hr>として解釈されてしまい、困ってます。
これはサーブレット側でHTMLエンコードのメソッドを作って解決するしか無いのでしょうか?

formからはPostで送りたいのでenctype="application/x-www-form-urlencoded"でしか
送信できないのがいけないのでしょうか・・・。

どなたか、解決策あったらご教示いただけないでしょうか?
よろしくお願いします。
0094nobodyさん2005/06/16(木) 03:47:59ID:???
HTMLもテキストなのだが・・・
0095nobodyさん2005/06/17(金) 23:28:57ID:QbQnTgUm
Strutsでデータベースを取得するときに
アクションクラスの役割ですが
アクションクラス内でDB取得メソッドを呼び出すのが普通なんでしょうか?

それともアクションクラスでビジネスロジックを呼び出して、
そのビジネスロジック内からDB取得メソッドを
呼び出すのが普通のやり方なんでしょうか?
0096nobodyさん2005/06/18(土) 07:13:21ID:tWCSnidS
>>95
後者
0097nobodyさん2005/06/18(土) 12:28:17ID:???
>>95
普通は規模によって使い分ける。
0098nobodyさん2005/06/19(日) 22:56:21ID:???
セッションの情報って各クライアントのブラウザに格納されるのでしょうか?
0099nobodyさん2005/06/19(日) 23:11:37ID:nbw7nWZR
そ
0100nobodyさん2005/06/19(日) 23:35:47ID:???
�d
0101nobodyさん2005/06/20(月) 02:05:42ID:???
tomcat 4.1-31にJFS1.1とjakarta-taglibs1.0をインストールすると
java.lang.ClassNotFoundException: org.apache.catalina.Container
が出て起動すらできなくなります。パスも通しているので問題はないと
思っています。
common/libの下に以下を参考に7ファイル組み込みました。
ttp://dream.mods.jp/jsf/tom5andjsf/tom5.html
0102nobodyさん2005/06/20(月) 02:17:33ID:???
JSFはTomcat4で動いたっけ?
0103nobodyさん2005/06/20(月) 02:30:36ID:???
common/libにライブラリ入れるな、とか思うけどな。
0104nobodyさん2005/06/20(月) 02:36:12ID:???
myfacesならTomcat4で動くみたいなので、JSFが対応してないわけじゃないと思う。
0105nobodyさん2005/06/20(月) 02:37:37ID:???
>>103
同意。

>>104
今のところ、MyFacesはバグだらけで使えないね。
0106nobodyさん2005/06/20(月) 03:13:50ID:???
そうなの?
0107nobodyさん2005/06/20(月) 19:51:12ID:7r24+CZe
JSFはJSP2.0、つーかJSTL1.1が使えないと、かなり機能制限されて
しまうのだよ。だからTomcatなら5.0.x以降にした方が快適なのは
間違いない。

>>105最近バグも減ってきたんじゃない? bug発見したらその
機能を使うのを我慢する、というスタンスでもそこそこ行けそうな
気がするけど。
0108nobodyさん2005/06/21(火) 00:18:27ID:???
>>105
ブラウザのリロードで画面遷移してしまう(しかも行ったり来たり)とか、
セッションタイムアウトでも何食わぬ顔でもう一度同じ画面を返してくるとか、
「その機能を使わなければいい」では済まないバグが多々ある。
commnadLinkもおかしかった。(すべてバージョン1.0.9)
RI(1.1_01)に入れ替えてみたら普通に動くのも確認済み。
0109nobodyさん2005/06/21(火) 01:06:51ID:???
皆さんありがとうございます。common/libに入れないでWEB-INFに*.jarを組み込むのが礼儀なのでしょうか。
>>107さんの言う通り、Tomcat-5.0.28にすると問題は発生しなくなりました。
しかしEclipse3.0.2+Tomcat5.0.28+FacesIDE+TomcatPluginV3+Myfacesという環境で
test.jspを作成し<h:inputText value="#{hoge.str}"/>というような一行を
存在するだけで、通常のHTMLタグは認識されますが上のようなカスタムタグは
一切認識されません。
<body><h2>test</h2><h:inputText value="#{hoge.str}"/></body>と書くと
<body><h2>test</h2></body>だけがレスポンスとして返ってきます。やはり
facesIDE+myfacesという環境をやめて何か別の環境でJSFを構築したいのですが
何か代替するものはあるのでしょうか?

0110nobodyさん2005/06/21(火) 04:00:53ID:???
こんなのも出ちまうぜw
HTTP????? 500
?? The server encountered an internal error () that prevented it from fulfilling this request.
javax.servlet.ServletException: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:568)
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401)
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:179)
以下略
?? ?????????????????Apache Tomcat/5.0.30????????????
0111nobodyさん2005/06/21(火) 14:19:50ID:Ld99PUeC
知恵を貸してください。
Tomcat 5.5系(+Eclipse)を使っています。

ハードをモニタするために、スレッドを一つ活かしておいて、servletにアク
セスがあったときにはそのスレッド(のinstance)に聞いて最新n個を応答する、
みたいなことがやりたいのですが、別プログラムにしてファイル保存→
servletで読み出して参照、以外の方法がおもいつきません。

なにか気の効いた方法(パターン?)があれば教えてください。



01121112005/06/21(火) 14:57:26ID:???
あー少し誤解してた。Servletって活きたままなので、そのThread自身が
manageできる場合は直接管理しておけばいいわけね。


0113プログラマの皆さんにお尋ねします。2005/06/21(火) 19:45:07ID:YhSaII8H
再度お世話になります。全部読ませていただきましたが、STRUTSの人気がかなりのようですね。

私は以前こちらで「WEBアプリの基本はフレームワークなし」と
「STRUTSなんて要らない。開発を複雑にしているだけ。滅びるに値する」という
書き込みが大変気になりまして、実際の開発ではSTRUTSもなにも使いませんでした。

開発当初はCMP−EJB2.0にうつつを抜かし、見事に大失敗しまして、今は
SUNの純正JAVAサーバーのDEPLOYTOOLを利用しながらフレームワーク無しで
仕事をしています。データーベースアクセスは直接JSPに書き込んでいます。
MVCではありませんが、ページごとの管理ですので意外に開発が楽でした。

ご質問なのですが、こちらの皆さんは従来のEJBには利用価値があるとおもいますか。
HIBERNATEを利用されている方に特にお尋ねしたいです。

また、私はSUNのDEPLOYTOOLの愛用者なのですが、ECLIPSEにも同じようなDEPLOYMENT
DESCRIPTOR作成TOOLが付属しているのでしょうか。EARファイル、JARファイルの作成は
手書きなのでしょうか。

上の2つを是非お聞きしたいです。どうぞ宜しくお願い致します。
0114nobodyさん2005/06/21(火) 21:01:37ID:???
ごめん、釣だよね
0115プログラマの皆さんにお尋ねします2005/06/21(火) 21:05:00ID:YhSaII8H
>>114
いえ。113に書いたことは真面目な質問なんです。やはり私はアマのままなのかな。。。
0116nobodyさん2005/06/21(火) 21:48:29ID:???
ページごとの管理なのにEJB使うのがアホでした、と。
0117nobodyさん2005/06/21(火) 22:46:23ID:???
EJB3はいいけどold EJBはPOJOにとって変わるのでは?
EJBが廃れたのもコストがかかりすぎるからでしょ?
0118nobodyさん2005/06/21(火) 23:00:29ID:???
XDoclet使えばEJBもそんなに苦じゃない。
0119nobodyさん2005/06/22(水) 01:06:29ID:???
そこでNetBeans4.1ですよ、と。
0120nobodyさん2005/06/22(水) 11:11:20ID:???
>>113

フレームワーク無しなんて信じられない。
つーか、直にServlet書いた経験って過去物語。

だけど今から勉強して自身で使うならStrutsは
薦められない。何故ならStruts2.0(Shale)は
今のStrutsとは全く形が違うし、下位互換が
無いことがハッキリしてるから。

分散環境でないならEJB使う必要は全く無い。
そんなもの使うのは単なる馬鹿。

そもそもJSPに直接DBアクセス書いて満足なら、
EJBだHibernateだ検討するのは意味が無い。

MVCというよりLayerを理解してから出直してね。
01211072005/06/22(水) 11:58:42ID:???
>>108情報サンクスコ
MyFacesそこまでヒドイとは知らなかった。

>>109
><body><h2>test</h2></body>だけがレスポンスとして返ってきます。やはり

<f:view><h:form>を書いて。それからinputTextやる前に<h:outputText value="HelloWorld">を試して。


>facesIDE+myfacesという環境をやめて何か別の環境でJSFを構築したいのですが
SunのR.I.1.0.1にすれば?
0122113 (MVCとSQL直書き)2005/06/22(水) 17:18:58ID:aO9Cw/ex
皆さんどうもありがとうございます。

MVCは試したことがあるんです。CMPEJB2.0に騙されて、MVCヤメテ、それでJSPだけで
SQL直書きのファイル沢山つくって、それでシステムつくったんです。

1年ほど前にこちらで「ファイル直したら、またWEB.XMLの書き直し。もういや」
といったSTRUTS批判が目だっていたのですが、最近はそれ程STRUTS批判はありませんね。

自分で勉強していくうちに、MVCで上手にシステムかけたらいいなと思うように
なりました。JSFのCREATORも試したことがあるのですが、もうどうしようもない。
あれで、SUNはよく金とれますね。

>>120
STRUTSはお奨めではないですか。自分でフレームワークもどきがつくれて、そろそろ
STRUTSに挑戦しようとおもっていたのですが、やっぱりやめようかな。

SPRINGとHIBERNATEは面白そうですが、「軽快なJAVA」に書かれているように
本当に使いやすいのかなと疑心暗鬼しています。STRUTS愛用者の方々の意見も
お聞きしたいです。上手にMVCを実現できるフレームワークはどれでしょうか。
01231202005/06/22(水) 19:22:32ID:???
経験あるならJSFの道を進めばいいじゃん。
あれ自身DI機能があるから、君が興味を持って
いるというSpringとの相性も良いよ。

O/RマッパはAOPと組み合わせるとメチャ便利。
単純な、いわゆる「マスターメンテ」的なシステムだと
恩恵は無いけど、それなりの関連構造をもった
オブジェクトとDBを連携させる時など強烈に便利。

もしAOPを使わないとすると
・データストア層のソースが誇大化、メンテ不能。
・コネクションをビジネスロジック層で取得する。
どちらかの方法を取るハメになる。何故かは自分で
考えろ。

だがAOPとO/Rマッパを共同作業させれば、驚く程
短いスッキリとしたソースになり、また一見目に
見えない形で、ビジネスロジック単位でトランザクションを
制御することが可能になる。

ちなみに漏れが今やってるのはJSF+Spring+iBATISだ。
0124nobodyさん2005/06/22(水) 20:07:40ID:???
AOPってなに?
それと、O/Rまっぱって言っても
データベースの設計がそれなりにちゃんとしてないと
かえって苦労するでしょ?
0125nobodyさん2005/06/22(水) 20:21:02ID:???
スレ違いかも知れませんが、
サーブレットとJSPのUMLを書く場合、
一つのJSPファイルは一つのクラスとみなすのが一般的なのでしょうか?
それともJSPというクラス一つにまとめるのが一般的ですか?
0126nobodyさん2005/06/22(水) 22:40:21ID:???
画面への出力処理について質問させてください。

CGIでnphを使用すると処理を行いつつ画面への
文字出力(追記みたいなイメージ)が可能かと思います。

上記動作をservletにて実現させようと思い
下記のコードをServlet内に組んでみましたが
動作させると全ての動作が完了してから
「1」が100個同時に表示されてしまいます。

  PrintWriter out = res.getWriter();
  for(int i=0; i<100; i++) {
    out.write("1<BR>");
    out.flush();
  }
  out.close();

ループ値iがインクリメントされる毎に画面に「1」の出力を
増やしていく方法分かる方いませんでしょうか?

宜しくお願いいたします。
0127nobodyさん2005/06/22(水) 22:50:44ID:???
>>126
冗談でも馬鹿にしてるわけでもなんでもなく、
Javaの基礎からやり直したほうがいい。
0128nobodyさん2005/06/22(水) 22:56:16ID:???
ServletResponse#flushBuffer()使えばできるのか?
やってみないとわかんr
0129nobodyさん2005/06/23(木) 01:28:52ID:???
>>124
データベースの設計がそれなりにちゃんとしてないと、ORマッパ使おうが使うまいが苦労する。
ORマッパ使った方が楽だけどなぁ。
01301232005/06/23(木) 10:26:46ID:???
>>124

>AOPってなに?

AOPのAはAspectのA。

単純に言っちゃうと、特定のメソッドなりフィールドに対して
「呪文」をかけられるのよ。
(SpringAOPの場合はメソッドへの呪文のみ)

トランザクションに応用する場合の例で言うと、例えば
"update"という文字で始まるメソッドはトランザクション配下
ですよ、って宣言できるワケ。

Javaソースにはトランザクション記述もコネクションも
try/catchも無いのに、一旦呪文がかかるとAspectが
勝手にそういうソースを織り込んでくれるんだわ。

詳しく知りたかったら
・軽快なJava
・LightWeightJava
・Spring入門
あたりを嫁。Seasar2系blogを読み漁るのもヨシ。
0131nobodyさん2005/06/23(木) 10:34:32ID:???
>130
便乗質問だが、自分で調べて見て、
「XMLかなんかの設定ファイルに沿って、特定のメソッドの前処理と後処理に指定のメソッドを呼び出す」
という風に理解しているがこれであってるのでしょうか?
01321242005/06/23(木) 11:03:50ID:???
>>130
サンクス
調べてみます
0133nobodyさん2005/06/23(木) 11:04:59ID:RkAQSA99
>>131

合ってる。

付け加えると、正常処理時とか例外発生時とかの指定も可。

Springの場合(詳しく知らんがSeasar2でもおそらく)トランザクション制御の
ソースはSpring側であらかじめ用意されているので、それを利用すると楽。

Springのソースまで読んだワケではないけど、debugログを吐かせると、
前処理やらcommitやらrollbackが動いているのが見えて楽しいよ。
01341332005/06/23(木) 11:57:48ID:???
正確に言うと「呼び出す」ではなく、まさに「織り込む」というのが正解。

sageついでに。
0135nobodyさん2005/06/23(木) 13:54:34ID:???
>>121
OracleがMyFacesに参加するらしいよ。
01361132005/06/23(木) 20:01:08ID:4/LL7wxd
>>123
どうもありがとうございます。JSF+SPRING+IBATISのJSFとSPRINGはフレームワーク
ですから問題起きませんか?

お使いのエディタはEMACSでしょうか、ECLIPSEでしょうか。

私HIBERNATEとAOPの勉強始めます。強烈に便利とまで言われたら、もう
勉強するしかないですね。「軽快なJAVA」はちょっと足りない部分が
多いですから、WWW.HIBERNATE.ORG行ったんです。でも、あまり良い
チュトリアルがなくて。。。。このままだと、HIBERNATEを縁の下で
支えているXMLファイルの書き方覚えるだけでかなり難儀するかもしれない
です。IBATISはどうですか。あまり聞きませんが、HIBERNATEよりも
使いやすいすくて、文書豊富ですか?
0137nobodyさん2005/06/23(木) 21:09:57ID:???
JSFでバッキングビーンのメソッド中で、
request.getRequestDispatcher.forwardメソッドを呼び出しているのですが、
java.lang.IllegalStateException: Cannot forward. Response already committed.
と例外が発生してしまいます。
原因がわかる方がいらっしゃったら教えてください。
01381372005/06/23(木) 21:17:41ID:???
補足です。
forwardメソッドの引数となるrequestとresponseは
ExternalContextのgetRequestメソッドとgetResponceメソッドを
使用して取得したものです。
0139nobodyさん2005/06/23(木) 21:31:35ID:???
>>136
> JSFとSPRINGはフレームワークですから

iBatisもDB接続フレームワークだし、ListやMapもコレクションフレームワークで、なにかフレームワークであることが原因で問題が起こるとしたら何もできなくなるな。
HibernateのXMLがいやなら、Hibernate Annotations使えば?
01401232005/06/23(木) 22:27:43ID:???
>>136

問題起きてない。
IDEはEclipse使ってる。

O/Rマッパだが、純粋な美しいOOを適用できるなら、現時点では
Hibernateがベストだと思うよ。EJB3もHibernateの影響を強く受けて
いるしね。(つーかLindaがKingを召喚した)

漏れがHibernateじゃなくてiBATISを選んだのは二つの理由。

1)完璧なOOやったんじゃ、チョロっとした画面出すのに数千〜数万の
オブジェクトが出来てしまう。そんなのイヤンだからSQLのSUMとか、
やりたくないけど「月次集計テブル union 当月明細テブル」みたいな
処理もやって、パフォーマンス出さなくちゃならん。だからSQLは
自由に書きたい。

2)美しいDB構造ではない。つーか、「取消伝票発行する時に、
以前存在してた得意先はテーブルに存在しないかもしれない。
でも、取消伝票はその得意先を使って発行しなくちゃならん。」
なんて用件があった。存在しないものを、あたかも存在してるように
見せるなんてHibernateじゃ無理だろ。

つーことでiBATISにしたワケ。漏れSQLを書くの嫌いじゃないしね。
ま、iBATISは設定ファイルにSQLを直書きするので、xmlが
長くなるのがイヤンだけど、Javaソースはスッキリスッキリ。

参考まで。
■ このスレッドは過去ログ倉庫に格納されています