トップページ⇒tech
1001コメント315KB

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
0783デフォルトの名無しさん2007/05/04(金) 22:44:13
>>781
PHPみたいなのが相手ならJSPだけで作ればいいだけじゃ?
0784デフォルトの名無しさん2007/05/04(金) 22:51:24
>>780
そっか、ビジネスロジックは再利用するもんじゃないのか。
じゃ、再利用とか言ってる人は、何を再利用しろって言うんだ?

779の言うように、プログラム生産物としての再利用ってのはないのか。
0785デフォルトの名無しさん2007/05/04(金) 23:04:59
M$と\ahoo合併交渉中ワロス
0786デフォルトの名無しさん2007/05/04(金) 23:10:07
これだろ
俺もちょっと驚いた

Reports: Microsoft Pursuing Yahoo
http://biz.yahoo.com/ap/070504/microsoft_yahoo.html?.v=6
0787デフォルトの名無しさん2007/05/04(金) 23:28:07
>>778
Javaの世界に限らんと思うが、設計段階でビジネスロジックを分離できてるシステム
分離できてないシステムがあったとして、分離できてるならフレームワークから
呼び出すだけだし、分離できてなかったら、フレームワークの流儀に従って
分離して、今後の保守性や再利用性を上げるって事だろ。

JSPの頃みたいに、htmlの中にロジック書いたところでグダグダになるだろうしな。

対価が得られていないのは藻前の設計に難があるって事じゃねーの?
0788デフォルトの名無しさん2007/05/04(金) 23:32:03
>>787
で、何の再利用性をあげるんだ?
0789デフォルトの名無しさん2007/05/04(金) 23:41:56
ドカタの再利用
0790デフォルトの名無しさん2007/05/04(金) 23:53:53
目的が見えていない自称アーキテクトって、怖いねw
0791デフォルトの名無しさん2007/05/05(土) 00:21:58
POHP系のVIEWは遅いんだよね。
綺麗にキャッシュできないのは何が原因なんだろう。
JSPのコンパイル後のソースを見る分には同等の速度は難しくないと思うんだが。
0792デフォルトの名無しさん2007/05/05(土) 03:45:39
GWT使用による再利用性うpに期待age
0793デフォルトの名無しさん2007/05/07(月) 23:15:39
ある程度業務を標準化してしまえば、ビジネスロジックも再利用できると思うけどね。
特に決裁系とかさ。稟議なんてどこの企業でもやってるビジネスロジック。

SAPみたいにシステムのためにビジネスを変えさせて嵌め込むというのもありと思う。
0794デフォルトの名無しさん2007/05/08(火) 01:29:51
>>793
チラシの裏にどうぞ
0795デフォルトの名無しさん2007/05/10(木) 13:29:27
UnicodeをWindows-31Jへの変換について質問があります。

URLEncoder.encode("\uE757", "Windows-31J")
このように書くと、%F9%FC として正しく変換されるのですが
URLEncoder.encode("\uE758", "Windows-31J")
と書くと、%3F となって ? に変換されてしまいます。
これを正しく変換させるにはどうしたらいいのでしょうか?
0796デフォルトの名無しさん2007/05/10(木) 13:59:37
エ758からは外字領域じゃね?
同じWindowsでもmeと2000で表示できたりできなかったりするようなやつだから変換できないのは正しいような
07977952007/05/10(木) 15:38:42
>>796
レスありがとうございます。
外字領域というのがあるんですね。
どうやらその領域だとWindows-31Jが対応してないみたいなので無理みたいですね‥
0798デフォルトの名無しさん2007/05/11(金) 01:12:17
Apache2 + mod_jkでTomcatと連携させている時に、
Tomcat上のWebアプリの中で(Javaコードで)、リクエスト転送元のApacheが
動作しているPCのホスト名またはIPアドレスを取得する方法ってあるのでしょうか?
0799デフォルトの名無しさん2007/05/11(金) 01:31:29
結局リクエストを受け取ってるのはApacheなんだから
ServletRequest#getServerNameでいいんじゃね?
08007982007/05/11(金) 08:21:28
>>799
レスありがとうございます。
ApacheとTomcatが同一マシン上で動作している場合はそれでいいかと思うのですが、
Webサーバマシンとアプリサーバマシンが別々の場合に、リクエスト転送元のWebサーバをWebアプリ内で動的に判別したいのです。

もしかして私の勘違いで、その場合もServletRequest#getServerNameでイケちゃったりするのでしょうか??
0801デフォルトの名無しさん2007/05/11(金) 08:33:15
HTTP_REFFERER
0802デフォルトの名無しさん2007/05/11(金) 12:19:00
>>800
やってみなよ。内部で勝手に転送しているだけで
リクエストを受けてるのはApacheがあるほうのサーバ。
逆にTomcatがあるほうのホスト名やIPアドレスを取得するほうが難しいと思う。
0803デフォルトの名無しさん2007/05/12(土) 00:12:21
mod_jk弄れば良いじゃん。ソースは有るし。
0804デフォルトの名無しさん2007/05/12(土) 09:11:43
struts-configで質問なのですがaction-mappingsの要素にaction書きますよね?
んでこんな感じかと思うんですが、
<action path="/practice/example" type="practice.ExampleActionController"
name="plactice_~~" scope="request" validate="true" input="/practice/~~.jsp>
ってなかんじで書くと思うんですが、html/jspのformから.doで呼び出すとき
/plactice/example.doで呼出せるときもあれば、../plactice/example.doでないと
actionが呼出せないときもあり、ちと訳分かりません。そこら辺ご教授ください。
strutsのverは1.3です。
0805デフォルトの名無しさん2007/05/12(土) 15:26:25
MYSQLを使って掲示板のサンプルを作成しているのですが、
本文はmysqlではcontext textと設定しています。
ですが、大型AAなどの長文を入れると、DBに登録されません。
どうすれば上手くいくでしょうか?mysqlのヴァージョンは5です。
0806デフォルトの名無しさん2007/05/12(土) 18:39:43
>>804

>、html/jspのformから.doで呼び出すとき
>/plactice/example.doで呼出せるときもあれば

このようにはしないですよ。
strutsタグ html:form を調べてください
0807デフォルトの名無しさん2007/05/13(日) 10:09:21
form の action要素にstrutsの.doは不要っぽいですね。
間違った覚え方をしていたようでしたorz
レスありがとうございました。
0808デフォルトの名無しさん2007/05/13(日) 18:28:04
>>807
taglibつかってるかで変わる。
0809デフォルトの名無しさん2007/05/14(月) 00:39:39
すいません。教えてください。

現在eclipseでstrutsの環境を構築してるんですが、見ようと思っても、「アクション /HelloWorld
に対応をするマッピングが見つかりません。」っていうエラーがでるんです。

原因を調べようとstruts-config.xmlをクリックしたんですが、「エラーが発生しました。詳細について
はエラーログを参照してください。」と表示されて見ることが出来ません。

ちなみにstruts-IDEをいれて設定しています。お願いします。
0810デフォルトの名無しさん2007/05/14(月) 10:09:22
apache+tomcatではなく、tomcatオンリーでサービスさせるのは時期尚早?
htmlコンテンツアクセス率が高いサイト(*.doに対して8割ほど)なんですけど。
0811デフォルトの名無しさん2007/05/14(月) 10:18:58
8割も静的ページアクセスならApache入れた方がいいだろ
0812デフォルトの名無しさん2007/05/14(月) 11:47:05
静的ページなくてもApacheいれたほうがいいで
管理ツールとかSSLとかTomcatのHTTPコネクタの問題とかをなくせる

いまやmod_jkいらないし設定もシンプルだし
0813デフォルトの名無しさん2007/05/14(月) 12:17:21
mod_jkがいらないとな?!
0814デフォルトの名無しさん2007/05/14(月) 13:14:05
mod_proxyですな。
0815デフォルトの名無しさん2007/05/14(月) 14:13:49
Apache本体にjkコネクタはいったのは恩恵が大きいな。
0816デフォルトの名無しさん2007/05/14(月) 14:55:50
いっそ、Apacheだけでjspも動いて欲しいんだがw
phpみたくホットデプロイ可能で。
0817デフォルトの名無しさん2007/05/14(月) 22:42:21
え、マジ女子高生いらなくなるの?
Tomcat6じゃないとダメとかじゃなくて?
0818デフォルトの名無しさん2007/05/14(月) 23:56:22
2.2の話だろ?
やっとcentos5が出たから乗換中
08198182007/05/15(火) 00:11:52
書いてから思ったけど、
静的なコンテンツはapacheにまかすのがいいとして
サイトの管理ってどうやってすんの?

うちは、svnでeclipseのプロジェクトで登録してるけど、
めんどいんで全部tomcatにふってる

build.xml書けばいいだけだけど、
負荷がそれほど大きくない場合だと
tomcatで問題ある?
0820デフォルトの名無しさん2007/05/15(火) 00:16:49
tomcatとapacheのドキュメントルートを同じにしてる。
で、apacheの設定でWEB-INFにはアクセスできないようにする。
jkで*.jspのみtomcatへ。そんだけ。build.xmlとか書かなくても良い。
てか俺はantも嫌いなんでスクリプト系はrubyで作ってrakeで実行。
0821デフォルトの名無しさん2007/05/15(火) 00:29:37
パフォーマンスだけ考えるとTomcatも5からは問題がないのでApacheからすべてなげてもおっけー
ただし、HTTPコネクタに問題があるので、適度にリセットできるような身内でしか使わないのであればまぁ許容範囲
管理ツールつかいたいしな
08228182007/05/15(火) 01:06:45
>>821
http conectorではなくって8009にmod_proxyでふってる(apache2.2)

ただ
>HTTPコネクタに問題があるので、適度にリセットできるよう
はわからん
俺がAPR使ってるからか?
0823デフォルトの名無しさん2007/05/15(火) 01:14:18
httpコネクタというのはユーザーからのアクセスが直にきた場合の話な
これはいろいろと問題が起きる

だからリバースプロキシつかっているならjkでもhttpでも問題は起きない
0824デフォルトの名無しさん2007/05/15(火) 01:42:11
とりあえず今田に Tomcat がパフォーマンス的に問題とかいう奴は痛いな。
SSL 使うから Apache だろ、とかはもう意味不明。
0825デフォルトの名無しさん2007/05/15(火) 01:58:09
大規模サイトの経験ないんだろうな。大規模サイトは早ければ早いほどいいんだよ。
0826デフォルトの名無しさん2007/05/15(火) 03:28:32
大規模ってどのくらいのサイト?
Alexaで100位以内くらい?
0827デフォルトの名無しさん2007/05/15(火) 15:03:59
>>821
どれだけアクセス数少ないんだよ
0828デフォルトの名無しさん2007/05/15(火) 23:22:52
apache2.2.4+tomcat5.5.23+mod_jk1.2.22(linux kernel2.6)の環境で
apache<>tomcat間の通信をkeepaliveしたくないorすぐに切断したい
のですが方法をご存知の方はいらっしゃいませんか?

大量にアクセスがあるとkeepaliveでスレッドが埋まってしまって、
その後外部から通信できなくなってしまいます。


workers.properties
 worker.ajp13.socket_keepalive=False

server.xml
 <Connector port="8009"
 keepAliveTimeout="0" keepAliveMaxRequestCount="0" enable-keep-alive="false"
 KeepAlive="0"

とかしてみたのですが、さっぱり。
mod_proxy_ajpを使用しても同じ。

処理はすぐに終わっているのですが↓がずらずらと出てしまいます。
tcp 0 0 localhost.localdomain:57595 localhost.localdomain:8009 ESTABLISHED
tcp 0 0 localhost.localdomain:57563 localhost.localdomain:8009 ESTABLISHED
tcp 0 0 localhost.localdomain:8009 localhost.localdomain:57595 ESTABLISHED
tcp 0 0 localhost.localdomain:8009 localhost.localdomain:57563 ESTABLISHED
0829デフォルトの名無しさん2007/05/21(月) 00:12:12
strutsとvalidatorの処理の流れを解説しているサイトを教えていただけないでしょうか?

たとえば、
リクエスト → struts-configで、フォワード → ActionForm → validator.xmlの読み込み
→ 検証? → ActionMessage生成 → ActionErrorsへ格納 → validator
 → Messageクラスのインスタンス数が0 → struts-configで、正常画面へフォワード
 → Messageクラスのインスタンス数が > 0 → struts-configで、エラー画面へフォワード
見たいな、strutsとvalidatorの動き?処理の流れ?が、うまく理解できなくて困っています。

言葉で教えていただくのもありがたいのですが、
できればhttp://blog.hide-k.net/archives/images/struts.jpgのような図で解説しているサイトがあれば、
理解しやすいので・・・。

よろしくお願いいたします。
0830デフォルトの名無しさん2007/05/21(月) 10:34:55
>>829
もう十分理解できてるじゃん
0831デフォルトの名無しさん2007/05/21(月) 10:44:35
処理の流れが分からないんじゃなくて
具体的なプログラムの書き方が分かっていないとか

0832デフォルトの名無しさん2007/05/21(月) 21:38:16
レスポンスヘッダを参照できる良いツールってありませんか?
リクエストなら見れるんですが、結果の方が知りたいのです。
0833デフォルトの名無しさん2007/05/21(月) 21:54:16
struts2になると1の知識がほぼ無駄になるから、今の内に移行した方が良いよ。
0834デフォルトの名無しさん2007/05/21(月) 22:43:15
完全に無駄になるとは思えん
ただ、移行したほうがいいのは同意
1と2じゃ効率が1.5倍は違う
0835デフォルトの名無しさん2007/05/21(月) 23:19:01
struts1からはjsfに行きにくいひとが多そうだ
0836デフォルトの名無しさん2007/05/21(月) 23:40:56
URLベースとイベントベースじゃまったく違うからな

JSFのJSPはぽとぺたでやらないと死ぬので
デザイナが用意したHTMLベース+イベントベースのフレームワークがでてくれば
それが普及するかもしれない
0837デフォルトの名無しさん2007/05/21(月) 23:51:17
facelets使ってるが?

そういう意味ではない??
0838デフォルトの名無しさん2007/05/22(火) 08:17:02
アノテーションでゼロコンフィグ出来ると事かもう2は別物と言っていい。
0839デフォルトの名無しさん2007/05/22(火) 10:26:38
>>832
Firefox + Live HTTP Headers
0840デフォルトの名無しさん2007/05/22(火) 11:15:09
struts2でFormFileを使いたいのですが、いざアップロードを実行すると、
MultiPartRequestがないみたいなエラーを吐いて上手くいきません。(エラーログ
取り忘れてもうアップロードのクラス消した。スマソン)
もしかしてstruts2ではFormFileに代わるクラスが出てきたのですか?
それともこれは只の俺の推測ミスで何か設定が足りないだけですか?
0841デフォルトの名無しさん2007/05/22(火) 14:57:05
>>840
MultiPartでsubmitしてないとかナシね
0842デフォルトの名無しさん2007/05/22(火) 15:25:40
<s:form の属性の方にenctype="multipart/form-dataってやってるんですが、
これでは駄目なんですか?
0843デフォルトの名無しさん2007/05/22(火) 15:39:13
<s:submit の方にmethod="メソッド名"って入れておくとactionの方のそのメソッド
を読みに行くことは分かりますがそれと関係あるのですか?
0844デフォルトの名無しさん2007/05/22(火) 19:11:08
質問なのですがstruts2のActionSupportを実装する利点を教えてください。
0845デフォルトの名無しさん2007/05/23(水) 00:04:33
サーブレットで多重ログイン禁止にするように言われたんだけど具体的にどうすればいいの?
0846デフォルトの名無しさん2007/05/23(水) 00:24:27
サーバが一台ならログインフラグマップでも書けばいい。
複数台ならユーザテーブルかユーザIDが主キーの別テーブルにロックフラグを用意すれば?
ログアウトせずにブラウザ落とされると泣けるってことになりかねないが。
0847デフォルトの名無しさん2007/05/23(水) 20:31:20
ログインフラグマップって何?
横レスすまそ
0848デフォルトの名無しさん2007/05/23(水) 20:51:43
boolean fragment;じゃない?セッションスコープで登録しておいて
ログインすると同時にtrueに切り替えするの。良くは解らないけど^^;
0849デフォルトの名無しさん2007/05/23(水) 22:25:44
ログインフラグのHashMapとかじゃないの?
Map<String, Boolean>みたいな。実際はSet<String>でいいと思うけど。
0850デフォルトの名無しさん2007/05/25(金) 19:21:52
たしかにSetで事足りるな。

ところでTomcatが以下の規約にしたがってない気がするのは気のせい?
> レスポンス全体がレスポンスバッファ内に収まった場合、Content-Length が自動的にセットされます。
バッファサイズ調べると8192バイトがデフォルトで用意されてるんだけど、
400バイト程度でもチャンクで返って来るんだよね
08511322007/05/25(金) 19:43:02
すみません、アドバイスください。formから入力された文字列をDBに登録する
サンプルを作っているのですが、「�_」や「�h」など特殊な文字を入力すると
?で文字化けします。どこで化けてるのか気になりSystem.out.printlnで調べてみた所、
tomcatのコンソールには正常に表示していました。どうやらDBに登録する所で
化けているようです。使っているDBはMYSQLです。何かアドバイスがあったら
レスください。所で、DBの種類によって登録できる文字列の長さなどに差があるのでしょうか?
この辺も分かる方レスお願いします。
0852デフォルトの名無しさん2007/05/25(金) 23:06:00
そんな文字化けてもいいやんww
0853デフォルトの名無しさん2007/05/25(金) 23:09:25
MySQLの文字コードをSJISにするしかないんじゃね
08548512007/05/26(土) 07:52:22
失礼、1つ大事なことを書き忘れてました。
直接MYSQLにinsertしたときは�_などは問題なく登録されるんです。
>System.out.printlnで調べてみた所、
>tomcatのコンソールには正常に表示していました。
なのにおかしすぎません?

0855デフォルトの名無しさん2007/05/26(土) 11:02:46
>>854
全然おかしくない。
08568512007/05/26(土) 11:33:39
そうですか・・・DBにアプリケーション側から登録するときだけ
化けるなんて十分おかしいと思ったのですが・・・
自分で色々やってみることにします。
0857デフォルトの名無しさん2007/05/26(土) 11:52:37
アプリ側の問題であってDBやTomcatの問題じゃないだろ
08588512007/05/26(土) 12:36:56
は?あんた俺がアプリケーション側で private String word;
word = "?"とでもしたとおもってんの?
0859デフォルトの名無しさん2007/05/26(土) 12:36:58
MySQL / Java / tomcat 彼らは全部おかしくない
それぞれ自分の役割を忠実に果たしているだけ
0860デフォルトの名無しさん2007/05/26(土) 12:39:18
>>856
色々やりだすとドツボにはまる
そんないつ辿り着くか分からない回り道しないで
データの流れの整理と仕組みを理解してから
最短距離で攻略しろ
08618512007/05/26(土) 12:50:01
普通の文字列は普通に登録されるんです。�_、�hなど特殊な文字が文字化けする。
DB側の問題かな?と思ってinsert で直接入れてみたら文字化けせずに成功。
んじゃweb側から文字を受け取るときの問題かな?と思い、
System.out.printlnで受け取った文字列を表示させてみたらちゃんと表示されてる。
この状況をどう解釈すればおかしくないと・・・
0862デフォルトの名無しさん2007/05/26(土) 12:59:35
>>857の意味を>>858のように捉える時点で。
08638512007/05/26(土) 13:10:41
おまいはエスパーかw
0864デフォルトの名無しさん2007/05/26(土) 13:18:43
>insert で直接入れてみた

これはサーブレット側のJavaコードに直接書いたっていう意味?
それともMySQLのコンソールに直接書いたっていう意味?
08658512007/05/26(土) 13:24:41
DBに直接アクセスしてinsert ・・・ values('�_');と直接入れてみた。て意味
08668512007/05/26(土) 13:31:56
>>863 意味不明だた、スマソ。
0867デフォルトの名無しさん2007/05/26(土) 13:47:17
どうせShift_JISでも指定してるんだろ。Windows-31Jにすればそれでおしまい。
0868デフォルトの名無しさん2007/05/26(土) 13:49:33
>DBに直接アクセスしてinsert ・・・ values('�_');と直接入れてみた。

これはサーブレット側のJavaコードに直接書いたっていう意味?
それともMySQLのコンソールに直接書いたっていう意味?
08698512007/05/26(土) 13:53:17
それともMySQLのコンソールに直接書いたっていう意味?

こっち
08708512007/05/26(土) 13:57:21
>>867確かにmy.iniの設定みてみるとsjisになってた・・・
Windows-31Jに[mysql]と[mysqld]の方弄ってみたんだが文字化け直らずorz
08718512007/05/26(土) 13:59:46
日本語編だ・・・訂正させて
>>867確かにmy.iniの設定みてみるとsjisになってた・・・
sjis→Windows-31Jに[mysql]と[mysqld]の方弄ってみたんだが文字化け直らずorz
0872デフォルトの名無しさん2007/05/26(土) 14:06:01
MySQLにWindows-31Jなんてあったっけ?
まずはJavaのほうのリクエスト受けるところをWindows-31Jにするべき。
web.xmlのfilterのところ。
08738512007/05/26(土) 14:26:35
struts2使ってるからstruts.propertiesの方Shift_JISにしてトライしてみたが
だめだた。ここまで付き合ってくれてthx後は自分でやってみますわ。
ありがとう。
0874デフォルトの名無しさん2007/05/26(土) 14:47:27

ただの馬鹿だな

そうじゃなかったら釣りだろうな
0875デフォルトの名無しさん2007/05/26(土) 15:19:38
javaならutfで完結させたほうが平和。メール(JIS)は捨てろ。
0876デフォルトの名無しさん2007/05/26(土) 16:02:15
>>873
だからこれじゃないの?
http://www.atmarkit.co.jp/fjava/rensai3/mojibake02/mojibake02.html
0877デフォルトの名無しさん2007/05/26(土) 16:15:03
>web側から文字を受け取るときの問題かな?と思い、
System.out.printlnで受け取った文字列を表示させてみたらちゃんと表示されてる。
0878デフォルトの名無しさん2007/05/26(土) 20:26:12
>>858の解釈は本当にはあほだな
Javaやめれば
08798582007/05/26(土) 21:01:29
んじゃどんな解釈ができると?
08808582007/05/26(土) 21:18:55
おまいだって自分の組んだアプリ馬鹿にされたと思ったらむかつくだろ?
俺>>857言われたときマジでしばこうかと思った。
0881デフォルトの名無しさん2007/05/26(土) 21:38:54
858は煽りじゃなくてJava使うのヤめたほうがいい。

それかIBMのi5で実行させれ。w
IBMのJVM拡張で自動的に文字コードを変換してくれる。
0882デフォルトの名無しさん2007/05/26(土) 21:40:17
横から。
文字コード問題は俺も過去に同じような感じでつまづいた事が
あるから、ちょっとは擁護してやろうと思ってたのに>>880はねーよ。
それが人にものを教えてもらう態度か。


PrintStream#printlnでは表示されるのにおかしくないか?と思ったら
まずはStringとかprintlnの中身がどうなってんのか調べたら?

JavaやDBが世話焼いて変換してくれる部分と、変換してくれない(できない)
部分をどうして切り分けようとしない。
分かってるとおり"特殊"な文字なのに。
■ このスレッドは過去ログ倉庫に格納されています