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

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
05505492007/04/15(日) 18:02:11
解決しました、失礼しました
0551デフォルトの名無しさん2007/04/15(日) 20:17:37
最近strutsを始めました。formから文字を入力してjspへ移行するというして表示するという
単純なサンプルソースを組んだのですが、formに日本語を入力すると文字化けするという
不具合に遭遇してしまいました。んでググったところstrutsにはfilterを
利用する以外この手のタイプのアプリケーションの文字化けは避けられない
と言うことが分かりました。んで参考になるサイトからフィルターとweb.xmlを
コピペしたのですが,文字化けが直りません。何でですか?struts2,tomcat5xeclipse3.2
使っています。参考にしたサイト↓
http://www.javaroad.jp/opensource/js_struts10.html
問題を丸投げしてる感じがして申し訳ないのですが教えてください。
ちなみにstrutsプラグインは使ってません。
05525512007/04/15(日) 20:19:39
失礼、リンクのURL違ってました。
http://www.javaroad.jp/opensource/js_struts10.htm
0553デフォルトの名無しさん2007/04/15(日) 20:31:15
>>551
たぶんweb.xmlの設定だと思う

このスレの>>9あたりを見て試してみてください

struts2とstrut1.*は別物らしいです(そこら辺よくわかりません)
参考サイトだとstruts1.2.4と書いてあるのでstruts2では役に立たないかもしれません


05545512007/04/15(日) 20:33:50
そうですか。早速のご返答どうもありがとうございます。
キーワードを変えてググってみるつもりです。
0555デフォルトの名無しさん2007/04/15(日) 20:45:55
Struts2は1とは確かに別物だが、基本思想は同じ

SpringMVCとかJSFの影響受けて非常にまともになった
新規なら1.xはなかったことにしていいよ
0556デフォルトの名無しさん2007/04/16(月) 10:43:11
まあ、それをいうならStrutsはなかったことにしてもよさそうだけど。
05575512007/04/16(月) 19:35:33
やはりいくら調べても文字化けが直らないのでstrutsのヴァージョンを
1系に落としたら、どうやらフィルターが効いたようで文字化けが直りました。
なんで2系にはフィルター効かなかったんだろ?webで対策出るようになるまで
2系見送りorz
0558デフォルトの名無しさん2007/04/16(月) 20:00:21
ソースがわからんとなんとも
それにログおっていればどうなるかすぐわかるだろ
0559デフォルトの名無しさん2007/04/16(月) 20:50:54
基本的な仕組みをちゃんと理解していないとそうなる。
1.xにしたらどうして化けなくなったのかもわかってないんだろうな。
05605512007/04/16(月) 22:15:35
全く分からないっすorz strutsがjarファイルのみで動いてるということは
分かりましたけどね。あ、厳密にはxmlの設定ファイルも必要でした。
0561デフォルトの名無しさん2007/04/16(月) 22:23:57
struts以前の話っぽいな。
とりあえず動くようになったっぽいとかそういう程度で進めるのはまた同じ問題に遭遇したりして効率悪そうだけど。
まぁ、仕事や勉強が目的でないのならいいか。
0562デフォルトの名無しさん2007/04/16(月) 22:32:44
JAVAは内部はウニCODEだから、例えばメモ帳(SHIFT-JIS、正式にはWINDOWS-3.1J、MS932)で書いた物を
そのままUNICODEとしてコンパイルしたんじゃねか、単に。
0563デフォルトの名無しさん2007/04/16(月) 23:09:48
>>562
バカ発見
0564デフォルトの名無しさん2007/04/16(月) 23:58:21
>>562
コンパイル時のソースエンコーディング指定の間違いと、リクエストパラメータの文字化けは関係ない。
そもそも、こんなところで躓く奴がわざわざコンパイルオプションで
ソースの文字エンコーディングを指定してコンパイルしているとは考えにくい。
デフォルトではプラットフォームの文字エンコーディングで扱われるからな。

それから、SHIFT-JISじゃなくてSHIFT_JISだ。
さらに、WINDOWS-3.1JじゃなくてWINDOWS-31Jだ。
05655512007/04/17(火) 07:54:04
.do で呼ばれたときのformでインスタンスに格納するとき問題が起きるっぽいから
setCharacterEncoding使えるようになれば問題はあっさり改善するんですけどね。
apacheさんたのんます。
0566デフォルトの名無しさん2007/04/17(火) 09:29:26
server.xmlにエンコーディング指定
0567デフォルトの名無しさん2007/04/17(火) 11:06:21
>>565
そもそもstruts2は推奨はdoじゃないんじゃね?
フィルターつかってないの?
05685512007/04/17(火) 17:35:00
>>567 strutsは1系にヴァージョンダウンしたんです。2系はwebに載るようになってから
使おう思って。
0569デフォルトの名無しさん2007/04/17(火) 17:43:40
なにいってるんだ?
2は普通にwebにのってるぞ
05705512007/04/17(火) 19:02:28
いや、文字化け対策とか、必要なjarファイルとか・・・
ver2使ってても参考書通りにやってたらjarファイルver1と同じになったorz
しかもcommonファイルが2つ足りなくて探し回る羽目にw
05715512007/04/17(火) 20:18:11
失礼、ver2使ってても参考書通りにやってたらjarファイルver1と同じになったorz
>>この表現は誤解を与える。eclipse使ってるのだが、eclipseのlibに
struts2\libにあるファイルをインポートしたわけさ、そしたら基本必須jarファイルは
参考書とほぼ同じ、しかもそれだけではtomcat起動した時にコンソールにactionを
使用不可にしますってエラーログ。っておいw必須commonファイルが足りないんかいw
ってことで探し回った経緯。
0572デフォルトの名無しさん2007/04/17(火) 20:37:07
Servlet側で
if(request.getContextType=="text/html; charset=Shift_JIS"){
〜
response.setContextType("text/html; charset=Shift_JIS")
PrintWriter out=response.getWriter();
out.println〜
〜
elseif(request.getContextType=="text/html; charset=UTF-8"){
〜
とか場合分けでゴリゴリいくという手もあるぜ
05735512007/04/17(火) 21:08:54
>>572 すみません、よく理解できないので、しばらく参考書通りにやって
身体に覚え込ませてから応用とか、そういうのやってみようと思います。
なんかコテハンっぽくなってるので消えますね。これからもよろしくお願いします。
0574デフォルトの名無しさん2007/04/17(火) 22:18:11
>>551がんがれぇw
0575デフォルトの名無しさん2007/04/17(火) 22:46:39
<%@page contentType="text/html; charset=Shift_JIS">
0576デフォルトの名無しさん2007/04/18(水) 09:15:10
サーブレットからプロパティファイルを読み込みたいのですが
File Not Foundになってしまいます。
プロパティファイルはどこに配置すればよいのでしょうか?

Properties prop = new Properties();
prop.load(new FileInputStream("test.properties"));


0577デフォルトの名無しさん2007/04/18(水) 10:05:08
Servletでクロスサイトスクリプティング対策で
HTMLエンコーディングをしたいのですが
どのような関数がありますか?
0578デフォルトの名無しさん2007/04/18(水) 10:13:03
strutsのstruts-configに追加で記述したいのですがどうやればいいですか?
<struts-config>
<form-beans>
<form-bean name="chap02_loginForm" type="chap02.LoginForm"/>
</form-beans>

<action-mappings>
<action path="/chap02/login"
type="chap02.LoginAction"
name="chap02_loginForm"
scope="request">
<forward name="success" path="/WEB-INF/jsp/chap02/success.jsp"/>
</action>
</action-mappings>
</struts-config>
<struts-config>
追加記述
</struts-config>
こうやるとエラーが出ます。
0579デフォルトの名無しさん2007/04/18(水) 12:02:18
>>576
InputStream in = this.getClass().getClassLoader().getResourceAsStream(path);
pathはclassesの下からの相対だとおもう。
05805782007/04/18(水) 12:40:38
失礼、事故解決しました。記述方法が全然違ってたw<struts-config>
の子要素でかかんやいかんのね。
05815782007/04/18(水) 12:49:47
表現間違ってたorz"既に記述してある<struts-config>の子要素"に脳内変換
しておいてください。
0582デフォルトの名無しさん2007/04/18(水) 13:34:59
Strutsを使うとURLにjsessionidが付加されてしまいますが
クッキーでのみ取り扱いたい場合はどうすればいいでしょうか?
0583デフォルトの名無しさん2007/04/18(水) 17:36:36
それ、strutsじゃなくてtomcatが付加してるんだよ
そして、それを付けない方法はない
0584デフォルトの名無しさん2007/04/18(水) 17:42:27
ま。。。まじっすか
0585デフォルトの名無しさん2007/04/18(水) 23:38:49
validatorで半角英数字のみ許可される項目を検証する際に
maskで^[0-9a-zA-Z]*$として
チェックしようとしているのですが、
入力値が半角スペースのみの場合に、
エラーとならないのですが、なぜでしょうか。
正規表現の記述が間違っていますか?
それとも他の原因でしょうか。
教えてください。

ちなみにstrutsのバージョンは1.2.9です。
お願いします。
0586デフォルトの名無しさん2007/04/19(木) 07:18:55
Strutsで任意のHTMLを出力する場合
<bean:write>だとHtmlEncodingされてしまうのですが
生のHTMLを出力するにはどのタグを使えばいいでしょうか?
0587デフォルトの名無しさん2007/04/19(木) 08:24:18
URLにjsessionidが付加されてしまうということは
ユーザー認証情報はメモリークッキーに保存したほうが
よいですか?
0588デフォルトの名無しさん2007/04/19(木) 09:23:09
>>585
半角スペースだけだとトリムされちゃわね?
で、バリデートするときには空文字で通るとか
0589デフォルトの名無しさん2007/04/19(木) 09:24:01
>>586
filter="false"
0590デフォルトの名無しさん2007/04/19(木) 09:41:37
>>589
thanks
0591デフォルトの名無しさん2007/04/19(木) 10:18:56
>>582
フィルターでリクエストURLにjsessionidがついてたら
リダイレクトして、このサービスはクッキー未対応のブラウザでは
使用できませんとか?
0592デフォルトの名無しさん2007/04/20(金) 10:35:14
<%@ page contentType="text/html;charset=Shift_JIS" %>
<html>
<head>
<title>1〜10までの計算</title>
</head>
<body>
<h1>実行結果</h1>

<%
int sum = 0;
int i = 1;

while (1 <= 10) {

sum = sum + i;

i = i + 1;
}
%>

<p>
1から10まで加えた合計の値は

<%= sum %>

です。
</p>

</body>
</html>
どなたかこれのどこが悪いか教えてください。%>でエラーが出るんです;;
05935782007/04/20(金) 11:05:28
jspのコンパイルエラーは問題がある部分の<%の始まり部分しか指摘してくれない。
エラーログの<%の中をもう一度確かめてみ?
0594デフォルトの名無しさん2007/04/20(金) 11:34:16
ぐはwCALLPATH通してなかったすw
申し訳ないです^^;
まぁその通し方がわからないのですけどねw
0595デフォルトの名無しさん2007/04/20(金) 11:42:21
つうか、IDE使えよ。
CLASSPATHの通し方わからないくらいなら、NetBeansおすすめ。
0596デフォルトの名無しさん2007/04/20(金) 11:48:47
通せた通せたw
しかし、またエラーだ^^;
ソースどっか変なのかなぁ・・・
0597デフォルトの名無しさん2007/04/20(金) 12:21:43
eclipse
0598デフォルトの名無しさん2007/04/20(金) 13:01:44
NetBeans
0599デフォルトの名無しさん2007/04/20(金) 15:47:27
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>入力画面</TITLE>

</HEAD>
<h1>文字を入力してください。</h1>
<%@ page contentType="text/html;charset=Shift-JIS" %>

<FORM METHOD="POST" ACTION="http://localhost:8080/tomcat/nyuuryoku2.jsp";>

<P> 入力欄 <BR>
<INPUT TYPE="text" NAME="coment" SIZE="20" MAXLENGTH="20"></P>
<INPUT TYPE="submit" NAME="saubmit" VALUE="入力">

</FORM>
</BODY>
</HTML>

これの画面にコメントを入力後に入力ボタンを押したら画面が切り替わり
入力した内容をそのまま出力する画面をJSPで作りたいのですが
どなたかわかりますかね?
漠然とした質問ですいません。
Eclipse Tomcat 使ってます
0600デフォルトの名無しさん2007/04/20(金) 16:35:49
EclipseもTomcatも関係ないな。
まずWEBアプリの仕組みなど基本から勉強したほうがいいんじゃない?
HelloWorldどうやって表示すればいいのですか?と同じだよ。
0601デフォルトの名無しさん2007/04/20(金) 18:21:46
>>599 サーブレットでパラメーターを受け取ってjspにスコープは何でもいいから
送って表示。意味が分からないのなら、サーブレット基礎から勉強した方がよろし。
06026012007/04/20(金) 20:39:03
スマソン、パラメーター受け取ってサーブレットでgetWiterする方法もあった。
ってかこっちの方が楽。
0603デフォルトの名無しさん2007/04/20(金) 21:49:40
このスレよりJava質問・相談スレのほうがいいんじゃないの?
0604デフォルトの名無しさん2007/04/20(金) 23:40:31
>>603
それ言うならJava宿題スレでしょ
0605デフォルトの名無しさん2007/04/21(土) 12:34:17
ホントに宿題ならいいんだが、これが派遣PGが仕事でやってるんだとすると・・・
0606デフォルトの名無しさん2007/04/21(土) 12:38:04
ソフトバンク携帯のアプリを開発しているのですが、
東芝機種だけSSL通信でサーバがエラーを返します。
サーバには疎いので上手い解決法が分かれば教えてもらえないでしょうか。
以下に調べてわかったことを書きます。

・リクエストメソッドPOSTだとサーブレットでgetParameterがとれないことが原因、たぶん。
・リクエストメソッドGETならSSL通信も普通にできる
・HTTP通信ならPOSTでも大丈夫
・SSL通信のときは、リクエストヘッダに
"Transfer-Encoding: chunked""connection: close"がついてる。

・シャープ、NEC、パナソニック、SAMSUNG機種は問題なし。
0607デフォルトの名無しさん2007/04/21(土) 16:23:27
eclipse3.2,struts1,tomcat5.x使ってるんですけど、messages.properties作るじゃないっすか?
そして日本語を入れるとエンコードが違うから保存できませんのエラー。
そこでググったらmessages_ja.propertiesにすればいいと判明。
んで保存したらまたエラー。もうちょいググるとmessage.properties.jaが出てきた
んでその名前で保存したら保存できました。んでアプリケーション起動させると
警告: Resource message-resources/messages_ja.properties Not Found.
2007/04/21 16:11:56 org.apache.struts.util.PropertyMessageResources loadLocale
警告: Resource message-resources/Not Found.
2007/04/21 16:11:56 org.apache.struts.util.PropertyMessageResources loadLocale
警告: Resource message-resources/messages.properties Not Found.
のエラーどうすりゃいいんすか?先の見えない状態です。
messages_ja_JP.properties がない?それはおまいが拒否したかろうがorz
0608デフォルトの名無しさん2007/04/21(土) 16:32:15
ちなみにMessages.propertiesを英語のみでやったら表示させるのは
成功しました。
0609デフォルトの名無しさん2007/04/21(土) 16:44:52
>>607
そのエラーの直接の原因はファイルのエンコーディングがISO-8859-1になってるからだろう。
そのファイルを右クリックしてプロパティ見てみ。

でもそこでエンコーディング変えても解決しないけど。
native2asciiでググれ。
0610デフォルトの名無しさん2007/04/21(土) 17:09:27
ありがとうございます。日本語で保存することができました。
でもいざプラウザに表示するエラー文字が文字化けします。
それをググれ言ってるんですね。ありがとうございました。
06116072007/04/21(土) 19:01:41
properties エディタ入れたら速攻で文字化け直ったよ・・・
今までの苦労はいったいorz。プラグインの最終更新が2年前なんだけど、
eclipseの互換とか大丈夫なんだろうか?
こんな便利なプラグイン更新に加えるべき。
0612デフォルトの名無しさん2007/04/21(土) 19:07:16
やべぇ、いつの間にかeclipse無しではPG組めない頭になってる。
偶にはマニュアルでやってみないとな・・・んで不具合に遭遇して1日潰れるんだろうなorz
0613デフォルトの名無しさん2007/04/21(土) 19:08:18
Eclipseがなかったら、もうプロジェクトとか回らない
0614デフォルトの名無しさん2007/04/21(土) 19:09:48
NetBeansがあれば大丈夫だよ
0615デフォルトの名無しさん2007/04/21(土) 19:32:28
つうか、EclipseがなかったらIDEAとかちゃんと買って開発するようになるから、いまよりもっと楽になる。
NetBeansはEclipseがなかったらここまでよくなってないけど。
0616デフォルトの名無しさん2007/04/21(土) 19:33:42
>>611
> 今までの苦労はいったいorz

つまり勉強不足。プラグインの話じゃないよ。
0617デフォルトの名無しさん2007/04/21(土) 19:43:03
EclipseよりまともなIDEAとか見あたらない
0618デフォルトの名無しさん2007/04/21(土) 19:57:25
プシコくんはイデアが大好き
最近はIntegrated Development Environment を IDEAと呼ぶようになったのかw
0619デフォルトの名無しさん2007/04/21(土) 20:09:55
IDEAってなんでつか?
0620デフォルトの名無しさん2007/04/21(土) 20:25:40
Integrated Development Environment Ahoo
0621デフォルトの名無しさん2007/04/21(土) 20:35:06
>>619
Internet Developer plug-in for Eclipse (Advanced edition)
0622デフォルトの名無しさん2007/04/21(土) 20:44:16
もうServletやJSPは分からない体になっている。
JSPは所詮VIEWだから置いておくとしてもServletはやばいかも。
06236072007/04/21(土) 20:51:23
>>616 strutsと参考書見ながら格闘中でふ。激闘3日目
0624デフォルトの名無しさん2007/04/21(土) 21:10:44
>>619
IntelliJ IDEA
http://www.xlsoft.com/jp/products/JetBrains/index.html

使うのにお金がかかるのを除けば、最強のJavaIDE
0625デフォルトの名無しさん2007/04/21(土) 21:15:31
苦しい言い訳乙
0626デフォルトの名無しさん2007/04/21(土) 21:46:05
>>619
Impress Digital Entertainment Academy
0627デフォルトの名無しさん2007/04/21(土) 21:51:42
IDE・・・イデって読んでイデオンを連想したジャマイカ。
IDEはフリーソフトでなんぼよねぇ
0628デフォルトの名無しさん2007/04/21(土) 22:04:12
>>625
話の流れを見ると言い訳には思えないけど
0629デフォルトの名無しさん2007/04/21(土) 22:29:01
>>615
Interstageとか買われてみればいい
0630デフォルトの名無しさん2007/04/21(土) 22:44:35
あれってただのEclipse派生でしょ?
専用ライブラリも個人的にはダサくて使いたくなかった。
特にロギングのあたりは。
0631デフォルトの名無しさん2007/04/21(土) 22:48:27
今さらEJBは使わないよね
0632デフォルトの名無しさん2007/04/21(土) 22:57:43
>>619
Industry Data Exchange Association
0633デフォルトの名無しさん2007/04/21(土) 23:04:40
GlassFish+Java Logging APIという純Java仕様でなんか作ってみるかな。
PostPetだかを見ればいいのかも知れんが、英語きらーい。
0634デフォルトの名無しさん2007/04/21(土) 23:39:08
>>630
考えてみなよ、F製だよ?
0635デフォルトの名無しさん2007/04/21(土) 23:53:05
>>633
このスレはstruts使うようなのでそこで強制CommonsLoggingだな
あれ標準APIと相性悪すぎ

でも、glassfish使うだけなら英語と格闘する必要はねーべ
Sunが日本語化してるし
0636デフォルトの名無しさん2007/04/22(日) 00:06:12
CommonsLoggingも随時SLF4Jに置き換わって組んだろうね。
0637デフォルトの名無しさん2007/04/22(日) 00:20:03
>>631
今からEJB3だと思っているが
0638デフォルトの名無しさん2007/04/22(日) 00:27:47
EoDは決して口だけじゃなく、効果を表してきてるからね。
あとはデバッグ手法の高速化がサポートされれば原点回帰は起きるよ。
0639デフォルトの名無しさん2007/04/22(日) 01:42:58
EoDってなんですか?
0640デフォルトの名無しさん2007/04/22(日) 01:44:30
>>639
東京の首都
0641デフォルトの名無しさん2007/04/22(日) 02:00:36
>>619
Intel Dynamic Execution Architecture
0642デフォルトの名無しさん2007/04/23(月) 09:30:58
最新のstrutsと旧strutsの大きな違いを300字程度で教えてください。
0643デフォルトの名無しさん2007/04/23(月) 10:51:22
POJOベースになった別物
0644デフォルトの名無しさん2007/04/24(火) 10:51:01
やっぱり別物だよな。
名前が同じだけど、なんか違う気がしていた。
0645デフォルトの名無しさん2007/04/24(火) 11:15:09
流れとしては同じURLベースだからまったく別物というわけでもない
構築方法が異なるというだけ

ほぼ上位だと思っていい
というか1.xはイラネ
0646デフォルトの名無しさん2007/04/24(火) 12:07:48
2系って struts-configのaction要素のpath属性のURLでformを送信。type属性と
name属性からactionとactionformを判別って流れではないんですか?
0647デフォルトの名無しさん2007/04/24(火) 19:39:36
strutsのvalidation.xmlの仕組みがイマイチ掴めないのですが、
ActionFormのvalidate()メソッドで代用効きますか?
0648デフォルトの名無しさん2007/04/24(火) 20:38:34
>>647

できますよ。というかvalidate()メソッド使ったほうがいいですよ
06496472007/04/24(火) 21:44:36
それを聞いて少し安心しました。でも行く行くはvalidationの方も極めないとですね
レスありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています