トップページphp
984コメント425KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/08 11:03ID:Kkr1yl67
って無いよな?
というわけでつくたよ。
056155703/01/04 14:11ID:U0/Cv6SQ
↓これの事か?

http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/URLEncoder.html
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/URLDecoder.html

ていうか、別にServletと関係無いし。
そして、APIのドキュメントくらい、ちゃんと嫁。(基本
0562nobodyさん03/01/04 14:45ID:KyaSNzBm
>561
サンクス

便乗質問ですが、みなさん画面遷移ってどうやってるんですか?
例えば、フォームからの入力をDBに登録する場合、

画面A → 画面B         →DBに登録   → 画面C
入力 入力内容の確認 登録完了

MVCとか考えるといったい何をどこで処理したらいいのかわからんです。

056356103/01/04 15:31ID:U0/Cv6SQ
View .. JSPでHTMLのフォームを使って入力画面、と表示時の処理。

Controller .. ServletはViewから要求された処理を行う為、
    Httpで送られたParameter等の下処理や、
    適切な処理(ビジネスロジック)を持つBeanにそれらを受け渡す為の
    橋渡し的な処理を行う。

Model .. Beanとして実装し、実際に渡ってきた値を使用して、
    DBに登録するなりなんなりの固有の処理を行う。
    尚この時のBeanは、それがServlet部品である事をなるべく
    意識しないで使えるように設計する。(例えばHttpServletRequestとかを
    引数に取らないようにする)

俺はいつもこんな感じ。
0564nobodyさん03/01/04 17:09ID:???
>>562

strutsでいうと、
入力・・・jsp
入力内容の確認・・・form
登録・・・action
登録完了画面への遷移・・・struts-configで定義したのをactionで指定

てな感じか?
0565nobodyさん03/01/04 20:01ID:bqVpTHnl
今 resin2.14 と apache1.3.27 でstrutsを勉強してるんだけど
struts-configを変更した後って再起動しないと反映されないじゃん
javaファイルを変更してリロードするだけでコンパイルしてくれるresinが好きで導入してるんだけどstruts-configの変更を反映されないのはつらい・・

tomcatとかも再起動が必要だと思うけど実際の開発でもstruts-configを変更するたびに再起動してるんかな・・。結構変更するファイルだと思うんだけど
誰か解決策知ってる人いたら教えて・・
0566nobodyさん03/01/04 21:02ID:???
>>565

<action path="/admin/reload" type="org.apache.struts.actions.ReloadAction"/>
056756503/01/04 21:25ID:???
>>566
できたよママン!!

正直、ありがとう!
0568nobodyさん03/01/05 15:13ID:???
JSPで
<%! public String get2ch() { return "2ch" } %>
っていうふうにpublicでメソッドを宣言すると何かいいことあるの?
0569nobodyさん03/01/05 16:08ID:9NlMJwkI
>>568
特にないよ。
JSPでメソッド宣言しても、他のクラスからそのメソッド普通は使わないだろ?
だとしたら、特にpublicにする意味はないよ。
0570nobodyさん03/01/08 11:13ID:???
.jar、.war、.earまではわかりますが、
.sarはどういう目的で使われるアーカイブなんですか?
ご存知の方いらっしゃいましたらご教授ください m(_ _)m
0571nobodyさん03/01/10 15:02ID:hclMuHjE
JavaMailを使って、IMAPサーバと通信するアプリを作ることになりまして、
とりあえず、SunのサンプルをDLしてインスコしてみたんですが、
ログインの段階でコンパイルエラーになって、さっぱりワヤな状況になってしまって困っています。

どなたかわかる方、ご教授くださいませ。

環境
WinXP Pro + Tomcat 4.1.18 + JavaMail 1.3 + JAF 1.0.2
※ 環境変数TOMCAT_OPTS=-Dmail.smtp.host=127.0.0.1
※ send.jsp・<javamail:sendmail>に host="127.0.0.1" を、追加して、war再作成済み

サンプル
ttp://developer.java.sun.com/developer/technicalArticles/javaserverpages/emailapps/

エラー内容
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\javamail\login_jsp.java:7: '.' がありません。
import MailUserBean;
^
0572nobodyさん03/01/10 15:40ID:YwMd67k0
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0573nobodyさん03/01/12 21:53ID:3Y4gy70c
jspで質問です。
test.jspでは
<jsp:useBean id="bean" scope="session" class="BeanClass" />
bean.putNameMeth("aaa");
としてインスタンス作成。
test2.jspで
<jsp:useBean id="bean" scope="session" class="BeanClass" />
String str = bean.getNameMeth();
で、先のインスタンス表示(str)を表示しています。

PCではうまくいきますが、携帯imodeでは、strがnullになってしまいます。
試しにBeanClassでの変数をstaticに変更すると携帯でもstrが表示されますが・・
もちろん、PCでstrを変更すると携帯の方にも影響されます。

なにが悪いのでしょうか?
0574nobodyさん03/01/13 00:14ID:8zuhdkL/
同一セッションであるかどうかはセッションIDをサーバとクライアントの間でやりとりして判定する。
通常はセッションIDはCookieを使ってやりとりする。
携帯の機種にもよるが、多くの機種ではCookieが扱えないため、セッションの維持ができない。
URL Rewritingを使うべし。
0575nobodyさん03/01/13 00:46ID:???
>>574
横やりスマソ。具体的にはどうやるんですか? URL Rewriting。
なんか、サーバによっては出来ないって(あるいはIEのバージョンによっては
受け取らない)って聞いたのですが。
057657403/01/13 01:16ID:8zuhdkL/
>>575
仕組みから考えてブラウザのバージョンとは何の関係もないはずだが。
サーバによってというのも意味わからん。Servlet APIの仕様をきちんと満たしていれば
できなければおかしい。できないサーバがあるとしたらServlet APIの仕様を満たしていないということ。

javax.servlet.http.HttpServletResponseのencodeUrl()メソッドを調べれ。
057757403/01/13 01:18ID:8zuhdkL/
間違えた。
encodeUrl → encodeURL
0578ao03/01/13 01:32ID:rHsqWeYO
ココのムービー見てよ!
こんなアダルトサイト見たことね〜です
http://digikei.kir.jp/
0579nobodyさん03/01/13 11:27ID:ZPUR27bF
StrutsとTomcatを使ったユーザ認証のやりかた教えてください。
0580nobodyさん03/01/13 11:41ID:???
>>579
strutsとは関係なく、tomcatだけで考えていいんでない?
・基本認証
・ダイジェスト認証
・フォームベース認証
・SSLクライアント証明書認証
がtomcat4.0にはあるみたい
やり方はぐぐって調べろい
0581nobodyさん03/01/13 12:39ID:h0FwT6lD
573です。
ありがとうございます。

0582nobodyさん03/01/13 15:15ID:hTUoCDQh
TOMCAT5はいつでるのですか?

おしえてください
0583nobodyさん03/01/13 17:45ID:???
>>582
そろそろじゃないですか?

jakartaでalphaおとせますよ
0584nobodyさん03/01/15 01:05ID:OyqbLDDB
573です。
たびたびの質問すみません。
リダイレクトの件、うまくいきました。本当にありがとうございます。
今度は、Session間で保持したいアイテム1をputすると
もう一つブラウザ立ててSession内容を見るとアイテム1が見えてしまいます。
<jsp:useBean id="bean" scope="session" class="BeanClass" />
bean.putNameMeth(String);
bean.getNameMeth();
とすると上記のような事になってしまいます。
スレッドがうまくいっていないと判断して
最初に呼ばれるServlet(仮にServlet1.javaとして)でBeanClassをインスタンス生成し
jspのformでSessionにプットしたい項目をゲットするクラス(仮にServlet2.javaとして)を作り
これをServlet1.javaを親クラスにしてBeanClassにputして
表示するjspにfowardしてみました。
<jsp:useBean id="bean" scope="session" class="BeanClass" />
bean.getNameMeth();
とするとnullとなってしまいます。
Servlet2.javaでBeanClassの中身をシステムアウトしてるのですが
これはうまく表示されるのですが、やはり上記のように違うブラウザで
putするとBeanClassの中身が共有されます。
なんとなく同じメモリにアクセスしているからだと思っているのですが・・・

解決方法、ヒントなどありましたら教えて下さい。


058557403/01/15 08:36ID:???
>>584
もう一つブラウザを立ち上げる=違うセッションになる
と考えるのは危険。
ネスケは同一マシンから(UNIX系だったら同一ユーザから)
立ち上げるとすべて同じセッションとして扱われる。
IEはスタートメニュー等から立ち上げた場合は基本的には
違うセッション、IEのツールバーの「ファイル」→「新規作成」→「ウィンドウ」
から立ち上げると同一セッション、Javascriptのwindow.open()等で立ち上げると
同一セッションになる。スタートメニュー等から立ち上げた場合でも
Win9xでメモリ32MB以下だと同一セッションになることがある。
Operaはわからん。Mozillaはネスケと一緒。
確実に別セッションで試したかったら別のブラウザ(IEとネスケ)とか
別マシンからアクセスするといいかも。
058657903/01/15 08:46ID:9/hA1o8n
>>580
Tomcatの認証とStrutsのexampleにある認証
どちらの方がいいんでしょうか?
0587山崎渉03/01/15 13:31ID:???
(^^)
0588nobodyさん03/01/15 18:25ID:G9qjU2R1
JSPからresponseオブジェクトをカスタムタグに属性として渡す事ってできますか?

<sample:test attr1="aaa" response=<%=response %> />

と書いてもダメなのでしょうか?
タグハンドラでresponseオブジェクトのメソッドを利用したいのです。
058958803/01/15 18:42ID:???
解決しました。
属性として渡すのではないのですね。
お騒がせしますた。
0590nobodyさん03/01/16 00:08ID:2wtS4rFD
584です。
585さんありがとうございます。
0591nobodyさん03/01/16 17:28ID:8i13LRiG
doPostメソッドの中で, 受け取ったリクエストを別のHTML文書に転送すると,
Webページとして表示された HTML文書の内容が文字化けしてしまいます.
この問題を解決する方法は無いのでしょうか?
0592nobodyさん03/01/16 18:44ID:???
response.setContentType(にょろにょろ);
0593nobodyさん03/01/16 18:55ID:???
>>591
>>592と併せて
javax.servlet.http.HttpServletRequest の setCharactorEncoding() メソッド調べれ。
0594nobodyさん03/01/16 23:16ID:urGD7E1O
システム上のファイル、例えばc:\hoge\piyo.jpgとかを
Webアプリケーション内のファイルに出来ますか?
外部アプリが生成した画像ファイルをブラウザで表示できるように
したいのです。
0595nobodyさん03/01/17 10:20ID:3dWcV5Qw
>594
テキストファイルなら作成したことあるけど たぶん 同じだろ
0596nobodyさん03/01/17 14:33ID:UaUqkD3z
問題は作成後の処理ですが、
作成したファイルはWebアプリケーションの存在するディレクトリ以下には
存在しないので、これをそのままブラウザに見せることは出来ないでしょうか?
c:\hoge\piyo.jpg
のファイルをブラウザに対しては
http://tekitou.com/app/piyo.jpg
としたいのです。
0597nobodyさん03/01/18 12:25ID:9sBN/GPY
>>596

HTMLでは画像はリンクになっているだけだということを考えると、アプレット
などを使わないとだめだと思うよ。
0598nobodyさん03/01/18 17:27ID:vZxmpRsf
Tomcat3.2で動いているサーブレットから、別サーバのファイル
(.aspxか.asmxの予定)にデータをPOSTして画面遷移を行わせたい
のですが、そういうことは可能でしょうか?
0599nobodyさん03/01/18 18:47ID:qsDjdXoL
>>598

リダイレクトすればできる。
でも、POSTはブラウザがきちんと対応していればという条件付になるので、
GETでやるのが無難かな。
060059803/01/18 20:06ID:vZxmpRsf
>>599
リダイレクトというのは、sendRedirectメソッドのことでしょうか?
それとも、サーブレットでリダイレクトするためのHTMLを生成する
ということでしょうか?
0601nobodyさん03/01/18 23:08ID:cm1hFG4Y
<%@ page contentType="text/html;charset=Shift_JIS"%>
<%@ include file="/jsp/xxx.jsp"%>

でエラーがでるんですけど何ででしょう?
Page指示子: contentTypeを複数指定できません
こんなエラーメッセージが出てしまいます。
あと<jsp:include page="xxx.jsp">っていう方式でも
インクルードできないんですがなぜなのでしょうか?
0602nobodyさん03/01/18 23:19ID:???
>>601
<%@ include file="/jsp/xxx.jsp"%>
でインクルードしているxxx.jspにも
pageディレクティブでcontentType 指定してない?
include ディレクティブはソースコードのレベルで
インクルードするからエラーメッセージの通り、
contentTypeを同一ページ内で複数指定することになる。

>あと<jsp:include page="xxx.jsp">っていう方式でも
>インクルードできないんですがなぜなのでしょうか?
どういう風に「できない」の???
0603nobodyさん03/01/18 23:43ID:cm1hFG4Y
>>601
でインクルードしているxxx.jspにも
pageディレクティブでcontentType 指定してない?
してました・・・
ありがとうございました。
060460103/01/19 00:18ID:???
>>603
ちなみに
<jsp:include page="xxx.jsp">
は インクルードする方、インクルードされる方、双方ともが
Servletに変換→コンパイルされてからクライアントへ出力時に
統合されるから両方にcontentType指定しないと日本語等の
マルチバイト文字が化けるよ。
Strutsとか使っているときは各ファイルで<html:form>等が閉じていないと
実行時にエラーになる。
060559903/01/19 02:19ID:85qOoESn
>>598

そう。sendRedirectのことです。
それじゃ、だめなの?
060659803/01/19 02:54ID:9BvojrAo
sendRedirectだとURLの一部としてデータを渡さないといけないんですよね?
できれば(ブラウザのアドレス欄に)表示されてほしくないデータなんで、
それを避ける方法を考えていたのです。しかし、やりかたが回りくどく
なるなら、あきらめます(弱)
060759803/01/19 04:29ID:???
って、やってみたら、sendRedirectしても、アドレス欄は変りませんね。
0608nobodyさん03/01/19 13:22ID:???
>>606
サーバ間のデータ連携は普通データベースを使ってやる。
それが出来ないならフォームに HIDDEN でデータを埋め込んだページを送り返して
JavaScript で該当サーバに自動 SUBMIT してやる。
0609nobodyさん03/01/20 00:39ID:CSwEfaTD
jspの<% %>ないで普通のjavaのコメントを書くとエラーになるんですけど、
どうしてなんでしょうか。
//とか/**/とかなんですけど。
0610nobodyさん03/01/20 02:08ID:wtFGMR/w
Strutsの存在を昨日知ったよ。
奥が深いなと思っている俺は厨房ですか?

0611nobodyさん03/01/20 04:29ID:2QtXoTIi
>>609
どんなエラー?
061260903/01/20 04:34ID:CSwEfaTD
はい、タグが閉じられていません。とかいうエラーです。
0613nobodyさん03/01/20 07:58ID:???
>>610
で、おもしろがっていろいろ使ってると
すぐにStrutsの限界にも気づきはじめるよ。
0614nobodyさん03/01/20 22:36ID:HyBmfMqO
LinuxにJ2SEとMySQL入れて、Win機からアクセスしてJSPの勉強とかしてるんですけど
JSPからMySQLにアクセスできないです。

javax.servlet.ServletException: Server configuration denies access to data source

こんなエラーが出てしまいます。
どんな原因が考えられるでしょう?
jdbcドライバがmm.mysql-2.0.12.bin.jarっていうのです。
これが$JAVA_HOME/jre/lib/extというフォルダに入ってます。
でCLASSPATH=.$JAVA_HOME/jre/lib/ext/mm.mysql-2.0.12.bin.jar
としているのですが合っていますか?

とりあえずLinux上でmysqlとコマンド打てば直接データベース見れるみたいなので
JDBCに問題があるのかなと思っているのですが誰かヒントお願いします。
0615nobodyさん03/01/21 02:03ID:KOUyYvuO
>>614

肝心のアプリケーションサーバのことが書いてないな。
Tomcatでも使ってるの?
とりあえず、アプリサーバの設定が問題らしいというメッセージかな。
0616nobodyさん03/01/21 02:10ID:???
>これが$JAVA_HOME/jre/lib/extというフォルダに入ってます。

これがダメダメ
0617nobodyさん03/01/21 08:06ID:O+rCOe5r
>>615
そうです。tomcat使ってます。
>>616
どう駄目なのでしょう?
お願いします〜
0618nobodyさん03/01/21 09:10ID:NlhgIcgx
>617
Tomcat から JDBCドライバが見えないからです。

その jarファイルを WEB-INF/lib ディレクトリに
入れましょう。
0619bloom03/01/21 09:30ID:in3+WArT


http://www.agemasukudasai.com/bloom/
0620nobodyさん03/01/21 11:02ID:???
>>617
またはTomcatのcommon/libディレクトリとか。
0621ぁぁぁぁ03/01/21 12:28ID:WWJc6xEl
昨日苦労してやっとtomcatができるようになったと思ったら
今日起動してみると↓のような文字がぁぁぁ。・゚・(ノД`)
もう手も足も出ないダルマ状態で途方に暮れてます。
誰か助けてくださいお願いしますつД`)
0622ぁぁぁぁ03/01/21 12:29ID:WWJc6xEl
Catalina.start: LifecycleException: Error creating server socket: java.net.Bin
dException: Address already in use: JVM_Bind
LifecycleException: Error creating server socket: java.net.BindException: Addr
ess already in use: JVM_Bind
at org.apache.catalina.connector.warp.WarpConnector.initialize(WarpConne
ctor.java:483)
at org.apache.catalina.core.StandardService.initialize(StandardService.j
ava:454)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:552)
at org.apache.catalina.startup.Catalina.start(Catalina.java:775)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
0623ぁぁぁぁ03/01/21 12:29ID:WWJc6xEl
----- Root Cause -----
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at org.apache.catalina.net.DefaultServerSocketFactory.createSocket(Defau
ltServerSocketFactory.java:118)
at org.apache.catalina.connector.warp.WarpConnector.initialize(WarpConne
ctor.java:477)
at org.apache.catalina.core.StandardService.initialize(StandardService.j
ava:454)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:552)
at org.apache.catalina.startup.Catalina.start(Catalina.java:775)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)

OSはwindows2000で、javaはj2sdk1.4.0_03、tomcatはApache Tomcat 4.0、Apacheはapache_1.3.27-win32-x86-srcです。
0624ぁぁぁぁ03/01/21 12:30ID:WWJc6xEl
本文が長すぎたので分割しました。゚(゚´Д`゚)゚。
0625ぁぁぁぁ03/01/21 12:31ID:WWJc6xEl
OSはwindows2000で、javaはj2sdk1.4.0_03、tomcatはApache Tomcat 4.0、Apacheはapache_1.3.27-win32-x86-srcです。
0626nobodyさん03/01/21 13:14ID:0clAoj0s
サーブレット内でPrintWriterを使ってHTML文書を作っているのですが、
HTMLの中でプログラム内の変数の値を表示させるにはどうすればいいのでしょうか?
0627nobodyさん03/01/21 14:13ID:???
>>622,623

Address alreadyからすると、すでにTCPのポートが使用されているようです。
0628nobodyさん03/01/21 14:17ID:???
>>626

文字列を+を使って、連結させれば良いんじゃないの?

out.println("あいうえお" + string + "かきくけこ");

これじゃだめですか。
0629nobodyさん03/01/21 14:25ID:0clAoj0s
>>628
ご指摘の方法でできました。ありがとうございます。
063062803/01/21 14:47ID:???
>>629

慣れてきたら、HTMLはJSPして、処理だけServletにするのをお奨めします。
0631nobodyさん03/01/21 15:28ID:QDooJQKR
WAS3.5でimode用サイトの開発をしているのですが、
SSL対応機種で毎回ハンドシェイクしてしまうという問題に悩まされています。
http://www.nttdocomo.co.jp/p_s/imode/ssl/ssl03.html
↑これによると
「Content-Lengthを返さない場合に、従来機ではKeepAliveが無効になる」
らしいので、いままでセットしていなかったContent-Lengthに5000を固定で入れてみたのですが、
駄目でした。
Content-Lengthが原因かどうかもわかりませんが、正しい値を計る方法はないでしょうか??
0632ぁぁぁぁ03/01/21 16:14ID:WWJc6xEl
>>627
お答えありがとうございます。
ですが、server.xmlのポート番号を何度変えてもうまくいきません。・゚・(ノД`)
ポート番号の変え方は他にあるのでしょうか?
んでんで仕方ないので、同じtomcatをアンインストールしてからまたインストール
してみたのですが、やっぱりインストールした直後は無事に起動できたんです。
ですが、再起動してからもう一度起動してみると前と同じエラーが。゜(゜´Д`゜)゜。
ド素人な僕にはもうどうしたらいいかわかりません。
誰かわかる方アドバイスお願いします。
0633ぁぁぁぁ03/01/21 16:16ID:WWJc6xEl
ちなみに無事に起動できた時はhttp://localhost:8080もちゃんと見れてちゃんと動くんです(TдT)
0634nobodyさん03/01/21 16:49ID:???
>>632

既に、立ち上がっているのに立ち上げようとしてないか?
0635nobodyさん03/01/21 20:49ID:???
>>632
Windows使ってるならDOS上げてnetstat -aと打ってみれ。
使用されているポート一覧がでるから、そこで8080が既に存在していたら
他の何かしらのプロセスが8080を使っているということだ。

まぁ考えられることとしては、Tomcatインストール時にWindowsサービスとして
登録してしまってバックグラウンドでTomcatが起動しているんだろう。
063663503/01/21 20:54ID:???
ちなみにWindowsのサービスって知ってるよな?
「プログラム」−「管理ツール」−「サービス」を開いて、
Apache Tomcatっていうのがいないかどうか見てみな?
Tomcatを全部デフォルト指定でインストールした場合はあるはずだ。
で、そこの「スタートアップの種類」が「自動」になっていると、
Windowsを再起動した時点でバックグラウンドでTomcatが自動的に起動してしまう。
その状態で自分でまたTomcatを起動しようとすると、
目出度くキミのエラーが発生するというわけだ。
もしビンゴだったら、スタートアップを「手動」にするか、
自分でTomcatを起動しないようにするか、どっちかで解決しる。
0637ぁぁぁぁ03/01/22 11:16ID:naL49yJH
ありがとうございましたー!!まさにその通りでしたー!自動になってました(;・∀・)
本当に感謝(TдT)の気持ちでいっぱいです。
本当にありがとうございました。
これからがんばってJSP勉強しようと思います!
0638nobodyさん03/01/22 22:23ID:???
すいません、質問なんですが
フォームなどから受け取った文字列の半角カナを全角カナに
変換するには、どうすればよいのでしょうか?
環境はTomcat/4.0.6, SUN Java 1.4.0_02 です。
0639nobodyさん03/01/23 00:01ID:???
>>638
文字列をcharの配列にしてループさせるとかして
文字を一つ一つ置き換えていくしかない。
0640nobodyさん03/01/23 00:16ID:???
>>638>>639
VBのStrConvのノリを知っていると辛いよね。>日本語関係
こういうのはstaticメソッド作ってからパッケージ化していろんなところで使いまわせるようにしておくが吉。


0641ぁぁぁぁ03/01/23 02:26ID:wnXMlhsv
むぅぅぅ、早速勉強に取りかかりましたが文字化けが多々起こります・・・。・゚・(ノД`)・゚・。
なんだか文字コードがややこしいですね。
参考書に
String name = request.getParameter("name");
name = new String(name.getBytes("8859_1"),"EUC_JP");
と出てきましたが「8859_1」という数字が何を意味するのやら(;・∀・)
APIドキュメントを見ても何がなんだか┐(´∀`)┌
もう早くも投げ出してしまいそう(´ヘ`;)
0642ぁぁぁぁ03/01/23 02:27ID:wnXMlhsv
8859_1は数字じゃなくて文字列ですね・・・(;・∀・)
0643nobodyさん03/01/23 03:31ID:???
>>641
そんな本は破り捨ててしまえ
request.setCharactorEncoding("EUC_JP");
String name = request.getParameter("name");
0644nobodyさん03/01/23 08:25ID:???
WindowsなんだからEUC_JPじゃなくて
String name = new String( request.getParameter("name").getBytes("8859_1"), "JISAutoDetect")
でいいじゃん?
0645nobodyさん03/01/23 08:41ID:???
>>644
Servletコンテナが2.2にしか対応していない場合はそれでいいが、
今時2.2まで(Tomcatだったら3.x)で勉強しているとも思えないので、
もし641がTomcat4.x以降を使っているのだったら

request.setCharactorEncoding("JISAutoDetect");
String name = request.getParameter("name");

がいいんじゃないの?

ちなみに、8859-1は文字コードの一種ね。この文字コードセットには
日本語等のマルチバイト文字は含まれていない。
日本語であることが決まっていれば"JISAutoDetect"がおすすめ。
Shift_JISでもeuc-jpでもJIS(ISO-2022-JP)でも自動認識してくれる。
0646nobodyさん03/01/24 00:42ID:vBd5rKCZ
public class AAA {
private static String getErrorMessage = null;
private final static String MSGID_ERROR ="エラー";
private AAA() {
}
public final static String getSeireki(String pDate )
throws ZXY {
try {
pDate ="20030101";
return pSeireki;
} catch (Exception e) {
}
public static void namaCheck( String pName) throws
throws ZXY {
try {
if(Name == NULL){
//チェック結果
getErrorMessage = MSGID_ERROR;
}
} catch (Exception e) {
}
public final String Message() {
return Message;
}
0647nobodyさん03/01/24 00:43ID:vBd5rKCZ
<%@ page contentType="text/html; charset=shift_jis" %>
<%@ page import="jp.co.AAA*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%
String message = null; /* メッセージ文字列 */
AAA aaa = null; /* 追加情報チェック */
String date = null;
String name = null;
String seireki = null;
try {
date = (String)request.getParameter("date");
name = (String)request.getParameter("name");
  seireki = aaa.getSeireki(date);
aaa.getSeireki(name);  
/* 【メッセージ取得】をコールする */
errorMessage = aaa.Message
if (errorMessage.equals != null){
jspName = "next.jsp";
}
} catch (Exception e) {
%>
callDisplay('<%= jspName %>');


Messageメソッドが取得できなくて困っています。どなたか教えてくださいませんか?
0648nobodyさん03/01/24 01:00ID:6jYskYhY
>>646

まず、クラスAAAだけど、デフォルトコンストラクタがprivateで宣言して
いるから、インスタンスが作れない。
ということは、staticではないメソッドMessage()は実行できない。

JSPではインスタンスを作成していない(newしていない、というより
できない)ので、Message()メソッドが実行できない。

requestの返り値はStringなので、キャストする必要はない。
064963803/01/24 01:22ID:???
>>639-640
お返事ありがとうございます。

一文字のカナに関しては、↓のように処理できそうなのですが、
「ガ」などの場合、元の半角だと2文字になるため、同じように処理できません。
2文字の場合はどのように処理するのが良いのでしょうか?
public String strHankaku(String strHan){
StringBuffer strResult=new StringBuffer();
for(int i=0;i<strHan.length();i++){
switch(strHan.charAt(i)){
case 'ヲ' : strResult.append("ヲ"); break;
case 'ァ' : strResult.append("ァ"); break;
default : strResult.append(strHan.charAt(i)); break;
}
}
return strResult.toString();
}


こんなもの↓も見つけましたが、使えるのでしょうか?
http://www-6.ibm.com/jp/developerworks/opensource/000728/j_icu4j-index.html
0650f03/01/24 01:38ID:bqIcSHxX
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  hentaimtt@k9.dion.ne.jp
   グローバル探偵事務局 

0651nobodyさん03/01/24 01:51ID:vBd5rKCZ
>>649

ということは
デフォルトコンストラクタがpublicで宣言して
JSP で new すればよいんですか??
065264903/01/24 02:00ID:6jYskYhY
>>651

あのソースじゃ、それだけじゃ無理です。
0653ぁぁぁぁ03/01/24 11:37ID:xVaFOUtv
みなさんお答えありがとうございました。
>>644
さんの言うやり方でやったらできました。
ですが、>>645
さんの言うやり方だとなぜかエラーが出てしまいます。
生成されたサーブレットのエラーです:
setCharactorEncoding(java.lang.String) は interface javax.servlet.http.HttpServletRequest で見つかりません。
てな感じのエラーです。むぅぅぅ。
どうやらこの参考書はリナックス環境で書かれてるみたいです(´ヘ`;)
やっぱり自動認識できるのがあるんですね。よかたよかた。
0654nobodyさん03/01/24 18:41ID:56yOuBZ8
暗黙オブジェクトをmethodの引数で渡すときってどういう理由でクラス決めてる?
うちはweblogicなんで session.getClass() で
class weblogic.servlet.internal.session.MemorySession が帰ってくるんだけど
一般的にsessionてHttpSessionクラス使うよね ↓のメソッドはどういう違いがあるんでしょ?
public void setUserData( weblogic.servlet.internal.session.MemorySession session ) {
・・・

public void setUserData( HttpSession ) {
・・・
0655nobodyさん03/01/24 23:52ID:W9H/DsUV
むりですか。。。。
ご教授してください。お願いします
0656nobodyさん03/01/24 23:53ID:6jYskYhY
>>654

HttpSessionはインターフェースです。
HttpSessionのWebLogicでの実装がweblogic.servlet.internal.session.MemorySession
だと思われるので、HttpSessionを使うのが良いですよ。
0657ぁぁぁぁ03/01/25 01:50ID:rgWLNR9L
CharactorではなくCharacterだったんですね・・・(;・∀・)
0658nobody03/01/25 03:25ID:LiaTHzWg
はじめまして。いつも参考にさせてもらっています。
ちょっとお伺いしたいのですが、Tomcat+PostgreSQLという環境を構築することになりました。
ただ、Tomcat(AP)とPostgreSQL(DB)間にはFWがあり、AP-DB間でプールしてあるはずのコネクションを切断してしまうというらしいのです。
H/W要件が変更できないので(しかもアプリ側では無理らしい。)
@FWでコネクションを切断しないように設定する。
ATomcatで再接続するような設定をする。
BOS(RedHat7.3です)でダミーのパケットを送ってコネクションを維持する。
なんて手があるらしいのですが
A、Bについて何かヒントいただけないでしょうか?

ちょっと八方塞状態です。
良かったらアドバイスいただけますでしょうか?
0659nobodyさん03/01/25 10:59ID:SRxd5RzK
>>658

Aに関しては、そんなことするくらいなら、コネクションプールなんて
使用しない方がいいと思う。

Bに関しては、多分FWはセッションごとに管理しているので、そのセッ
ション内でパケットを飛ばす必要があると思う。
ということは、既にアプリサーバがポートをつかんでいるからOSから
パケットを飛ばすのは難しいのでは?

FWの設定を変えるしかないと思いますよ。
0660nobodyさん03/01/25 17:49ID:9WV/0U1f
Vectorの変数にVectorの変数って格納できるのか?
0661nobodyさん03/01/25 20:31ID:???
>>658
コネクションプールの設定は開発側でできるんだな?

1. コネクションを取得する。
2. 接続確認のため簡単な SQL を発行する。
3. 例外が発生したら 1 へ戻る。

これをコネクションプール数 + 1 回繰り返してやれば、最悪プール内の
コネクションがすべて切断されていても再接続してくれるだろう。最後の
一回で取れなければ本物の接続障害だ (切り分けとして毎回 SQL コード
見ても良いが)。現在時刻を取ってくる程度の SQL ならディスク I/O が
発生しないので、プール使わないで毎回接続に行くより遥かに速い。

ちなみに Tomcat でコネクションプール使うときのソフトウェア要件と
web.xml のサンプル教えてくだちい (今度自宅で組もうと思ってるんで)。

>>660
できるよ。変数つうかオブジェクト (インスタンス) だが。
■ このスレッドは過去ログ倉庫に格納されています