トップページ⇒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
0075nobodyさん03/06/01 17:38ID:fpa7NJkx
>>74
知ってますが
だから、どこかの設定で変えられるのかかなぁと。

ちなみに
MVCに従うなら、どこに手を入れるべきだと思います?
これの答えがめちゃくちゃなら、
MVCという言葉を知っているだけに過ぎないですよね。

>>73
文字数とかは?
0076nobodyさん03/06/01 17:52ID:???
>>74
知っていてなんでJSP上でそんなことしようとする?
Servletでやれ
0077nobodyさん03/06/01 18:06ID:QjqCOy4N
>>75
問題ないです。'あ'とかでやってますし。
詳細を書きます。書籍情報を登録するテーブルを勉強がてら作ってみたのですが、
Insert into book_table (name,sectioncd,author1,author2,price,impressions) values ('あああ','300','111','222',333,'444')
というSQLでSQLExceptionが発生し、さらに
Check the manual that corresponds to your MySQL server version for the right syntax to use near ''44' at line 1"
というメッセージがでました。 ''44' というのがとても気になるのですが何なのでしょう?
日本語使わなければ登録できてます。助言をお願いします
0078nobodyさん03/06/01 18:54ID:???
>>75
もしかして、
「あるファイルをZIP圧縮して、そのファイルをダウンロードさせる」
んじゃなくて、
2chみたいに、zip圧縮したHTMLをブラウザで表示させる、ってこと?
#仕組みは知らんのでうまく説明できんが

だったらMVCの観点でもJSPで処理できた方が良いやね。
でも漏れはやり方知らん。
0079nobodyさん03/06/01 19:07ID:???
>>78
もしそれをやるんだとしてもZIPの展開はModelの役割。
展開して出力ストリームかなんかにしてそれをBeanまたは
そのプロパティとしてスコープに格納するのはController。
JSPではそれを出力するだけだね。
もしこれらを全部JSPオンリーでやりたかったらそれこそ、
JSPのメリットを損なわないようにカスタムタグでも作れ。
0080nobodyさん03/06/01 20:20ID:fpa7NJkx
>>78
>2chみたいに、zip圧縮したHTMLをブラウザで表示させる、ってこと?
gzip-encodingと言ったら、それ以外はたぶんないので。
gzipで圧縮して送るだけですね。
ヘッダをみて、ブラウザが勝手に展開してくれるので。
そう意味では79に書かれてる事は、読み流しておきますね。

まあ、これでMVCとかそんなレベルの問題の話しをしているのでは
無い事を認識してくれればいいんですが。

あと、カスタムタグではできないと思いますけど。

海外のサイトでも問題になっていましたが、
解決方法がないようなので、きっとないのでしょう。
jsp-servlet変換を行うパーサーをいじれれば
簡単なんですが。
Tomcatについて調べるのは面倒ですし。
変換後のjspをキャッシュから持ってきて、書き換えるのが
手っ取りばやそうです。
0081nobodyさん03/06/01 20:21ID:fpa7NJkx
そうそう

>jsp-servlet変換を行うパーサーをいじれれば
>簡単なんですが。
だから、どこかに設定すればできるようになってると思うんですよね。
あぁ、こっから書いておけば誤解もなかったのかな。

>>77
impressionは文字列を入れられるんですか?
0082nobodyさん03/06/01 20:50ID:QjqCOy4N
>>81
回答ありがとうございます。impressionはtext型、priceはint型,あとはvarchar型です
ところで、またおかしなことを発見しました.
SQL文をSystem.out.printlnで出しているのですが、
Insert into book_table (name,sectioncd,author1,author2,price,impressions) values ('ああ','300','いい','、「',1234,'、ヲ')
と出力されました。しかし、私がHTMLフォームから入力したのは
順に 'ああ','300','いい','あ',1234,'う'
と入力しているのです。'ああ'だとデバッグ文で化けないのに'あ'とか'う'の一文字だと化けてます。'ああ'の用に二文字以上だと
SQLExceptionでシンタクッスエラーがどうこう、となってしまいます


0083nobodyさん03/06/01 20:56ID:???
MySQLの文字コードにあわせてエンコードして送れよ
0084あぼーんNGNG
あぼーん
0085nobodyさん03/06/01 22:04ID:QjqCOy4N
>>83

文字列のエンコードというのは以下の方法でやっていますがあってますでしょうか?
String hoge = request.getParameter("hoge");
String hoge2 = new String(hoge.getBytes("EUC-JP"),"EUC-JP")
でいいんでしょうか?

MySQLのインストールの時にujisと指定したような気がするのですが、
定かではないです。確認する方法ってあるのでしょうか?

全然的はずれなこと書いていたらすいません
0086nobodyさん03/06/01 22:16ID:fpa7NJkx
SyntaxErrorと、文字コードは関係ないと思う。

いまいち、状況が把握できないな。
ソースコード全部アップしてくれたほうが
速く解決すると思うよ。
0087nobodyさん03/06/01 22:54ID:QjqCOy4N
//DB接続用変数の宣言
Connection conn = null;
Statement stmt = null;

//jdbc_URL
String jdbc_URL = "";

//SQL文
String SQL ="";

SQL += "Insert into book_table (";
SQL += "name,sectioncd,author1,author2,price,impressions) ";
SQL += "values (";
SQL += "'" + name + "',";
SQL += "'" + sectioncd + "',";
SQL += "'" + author1 + "',";
SQL += "'" + author2 + "',";
SQL += price +",";
SQL += "'" + impressions + "')";

System.out.println("SQL:" + SQL);


try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
e.printStackTrace();
}

jdbc_URL = "jdbc:mysql://hoge/geho?user=xxx&password=yyy";
jdbc_URL += "&UseUnicode=true&characterEncoding=EUC-JP";
0088nobodyさん03/06/01 22:55ID:QjqCOy4N
try{
conn = DriverManager.getConnection(jdbc_URL);
stmt = conn.createStatement();
}catch(Exception e){
e.printStackTrace();
}


try{
stmt.executeUpdate(SQL);
}catch(Exception e){
e.printStackTrace();
}
try{
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}

008985=87=8803/06/01 22:56ID:QjqCOy4N
ヘタレコードで大変恥ずかしいのですがソースです。ちなみに例外処理とか全然わかってないです
0090あぼーんNGNG
あぼーん
00915403/06/01 23:29ID:+EWj3hSA
>57
JSP + BeanでBeanを変更してもTomcatを再起動しなくてもいい方法教えてけれ。

Windows2000
Tomcat4.1.24 J2SDK1.4.1_02
Eclipse2.1 + Lombozでやってます。
0092nobodyさん03/06/01 23:49ID:???
>>91
コンパイルして十数秒ほっとけば?
0093nobodyさん03/06/01 23:50ID:fpa7NJkx
DriverManager.getConnection(
"jdbc:mysql://localhost/",
"root",
"");
関係ないけど、こういう書き方の方が便利かな。

やっぱわかんないや、ごめん。

JDBCドライバのバージョンを変えると上手く行くかも。
2.0.14を使ってるけど、動作確認済み。
009485=87=8803/06/02 00:03ID:a+SCCf4R
>>93
そうですか。
でも親切にありがとうございました。
ちなみにJDBCはmysql-connector-java-3.0.6-stable-bin.jarっての使ってます
0095nobodyさん03/06/02 00:29ID:???
>>94
SQL文の最後の「;」がないだけじゃ?
>SQL += "Insert into book_table (";
>SQL += "name,sectioncd,author1,author2,price,impressions) ";
>SQL += "values (";
>SQL += "'" + name + "',";
>SQL += "'" + sectioncd + "',";
>SQL += "'" + author1 + "',";
>SQL += "'" + author2 + "',";
>SQL += price +",";
>SQL += "'" + impressions + "');";
                   ↑これ
0096nobodyさん03/06/02 00:40ID:???
>>95
あほか

SQL*plusしか使ったこと無いだろ、おまえ
0097nobodyさん03/06/02 00:44ID:???
>>91
お前はコンソールも見ないのかと小一時間
0098nobodyさん03/06/02 00:45ID:Qfc3wwjK
MVC厨はどこいった?
00999503/06/02 00:47ID:???
>>96
すまん、その通りだ
ってかSQL文しか見てなかったよ・・・
0100nobodyさん03/06/02 00:49ID:???
>>99
最後に;をつけなきゃエラーが返ってくるってのはSQL*plusの仕様。
SQLの仕様じゃない。
0101あぼーんNGNG
あぼーん
01029503/06/02 01:09ID:???
全然知りませんでした
もっと勉強してきます
|Google|   λ....
0103あぼーんNGNG
あぼーん
0104あぼーんNGNG
あぼーん
0105あぼーんNGNG
あぼーん
01065403/06/02 10:11ID:???
Beanを修正したら、Tomcat再起動しなきゃダメ? の件ですが、

>92 何秒待ってもだめみたいです。
>97 コンソールって、Eclipseの下に表示されてるやつのこと?

>57 で煽られたから、解決方法があるのかと思ったのだけど。
解決できないのなら、なんで煽られたのか分からん。
0107あぼーんNGNG
あぼーん
0108nobodyさん03/06/02 15:25ID:e7shElzU
>>106
server.xmlの <Context> に reloadable-"true" は付いてますか?
010910803/06/02 15:25ID:e7shElzU
すまん、reloadable="true" だ。
0110あぼーんNGNG
あぼーん
01115403/06/02 16:24ID:???
>108 >109
webapps\app.xmlにreloadble="true"で、できましたー。
めっちゃうれしい。煽られた甲斐があった。感動した。
0112nobodyさん03/06/02 22:30ID:TdjUH3D0
>ちなみにJDBCはmysql-connector-java-3.0.6-stable-bin.jarっての使ってます
思いっきりこれ。
これ使うとなんか上手くいかなくて
2に下げたら上手く行ったんだよね。
何が上手く行かなかったのかは忘れてしまったんだけど。
0113nobodyさん03/06/02 22:41ID:TdjUH3D0
あと、文字コードの変換方法とか参考にして
http://www.gimlay.org/~javafaq/S146.html
0114nobodyさん03/06/03 00:37ID:vRisExb9
>>80
えっと解決済みでつか?
Servlet API2.3/JSP1.2のApp鯖使えるならフィルタの仕組みを利用すればいいでしょ。

この本にズバリその方法が載ってるですよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4797319895/ref%3Dpd_bxgy_img_2/249-9050084-3349952

0115JSP勉強中03/06/03 11:25ID:VHn8sAXL
JSPについて勉強しています。
ただいま、DB接続のコネクションプールのところを
やっているのですが、なぜこんなことができるのか
仕組みがわかりません。
.jspは.javaから.classになって、いってみれば
一つの.jspは一つのプログラムとして単体で
動作しているのですよね?
なのになぜ、他の.jspが生成したコネクションプールクラスの
インスタンスを利用できるのでしょうか?
0116nobodyさん03/06/03 11:32ID:???
> いってみれば一つの.jspは一つのプログラムとして単体で動作しているのですよね?
違います。JSP以前にJavaのお勉強をしてください。
0117JSP勉強中03/06/03 11:38ID:VHn8sAXL
>>116
Javaから勉強しなおします。
0118sage03/06/03 17:45ID:???
C, Perl がわかってる人がはじめるサーバサイド Java の
いい本ってないですかね?
011910803/06/03 20:56ID:t2Pee81Z
>118
「モア・サーブレット&JSP」ってのが包括的な内容でおすすめ。
0120あぼーんNGNG
あぼーん
0121nobodyさん03/06/03 21:53ID:vRisExb9
>>118
Strutsのことも頭の片隅におきながら勉強しとくと吉。
012211803/06/04 14:47ID:???
>119 ありがとうございます、今見てみています。
>121 Struts は難しそうなので今のところはやっていませんが、早い段階からやったほうがいいのかな……。
0123nobodyさん03/06/04 16:27ID:IoqPnd5u
>>122
ええ。なので最初は「頭の片隅」程度でいいかと。
Strutsなど上位のフレームワークの本格的な導入は、
Java自体に慣れて、かつPerl/CGIとの違いなど理解できてからでも遅くないす。

0124nobodyさん03/06/04 20:44ID:???
>>122
ボトムアップ式、トップダウン式のどちらがお好き?
洩れはトップダウン式が好きなんでまずStruts使ってみて
それでJavaでのサーバーサイドになれました。

以前はPerlやPHPでサーバーサイドプログラミングしてたんですけど、
一気にJavaの魅力にはまってしまいましたよ。
0125nobodyさん03/06/04 21:12ID:AOhZDyVm
C,Perlがわかっていても
オブジェクトオリエンティドっていう厚い壁が。
センスが無いと思うならデザパタの本を。
あると思えば、Javaの言語機能を覚えよう。

もちろん、中途半端なJavaの知識でもできなくはないけど
本来できる事の半分くらいしかできなかったりするかも。
クイックソートを知らずにバブルソートの遅さで断念みたいな
感じ。

Cでmallocとか使った事ないなら、Javaをマスターするのには
けっこう時間がかかるだろうな。
自称Cがわかってるはどこまでわかっているのか。

で、本題だけど
本はなんでもいいんじゃない?
0126あぼーんNGNG
あぼーん
0127あぼーんNGNG
あぼーん
0128nobodyさん03/06/04 22:08ID:P8L/c8q4
mallocが125の中で何の基準になっているのか
0129nobodyさん03/06/04 23:05ID:???
new=mallocだろ
0130あぼーんNGNG
あぼーん
0131あぼーんNGNG
あぼーん
0132nobodyさん03/06/05 11:20ID:T+KV7SZK
JSP内で使用していないカスタムタグについて、
<%@ taglib uri="..." prefix="..." %>
と宣言してある場合、実行速度に影響はあるのでしょうか?
あるとしても、JSPがコンパイルされる最初の一回だけだったりしますか?

0133nobodyさん03/06/05 13:45ID:+OpBxhSr
>132
そんなに影響は無いとは思うけど、
使わないのは宣言しない方が、よさげ。
インスタンスが作られてしまうので
013411803/06/06 10:12ID:???
>123,124
今のところフレームワークの必要性がいまひとつよくわかってないので (便利なのかなあ、程度)
それでは頭の片隅に置いておきます。どちらかというとボトムアップのほうが好きかも....

>125
C++ を通ってないので確かに OO は苦手です
8086のアセンブラから入ったので malloc とかはわかりますが、
近年 C 自体ずっと使ってません。
0135nobodyさん03/06/06 14:41ID:wJtPhAkt
>>133
ありがとうございます。
JSPを見て回って不要なものを消すことにします。
0136nobodyさん03/06/06 14:50ID:rP8LAn8i
Servletはもう終わりでしょう。
0137あぼーんNGNG
あぼーん
0138nobodyさん03/06/06 17:23ID:8BK7tk7M
こんにちわ。
JSPのプルダウンについて、質問したいのですが・・・
時間の分を5分刻みでプルダウンの中に格納し、
ユーザーが選択できるようにしたいんですけど、
***になにを指定したらいいのかがわかりません。
イメージ的には、カウンターのjを指定したいのですが、
うまくいかず・・・。
ご存知のかたいましたら、お知恵をお貸しください。。。。

<select name="Time">
<option value="default"> //デフォルトの空白

<% for( int j = 0 ; j < 55 ; j = j+5 ){ %>
<option value="ji">*** ←ここをどう指定したらよい??
<% } %>
</select>
0139あぼーんNGNG
あぼーん
0140nobodyさん03/06/06 23:34ID:???
>>138
最悪だな
お前何を勉強してきたんだ・・・

よくある入門書なんかの「第一章・はじめてのJSP」みたいな
かなりはじめに書いてあるようなことなのに
0141nobodyさん03/06/08 02:36ID:2oHTynA1
>> 138
それ以前に、<option value="ji">でいいのか?
HTML自体まずいんじゃない?何するつもりか知らないけど。

<option value="ji"><%=j%>
0142nobodyさん03/06/08 11:57ID:???
↑お前もばかか?ちゃんとタグは閉じろよ(プ
0143nobodyさん03/06/08 12:53ID:???
↑
つまんねーネタに喜んで飛びつくなよ低脳
0144nobodyさん03/06/08 14:25ID:???
optionって閉じる必要があったっけ?
0145nobodyさん03/06/08 14:41ID:???
>>144
省略は可能だね。
なんでもちゃんと閉じたほうがトラブルは少ないと思うけど。
0146nobodyさん03/06/08 14:52ID:???
「HTML 4.0 は〜」とか「SGML が〜」とか言い出す サブ い奴がまた出そうだな (藁
0147nobodyさん03/06/08 18:36ID:OXw+LV+Y
ちなみに、CHTMLだと</OPTION>は記述できないようだ。
0148nobodyさん03/06/08 18:37ID:hQzg5/td
J2EEとどう違うの?
0149nobodyさん03/06/08 19:36ID:???
>>148
Servlet,JSPはJ2EEの一部。
0150nobodyさん03/06/08 21:55ID:???
>>149
thx!
015114103/06/08 23:49ID:???
>>142
タグを閉じるか閉じないかは好みだと思ったものでね。
指定した部分答えてるんだから、いいじゃないか。
個人的には開いたタグは閉じるし、属性もダブルクォーテーションで囲う。
onload()が利かない原因を探すのが大変だしな。

ところで質問。
JSPとBeanのみで、サーブレットや web.xml を使わずに
webアプリを構築しようとした場合、何がやばい?
ちなみにそのアプリは、他にフレームワークを使用しているところと
servlet、JSP,JavaBean で作っているところが共存しているので・・・
漠然と危機感を持ってはいるんだが、具体的にどうとは言えず
ちと困っているのだ。
0152nobodyさん03/06/09 00:06ID:???
>>151
> ところで質問。
技術的にはServletを使わないでアプリ作れるが、
拡張性、メンテナンス性が激しく低下する。
他人が書いたそんなコードは見たくもないな。
web.xmlいじらないのは微妙だな。
FilterやServletContextListnerは使わんでいいの?
0153nobodyさん03/06/09 00:17ID:???
>>151
web.xmlを使わないとゆーことは、JSTL(Taglibs)
なんかも使わずに本当にJSPのscriptletとuseBeanだけでこなすのか。
ちょっと大変な気もするが、無茶とも言えないな…
0154nobodyさん03/06/09 00:25ID:???
>>153
JSP1.2&Servlet2.3対応コンテナ(Tomcat4以降とか)ならweb.xmlさわらないで
カスタムタグ使えるでしょ?
015515303/06/09 00:35ID:???
>>154 をを?それは初めて知ったよ。Thanks
0156JSP勉強中03/06/12 13:59ID:NdFy1lyI
servletを動かすにはweb.xmlて必需ですか?
0157nobodyさん03/06/12 23:21ID:???
そうだが馬鹿は帰るか氏ぬかしろ
0158nobodyさん03/06/13 10:13ID:???
ちょっと動かすだけならいらね。
0159JSP勉強中03/06/13 11:05ID:Ov6yST5Q
JSPだけでシステム構築してもいいですか?
0160nobodyさん03/06/13 11:13ID:???
>>159
できるが、恐ろしくメンテが困難なコードになりそうだな。
自己満足ならいいが、他人が書いたそんなアプリケーションは見たくもない。
0161nobodyさん03/06/14 01:28ID:???
中小規模なら Bean と JSP だけで十分だな。
サーブレットが必要なのはいろいろな状態を見て画面遷移制御までサーバ側で
やらなきゃいけないシステムだ。
016215103/06/14 03:33ID:HZe8pKye
>>152、153
レスありが�d。

>>160
がんばれよー。
大変そうだから、という理由だけで物作るのはやめたほうがいいぞ。
経験者は語るぞー
0163nobodyさん03/06/14 05:58ID:???
>>161
BeanってのはJSPからサーブレットを呼び出す、あるいはサーブレットかJSPに値を渡すための
技術だと思っていたが、サーブレットが要らないってどういうこと?

それとも俺激しく勘違いしてる?
0164nobodyさん03/06/14 11:11ID:???
>>163
ちょっと勘違いしている
0165nobodyさん03/06/14 11:14ID:???
>>161
それじゃ、言語はJavaだがやっていることはほとんどPHPだな。
オブジェクト指向もあったものじゃない
0166nobodyさん03/06/14 11:37ID:???
>>165
MVCとオブジェクト指向を勘違いして無いか?
016716303/06/14 14:33ID:???
サーブレットかJSPに値を渡すための
         ↓
サーブレットからJSPに値を渡すための

の間違いね。誰か俺の勘違いを修正してください。
0168nobodyさん03/06/14 14:40ID:???
Beanは値の受け渡しのためにも使うが、それ以外のこともできる。
0169趣味レベルの質問03/06/14 19:45ID:???
コマンドプロンプトからTomcatを起動している場合
正常に動作しているアプリケーションが、
NTサービスからTomcatを起動した場合は
「ドライバおよびソースが見つかりません。」
というログをはきやがります。

DBを使わないものは正常に動作します。
ちなみにDBはACCESSです。
0170nobodyさん03/06/14 19:51ID:???
>>163
Beanっていうのは、JavaBeans規約(のいくつか)に則って作られた
Javaの部品のこと。

別にサーバーサイドで動こうが、クライアントで動こうが、
普通のアプリケーションで動こうが関係ない。

サーバーサイドの業務処理に使う部分であれば、
全部の規約を満たしていなくてもBeanって言う場合もある。
0171nobodyさん03/06/14 22:47ID:???
Beanはサーブレットだろ。
0172nobodyさん03/06/15 01:01ID:p1iP6PHg
>>171
いやいや、それは違いますよ。

ところで、皆さん文字コードはどうしてますか?
0173nobodyさん03/06/15 01:03ID:???
「Beanがあればサーブレットなんていらない!」と言ってた161はどこいった?
0174nobodyさん03/06/15 01:09ID:???
>>172
指定してますよ
■ このスレッドは過去ログ倉庫に格納されています