■■ Servlet/JSP(EJB含む) 質問スレ Part2 ■■
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/05/14 11:32ID:RETM9b3/前スレ
■■ Servlet/JSP(EJB含む) 質問スレ ■■
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
00021
03/05/14 11:33ID:RETM9b3/前スレが1000直前でログ行きになりましたので作成しますた。
0003nobodyさん
03/05/14 12:41ID:MmBrbGNy何かお勧めの書籍はありませんか?
割に初心者向きなのがよいのですが
0004nobodyさん
03/05/14 14:41ID:???私も初心者なので参考になるかどうかは?ですが
技術評論社がいろいろ出してますよ
ttp://www.gihyo.co.jp/
Webでは、アットマークがわかりやすいです。
ttp://www.atmarkit.co.jp/fjava/
その他初心者向けでわかりやすいところ
ttp://www.hellohiro.com/
0005nobodyさん
03/05/15 07:54ID:Xu+tBaMk0007nobodyさん
03/05/15 11:15ID:???使ってみ。
多分Perlで十分と思うはずだよ。
Javaは5人以上で開発する大きいアプリ向きだよ。
00085
03/05/15 19:08ID:???なるほど。
プログラミングはほとんどやったことがないのですが、Javaにとても興味があり時間をかけて勉強しながらつくれるものがあればいいなと思い質問しました。
サーバサイドJavaを使用したWebサイトではamazonぐらいしか知らないのですが、他にここのサービスはJavaだよ。などありましたら教えて下さい。
0011nobodyさん
03/05/15 22:20ID:???00125
03/05/16 08:43ID:???Appleの.MacとFromAをみました。
これらのサイトは、htmlだけでは実現できないのでしょうか?
0013nobodyさん
03/05/16 10:02ID:???AppleはWebObjectに決まっとろーが。Javaは無関係ではないが。
>>12
入力フォームがあってその応答ページがある場合は、HTMLだけでは無理。
00145
03/05/16 12:36ID:ILcFXqKNFromAのサイトの場合は、目的の情報をみるために勤務地や勤務時間帯、業種などをチェックボックスなどで選び、
そのチェックによって表示させるhtmlを変えるといった事をJavaでやっているのでしょうか?
この場合は一度Javaでシステムをつくってしまえば、後はデータベースに勤務地、勤務時間帯、業種などを入力すればいい。
こんな風に考えて良いのでしょうか?
また、cgiと比べた場合のメリットは、どんな所があるのでしょうか?
0015nobodyさん
03/05/16 12:50ID:???やっぱりWebPG板は、プログラム板に比べて極端にレベルが低い。
0017nobodyさん
03/05/16 13:15ID:???同感だけど、でもなんでだろうね?
「Web」ってつく場合はなんでも敷居が低い(つまり人口が多い)から
必然的に初心者やDQNが多くなるってことでちゅか。
001813
03/05/16 18:12ID:???FromAに関してはその通り。
CGIとJavaはできること自体はほとんど同じだよ。
CGIはCommon Gateway Interfaceの略だけど、
どこまでをCGIというのか俺はよく知らん。ServletもCGIの一種かもしれない。
Servlet+JSPを他の言語と比較すると、
初回起動時にコンパイルされ、実行されるので、応答が速いのが特徴。
Javaがオブジェクト指向言語であり、型をもった言語なので、
規模の大きなシステムに対応できる。
0019nobodyさん
03/05/16 21:11ID:???どうすればいいのでしょうか?
jspがある場所の絶対パスを取得できるようなメソッドを探しています
0022nobodyさん
03/05/16 22:43ID:???その場合、jspが収納されているディレクトリまで表示してくれません.....
application.getRealPath(request.getServletPath())
のようにしても大丈夫でしょうか?
0023nobodyさん
03/05/16 23:14ID:???やってみればいいじゃん(´Д`;)
JSPが収納されている所の相対パスはわかるんだから"/"でやるか、
getServletPathを加工すればいいんじゃない?
0024nobodyさん
03/05/16 23:42ID:???String To_oT = application.getRealPath(unko.substring(0,unko.lastIndexOf("/")));
といった具合でヤったら上手くイケましたが、なんか変じゃないでしょうか?感想きぼん
0025nobodyさん
03/05/17 00:42ID:GRxoPR2oOracleのJDBCでClass.ForNameでドライバーをロードしてます。
ライブラリ設定でclasses12.zipだとClassNotFoudExceptionを起こしますが、
拡張子をかえてclasses12.jarだと使えるようになりました。
設定が何か足りないんでしょうか?
使えますが、今までそう言う使い方をしたことがないので気持ち悪いです。
教えていただけたらうれしいです。
0026nobodyさん
03/05/17 22:02ID:???perlとかに比べるとキータイプ量が多すぎ(IDE使っても)
struts使えばいいんだけど、重いし(taglibのhtml parseが重いのか?)
javaは好きだけど、もーちっと早く(軽く)ならんかねぇ。
0028nobodyさん
03/05/20 17:17ID:???shockwave上で配列を送信し、JSP(Tomcat)が処理をする。
JSPから帰ってきた値をshockwave上でロードし表示する。
FLASHでは出来たんだけどどうもDirectorとなるとねぇ・・・
0029山崎渉
03/05/22 02:02ID:???0030nobodyさん
03/05/22 20:09ID:???に関して質問なんですけど、質問させて下さい。
データベースに直接アクセスするクラス(SQL文を発行
するクラス)はテーブルごとに作るべきなのでしょうか?
私の考えとしては良くないと思うのですが、知り合いが
『テーブルごとに作った方が分かりやすいからそうするべき、
そして関連するテーブルの操作を分かりやすくするために
関連などを統括して管理するFacadeクラスを作れば完璧』
と言ってました。ちょっと納得したんですけど現場ではどうなんでしょうか?
データベース周りでもう一つ質問させてください。
トランザクションが使えないデータベース(InnoDBのないMySQL)
を使わなくてはいけないのですが、トランザクションを代替する
技術ってのはあるのでしょうか? たまに『テーブルロック』
という言葉を聞きますが意味が分かりません(調べたのですが。。)
0031nobodyさん
03/05/23 13:39ID:???0032nobodyさん
03/05/23 13:39ID:+oHLdgr/0033nobodyさん
03/05/23 20:51ID:???一つめ、デザインパターン的にはそれでいいんじゃないの?
それかビュー作って、それを操作するクラスを直接いじるか。
二つめ、テーブル全てにロック掛けること。
0034nobodyさん
03/05/23 21:57ID:4w3zPP+u0035nobodyさん
03/05/24 00:10ID:???なるほど。。
私は今までデータベースアクセスクラスは意味で分けていました。
あるメインテーブルがあってそれの関連テーブルがあって……、っていうときに
一つのクラスで全てやってたんですね。この方がデータベースを使用したい
他のクラスから見た時に分かりやすいと思ったから何ですけど、>>30で書いた
方法でも外部から見た時のインターフェースは分かりやすい上に管理しやすい
ですよね。納得しました! ありがとうございます!
テーブルロックの方も理解できました(改めて日本MySQLユーザ会の
翻訳を読んでみたところ書いてありますね……)。テストコードも
作成して動作確認しました。
0036nobodyさん
03/05/25 03:15ID:wztbsk0UmdbをODBCで接続しています。
SELECT文で日付型のフィールドを月だけを条件に
WHERE LIKE ’????/変数/??’
で抽出しようとしてますがレコードセットが取得できません。
条件を WHERE Like ’2003/変数/23’にするとexecuteQueryで
レコードセットを取得できます。
ワイルドカードを使った条件の指定が出来ないのですが
どうすればよいのでしょうか?
0037nobodyさん
03/05/25 04:08ID:???つまりスレ違い板違い
0038nobodyさん
03/05/25 04:15ID:???日付型のフィールドなら LIKE なんてパフォーマンスの悪いもの使わないで
月だけ一致させるような SQL が組めるだろう。MDB は知らんが
SELECT 〜 FROM 〜 WHERE MONTH(HOGE_DATE)=?
とかじゃないのか?
0039nobodyさん
03/05/25 05:53ID:GS2nRQzRDBでcgi、php、jsp(java)、sarvlet(java)で使えることが必須です。
比較的に安くて、サービスがいいところをご存知の方いましたら、
レンタルサーバーのURLか名前を教えてください。
0042nobodyさん
03/05/25 14:42ID:???今まで、WindowsでApache + perlを動かしていて、
先日Tomcat入れて、mod_jk2でApacheと連携させようとしたら
たとえばttp://localhost/examples/とやってディレクトリ一覧が表示されたので、
成功だと思いjsp/index.html を表示させようとしたらエラーになってしまいました。
で、少し調べたらApacheのhttpd.confの以下の部分が原因だと判明しました。
AddHandler server-parsed .html
これを消すと、問題なくApacheとTomcatの連携ができます
(Tomcat側のhtmlが表示されるようになる)。
しかし、ScriptAlias内のhtmlが表示できなくなってしまいます。
(たとえば/cgi-bin/index.html などが表示できなくなる)
これを残すと、逆の状態(/cgi-bin/index.html は表示できてTomcat側のhtmlが表示できない)
perlとTomcatの共存はできるのでしょうか?
できないならできないで諦めますし、もし解決策があれば教えていただきたいのですが
0043nobodyさん
03/05/25 21:27ID:GS2nRQzRいちおう、あっちにも質問してきたのですが、あっちでも海外サイトや自鯖にすれという返事でした。
で、WebProgやってる方なら、自分の使ってる鯖とか知ってる鯖でいいのがあるんじゃないかと
期待しちゃったんですよね。
>>40
うー自鯖立てる余裕・スペースがない。。。
0045あぼーん
NGNG0046山崎渉
03/05/28 17:05ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0047nobodyさん
03/05/29 14:32ID:???0048nobodyさん
03/05/29 14:34ID:hW1BfWjcNetScape7でダウンロードすると、尻にサーブレット名がつくんだけど
対処方法はありますか?
0049nobodyさん
03/05/29 15:12ID:f7DLEcKa0050nobodyさん
03/05/29 20:26ID:???Webとの接点がなければ、↓
【初心者】 Java質問・相談スレ25 【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1054041744/
0051test
03/05/30 11:25ID:Bn0/gbDC0052test
03/05/30 11:49ID:Bn0/gbDC0054nobodyさん
03/05/30 12:29ID:???JSPファイルの中にクラスは書けないのでしょうか?
005654
03/05/31 15:56ID:???Beanを変更するとTomcat再起動しなきゃいけないでしょ。
だから、Includeでうまくできないかなあと思って。
0057nobodyさん
03/05/31 21:24ID:???Beanを変更するとTomcat再起動しなきゃいけないでしょ。
Beanを変更するとTomcat再起動しなきゃいけないでしょ。
Beanを変更するとTomcat再起動しなきゃいけないでしょ。
0058nobodyさん
03/06/01 11:34ID:fpa7NJkxご存知の方いらしたら、教えてください。
0060nobodyさん
03/06/01 13:56ID:???0061nobodyさん
03/06/01 14:34ID:fpa7NJkxできますけど
servletならresonseからoutputStream取り出して
GZIPStreamでラップしてあげれば終わりです。
JSPの場合JSPWriterなんで、そのやり方じゃできないんですよ。
0062あぼーん
NGNG0064nobodyさん
03/06/01 16:39ID:fpa7NJkx<%...%>の外側に
<html>とか書けないもんで。
そうするとjspのメリットが損なわれるんです。
0065nobodyさん
03/06/01 16:51ID:???> <%...%>の外側に
> <html>とか書けないもんで。
なんで?書けるだろ。
あんたのいうJSPのメリットが何だかわからんが、
一般に言われるスクリプトレットの多用による画面デザインの
作成効率、メンテナンス効率の高さをメリットと考えるのなら、
JSP上でそんなことしようとするのがそもそもの間違い。
MVCって知っているか?
006665
03/06/01 16:53ID:???> 一般に言われるスクリプトレットの多用による画面デザインの
> 作成効率、メンテナンス効率の高さをメリットと考える
↓
一般に言われる画面デザインの
作成効率、メンテナンス効率の高さをメリットと考える
スクリプトレットを多用すると逆に効率落ちまつ。
どうしてもJSP上でやりたかったらカスタムタグ作ったら?
0067nobodyさん
03/06/01 17:01ID:fpa7NJkx設定かなんかでgzipエンコーディングするように
できるんですか?
0068nobodyさん
03/06/01 17:01ID:fpa7NJkx書いてもいいんですが、
ブラウザで表示できないのは明らかですよね?
そうでもない?
0069nobodyさん
03/06/01 17:09ID:???0070あぼーん
NGNG0071nobodyさん
03/06/01 17:13ID:???> <html>とか書けないもんで。
> そうするとjspのメリットが損なわれるんです。
あほ、html構文が使えるのがjspのメリットだろ
じゃなきゃ最初からサーブレットで処理しろよ
0072nobodyさん
03/06/01 17:17ID:fpa7NJkx部分的にgzip encodingで送ってもブラウザでは表示できません
って事は理解できますか?
だから、html構文でJSPを記述できなくなってしまいます。
そこで、何かしらの方法でJSPが出力するデータ全て
をgzipでエンコードしたいわけです。
サーブレットでやれば簡単にできますが、
>html構文が使えるのがjspのメリット
のメリットを使いたいわけです。
0073nobodyさん
03/06/01 17:19ID:QjqCOy4N半角英数なら何も問題なく登録できるのですが。これはどんな原因が考えられますか?
java.sql.SQLException: Syntax error or access violation こんなエラーがでてしまいます。
ちなみに同じinsert文をmysql側で直接発行するとちゃんと登録できます
0075nobodyさん
03/06/01 17:38ID:fpa7NJkx知ってますが
だから、どこかの設定で変えられるのかかなぁと。
ちなみに
MVCに従うなら、どこに手を入れるべきだと思います?
これの答えがめちゃくちゃなら、
MVCという言葉を知っているだけに過ぎないですよね。
>>73
文字数とかは?
0077nobodyさん
03/06/01 18:06ID:QjqCOy4N問題ないです。'あ'とかでやってますし。
詳細を書きます。書籍情報を登録するテーブルを勉強がてら作ってみたのですが、
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:???もしかして、
「あるファイルをZIP圧縮して、そのファイルをダウンロードさせる」
んじゃなくて、
2chみたいに、zip圧縮したHTMLをブラウザで表示させる、ってこと?
#仕組みは知らんのでうまく説明できんが
だったらMVCの観点でもJSPで処理できた方が良いやね。
でも漏れはやり方知らん。
0079nobodyさん
03/06/01 19:07ID:???もしそれをやるんだとしてもZIPの展開はModelの役割。
展開して出力ストリームかなんかにしてそれをBeanまたは
そのプロパティとしてスコープに格納するのはController。
JSPではそれを出力するだけだね。
もしこれらを全部JSPオンリーでやりたかったらそれこそ、
JSPのメリットを損なわないようにカスタムタグでも作れ。
0080nobodyさん
03/06/01 20:20ID:fpa7NJkx>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回答ありがとうございます。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:???0084あぼーん
NGNG0085nobodyさん
03/06/01 22:04ID:QjqCOy4N文字列のエンコードというのは以下の方法でやっていますがあってますでしょうか?
String hoge = request.getParameter("hoge");
String hoge2 = new String(hoge.getBytes("EUC-JP"),"EUC-JP")
でいいんでしょうか?
MySQLのインストールの時にujisと指定したような気がするのですが、
定かではないです。確認する方法ってあるのでしょうか?
全然的はずれなこと書いていたらすいません
0086nobodyさん
03/06/01 22:16ID:fpa7NJkxいまいち、状況が把握できないな。
ソースコード全部アップしてくれたほうが
速く解決すると思うよ。
0087nobodyさん
03/06/01 22:54ID:QjqCOy4NConnection 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:QjqCOy4Nconn = 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=88
03/06/01 22:56ID:QjqCOy4N0090あぼーん
NGNG009154
03/06/01 23:29ID:+EWj3hSAJSP + BeanでBeanを変更してもTomcatを再起動しなくてもいい方法教えてけれ。
Windows2000
Tomcat4.1.24 J2SDK1.4.1_02
Eclipse2.1 + Lombozでやってます。
0093nobodyさん
03/06/01 23:50ID:fpa7NJkx"jdbc:mysql://localhost/",
"root",
"");
関係ないけど、こういう書き方の方が便利かな。
やっぱわかんないや、ごめん。
JDBCドライバのバージョンを変えると上手く行くかも。
2.0.14を使ってるけど、動作確認済み。
009485=87=88
03/06/02 00:03ID:a+SCCf4Rそうですか。
でも親切にありがとうございました。
ちなみにJDBCはmysql-connector-java-3.0.6-stable-bin.jarっての使ってます
0095nobodyさん
03/06/02 00:29ID:???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 + "');";
↑これ
0098nobodyさん
03/06/02 00:45ID:Qfc3wwjK0101あぼーん
NGNG■ このスレッドは過去ログ倉庫に格納されています