トップページ⇒tech
983コメント352KB

JavaサーブレットQ&A LV2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
サーブレットに関する疑問・質問はこちらで。
0237デフォルトの名無しさんNGNG
>>236
サーブレットだけじゃできない
0238バカ厨NGNG
>>237
〜だけじゃなくても構いません…
ヒントだけでも…
0239237じゃないけどNGNG
>>238
JavaScript 使え
0240デフォルトの名無しさんNGNG
JavaScriptもキビしくないか?
アプレットつかえ。
0241バカ厨NGNG
それってデータをダウンロードさせといて
JavaScriptの関数をOnSelectで呼び出し
表示を切り替える…ってことでしょうか?

それはやりたくなかったので・・・
0242デフォルトの名無しさんNGNG
だからアプレットをつかえと・・・
0243デフォルトの名無しさんNGNG
ねねね、サーブレットとJSPとHTMLって
どうやって使い分けしてる?まぁHTMLは別物だけどさ
結局
HTMLは、サーブレットで作れるし、サーブレットはJSPで作れる。
なんだか全部で似たようなものが作れるからこの処理はこれで!
みたいな明確さが解からないのです。教えてくださらんか・・・ゴホゴホ
0244デフォルトの名無しさんNGNG
サーブレットでアプリケーションの動きをコントロールして、
JSPでその結果をビューする、ってのが一般的じゃないか?
簡単なアプリだとJSPだけでやることもある。
サーブレットの参考書にMVCってのが書いてあるだろうからそこいらを読め。
0245デフォルトの名無しさんNGNG
教えてください。

EJBの戻りが、
独自クラスのツリー状にネストしたものでも動くんですか?
0246デフォルトの名無しさんNGNG
>>245
知るか
0247245NGNG
おまえらJSPとか、サーブレットとかさわっただけで
へらへらしてんじゃねーよ。
はやく教えれ。
0248デフォルトの名無しさんNGNG
何が言いたいのかわかりません。
0249デフォルトの名無しさんNGNG
ネスト=nest=入れ子

■[入れ子]の大辞林第二版からの検索結果 

いれこ 【入れ子・入れ籠】

(1)大きな箱や器の中に、それより一まわり小さくて同じ形のものを順々に入れていくこと。また、そのように細工された箱・器。
(2)自分の子が死んだあと、迎え入れた他人の子。養子。《入子》
(3)〔(1)の意から〕内に隠されている事情。
(4)和船で、櫓臍(ろぺそ)をはめるための櫓にある穴。
0250デフォルトの名無しさんNGNG
>>245
国語の成績が悪かったろ?
0251デフォルトの名無しさんNGNG
木状の入れ子か。フラクタルだな。
0252デフォルトの名無しさんNGNG
そのEJBはSession?,Entity?それともMessage?
当たり前ですが仮にSessionである場合、戻りを返せたとしても、
そのNestedTreeSetが膨大なデータ転送を行う可能性があります。
なんかXMLを連想させるのですが得たい戻りが独自インスタンスに
おけるインターフェースへの参照が得たいので無ければ、素直に
データをバラシテ組み立てるか、永続化させた方がいいぞ。
(それにステート状態も???)
と書いてみるUnitTest
0253デフォルトの名無しさんNGNG
あのー、お尋ね申してよろしいかな?

今出てる SPARC版J2SE 1.4.0 て、リファレンス実装だろうか、それともプロダクト版だろうか?
-server付けても、JDK1.3よりレスポンスかなり悪いんですけど。

あ、動作環境は、Apache1.4 Catalina Struts ですが。誰かご存じないかのー…
0254253NGNG
○ Apache1.3.19
× Apache1.4
#恥
0255デフォルトの名無しさんNGNG
jspでJavaBeansを使う場合で、
<jsp:setProperty name="XXX" property="xxx" valie=<%=val%>>
とした場合、<%=val%>に値が設定されていない(<%=val%>の値が"")場合
set〜の処理が実行されないのは仕様なのでしょうか?
具体的には、<%=val%>にはTextBoxの値を渡していて、デフォルトで元の
値が入っており、それを画面で削除した場合です。
0256デフォルトの名無しさんNGNG
>>253
Tomcat4は今のところTomcat3よりかなり遅いみたいだけど
そういうことではない?
0257デフォルトの名無しさんNGNG
session間でパラメータを共有したいのですが、配列って可能ですか?
String Moji = (String)request.getParameter("moji");
  session.setAttribute("moji",Moji);
早い話がこれの、配列バージョンの書き方なんですけど・・・宜しくお願いします。
getParameterValues が無かった・・・

0258デフォルトの名無しさんNGNG
何も考えずにString[]にしたらいいだろ。
String[] mojis = {"あ", "い"};
sessin.setAttribute("mojis", mojis);
...
String[] anotherMojis = (String[])session.getAttribute("mojis");
0259デフォルトの名無しさんNGNG
>>257
ListとかMapにしたが良いんじゃない?
0260258NGNG
>>259
設計の話までするんなら俺はStringやらListもやめて欲しいけどな。
ある程度情報をまとめたオブジェクトを数個持ってるだけにしたい。
× Vector cart; じゃなくて
○ CartBean cart; な感じ。
で、CartBeanが中に
List items; やら
void reset(); やら作る。
(勝手にショッピングサイトになってるな)

そうじゃないとsessionの中にゴミ文字列やゴミオブジェクトがたくさん浮いてるイメージが・・・
0261257NGNG
>>258=260 ,259
レスありがとー!とりあえず、できました(ソース乗っけてもらってるからw)
なんで、getParameterはValues で、こっちは配列定義でOKなんだぁ・・・と言い訳。

CartBern・・・やっぱり、サーブレット&JSPはBernをつかってなんぼですか?
session覚えたから、これでごまかしながら行こうと思ってたんだけど・・・

List Map もあわせて調べてみます。ありがとうです。
0262259NGNG
>>260
俺もSessionはなるべく纏めて格納している。

>>259でListとかMapを薦めたのは、
使い勝手等から配列よりも良いんじゃない?ってこと。
俺は配列をほとんど使わないよ。
0263デフォルトの名無しさんNGNG
>>252

stateless sessionです。
methodは、getData : 独自クラスA
独自クラスAはリストを持っています。

また、独自クラスBというのがあって、
その独自クラスAのリストの中に独自クラスBがいくつか入っています。

EJB-Clientから独自クラスBを参照しに行くと、
java.lang.LinkageErrorとなります。

神様教えてください。
0264デフォルトの名無しさんNGNG
age
0265デフォルトの名無しさんNGNG
>>255
> jspでJavaBeansを使う場合で、
> <jsp:setProperty name="XXX" property="xxx" valie=<%=val%>>
> とした場合、<%=val%>に値が設定されていない(<%=val%>の値が"")場合
> set〜の処理が実行されないのは仕様なのでしょうか?
仕様です.Sun から落せる JSP の仕様書 p.75
If a parameter has a value of "", the corresponding property is not modified.
0266255NGNG
>>265
thanks
0267らららNGNG
各クライアントにある画像をサーバーのDBに格納するのは
サーブレットでどのような処理を書けばよろしいのでしょうか?
(自分の個人情報をサーバーへ登録する場合にローカルにおいてある
自分の一番カッコイイ画像も一緒に送るような事です)
0268デフォルトの名無しさんNGNG
>>267
これでどう?
http://www.google.co.jp/search?q=Servlet+upload&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0269らららNGNG
>>268
ありがとうございます。
感謝
0270デフォルトの名無しさんNGNG
>>263
ttp://appserver.borland.co.jp/samples/sources/EnumPlay.zip
これでもダメであれば(deep)cloneやSerializeなどを使用して強引に
MA^SYA-RINGしリフレクションでクライアントから再構築する。

>>java.lang.LinkageErrorとなります。
ここで疑問なのだがLinkageErrorは依存関係にあるclassで互換性が
失われている場合に発生するはずなので、ClientのBとServerのBに
関係するファイルを全て再コンパイルしてみるのもアリ。
まぁ空間が異なる可能性が高いのでダメ鴨。。by神.と書いてあるrefact。
0271デフォルトの名無しさんNGNG
フレームクラスからそれに関連付けられた
ドキュメントかビューのポインタを手に入れる方法を
教えてください。
0272デフォルトの名無しさんNGNG
JSPでのBeanのscopeが理解できません・・・。
<jsp:useBean name="testBean" scope="session" ... />

scopeがrequestの場合は、そのJSPが呼ばれる度にそのBeanがインスタンス化されるんですよね?
pageの場合は、そのJPSの初めの一回目の呼び出しの際にだけインスタンス化される。
ここまで合ってますでしょうか?
それじゃ、sessionの時はどうなるのでしょうか?
あるクライアントのセッションオブジェクトに、そのBeanのインスタンスがあれば何もせずに、
もしなければ、そのBeanをインスタンス化して、そのオブジェクトをそのクライアントのセッションオブジェクトに
入れる(バインドする)んでしょうか?

ん〜、難しい・・・。

0273デフォルトの名無しさんNGNG
>>272
コア・サーブレット&JSPのP285-P286を読め
0274デフォルトの名無しさんNGNG
>>236

そういえば、さらに幅0のフレームきっておいて、そつちにフォーム作って、
元のフレームのリストボックスに仕込んだJavaScriptでその隠しフレームに
パラメタを書き込んで、さらにポストして、結果を取得して、隠しフレーム
のonloadでJavascriptを使って元のフレームのリストボックスを書き換えた
ことがある。IE専用だっけ?
0275デフォルトの名無しさんNGNG
>>274
板違い
それにまず自分でやってみること。
それでかつ、できない、わからないことを書くべし。
0276デフォルトの名無しさんNGNG
>>275
あんたのほうがオカシクナイカ
0277デフォルトの名無しさんNGNG
「隠しフレーム」やら「javascript 連動」でgoogleとサンプルが出てくるよん
0278デフォルトの名無しさんNGNG
windows版のresinで、エラー画面が文字化けするんだけどこれどうにかならないかな?
別にエラーなんて英語でいいんだが、どの環境変数を設定すればいいやら・・・。
0279デフォルトの名無しさんNGNG
>>278
表示エンコードをEUCにして、リロード。
でだめかな?
0280デフォルトの名無しさんNGNG
Windows2000+Apache1.3.2+Tomcat4.0.3+Servlet+JSP
で作っているのですが、ServletからJSPへ転送、JSPが
クライアントに転送する時に、HTMLが途中で切れちゃいます。
(画面表示が半端なところで終わる)
何か設定を間違えているのでしょうか?
転送するHTMLはちょっと長めですが・・・
0281デフォルトの名無しさんNGNG
OutputStreamをflashしてないとか。
0282280NGNG
解決しました。
jspで使うBeansの名前を間違えていて、ありえない
Stringの添字を指定していました・・・
jspをServletに変換されたのを見て分かりました。
0283デフォルトの名無しさんNGNG
>>278
sun/tools/javac/resources/javac_ja.propertiesを抜き取ったtools.jarを作ると(・∀・)イイ感じ
0284デフォルトの名無しさんNGNG
サーブレットのメリットってなんですか?
全部JSPで作ればいいのに。って思うのですが逝ってよしですか?
0285デフォルトの名無しさんNGNG
>>284
MVCを意識しないのであれば、JSPだけでもよし。
まあ、好きにしろ。
0286デフォルトの名無しさんNGNG
>>270

Facadeを使うといいらしいとあったので、
やってみたらうまくいきました。
どうもありがとうございました。
0287デフォルトの名無しさんNGNG
サーブレットでmidiを生成したいのだけど、
sound APIってサーブレットで使えますか?
0288デフォルトの名無しさんNGNG
>>287
つかえません。
残念(・∀・)デシタ!
0289デフォルトの名無しさんNGNG
スレ違いかもしれないけど教えてください。
JSPでJDBCにSQLでアクセスしたいのですが
教えてもらえないでしょうか?とりあえず、見れるだけで結構です。
サーブレットの記述はイパーイあったのですがJSPが見つかりません。
0290デフォルトの名無しさんNGNG
>>289
ServletだろうがJSPだろうがJDBCでアクセスする分にはかわらんだろ。
0291デフォルトの名無しさんNGNG
289>>
jajakartaのTaglibsを使うという手もある。
0292デフォルトの名無しさんNGNG
>>290
その通りですね…全文を<% %>で囲めばよかったんだ…鬱だ

>>291
jakartaなら入ってますがそれで使えますか?

はぁ…いつになったら答える側に回れるのだろう…
0293291NGNG
jakrtaのtaglibsをダウンロードしてあれば良い。
詳しくは
ttp://jakarta.apache.org/taglibs/index.html
ここを見て。

ちなみにこんなふうにできるらしい。

<table>
<sql:statement id="stmt1" conn="conn1">

<sql:query>
select id, name, description from test_books
order by 1
</sql:query>

<%-- loop through the rows of your query --%>
<sql:resultSet id="rset2">
<tr>
<td><sql:getColumn position="1"/></td>
<td><sql:getColumn position="2"/></td>
<td><sql:getColumn position="3"/>
<%-- print out a comment if the book has no description --%>
<sql:wasNull>[no description]</sql:wasNull></td>
</tr>
</sql:resultSet>

</sql:statement>
</table>
0294デフォルトの名無しさんNGNG
>>292

>jakartaなら入ってますが

は? 使ってるものはちゃんと把握しようよ。

0295デフォルトの名無しさんNGNG
Servlet/JSPでJTAを利用するのは邪道なんですか?
JTA利用したかったらEJBを使うしか無いんでしょうか?
0296デフォルトの名無しさんNGNG
スレ違いですまん。
Sun Tech Day初日のBOFで初めて原田洋子氏を見た。今までこの人が
Servletのスペシャリストだと思っていたのが馬鹿馬鹿しくなってし
まった。。。。
0297 NGNG
>>296
なんで馬鹿馬鹿しくなったの?

1)女子中学生だった
2)男だった
3)ロボットだった。
0298デフォルトの名無しさんNGNG
>>296
あのBOFは単に司会やってただけだろ。良いも悪いもねぇな。

>女子中学生だった
たしかに小さいな。飯喰ってのか。

0299デフォルトの名無しさんNGNG
Servletとかで利用するファイル名(例えばログ)とかを取得するにはどうすれば良いでしょうか?
JNDIで取得するってのは大袈裟ですか?

>>296
原田洋子氏って綺麗な方なんじゃないんすか?
HPや本でお世話になっているんで褒めとく。
0300デフォルトの名無しさんNGNG
initParameterで取るようにしたら?
TomcatならJNDIも組み込まれてるからお手軽でしょ。

俺は洋子タンハァハァだが何か?
0301デフォルトの名無しさんNGNG
原田洋子はスーパーエンジニアでもなんでもないよね。
正直、俺でも勝てると思う。(何をもって「勝つ」というのかは置いといて)

でも、丁寧に調べてきちんと文章で説明できるという点はさすがだ。

我々が有難がってる洋モノの技術書籍の筆者も、案外あういうタイプの
人なのかも、という気がするよ。テクニカルライティング得意っていう。
0302 NGNG
まさしくJAVA信者!
0303デフォルトの名無しさんNGNG
Sun TechDaysねたはここでやってくれ。

http://pc.2ch.net/test/read.cgi/tech/1015396269/l50
0304デフォルトの名無しさんNGNG
<,>&などをエスケープしようと思います。
どこにいれたらいいでしょうか?

1.フィルターを使う
2.request.getParameter〜で受け取った後、無条件に行う
3.カスタムタグとして、表示する際タグで変換して表示させる

1.と2.は処理は基本的にあまり変らないと考えている。
変換前の文字で処理したいケースがあると不向き
2.はbean化すればコーディングは楽か
3.タグでくくるのがめんどう(といっちゃいかんと思う)

みなさんどうしてます。
0305デフォルトの名無しさんNGNG
このコードでエラーになってしまいました。
Iterator i_ = (Iterator)request__.getAttributeNames();
Enumerationを素直に使った方がいいんでしょうか?
(リファレンスを見ると、Iteratorを使えとあったので)
それ以前の間違いかもしれません・・・よろしくお願いします。
0306305NGNG
ネタでした。
0307デフォルトの名無しさんNGNG
305です。306は私ではありません。
ネタじゃないです。初心者なので、びしっと
指摘して頂ければ・・・・・
0308ばけらったNGNG
サーブレットでHTMLとして日本語を出力すると化けてしまいます。
???じゃなく、・M・・ソL みたいな感じです。
対策として
res.setContentType("text/html; charset=Shift-sjis");
out = new PrintStream(res.getOutputStream());
out.println("<META HTTP-EQUIV=\"Content-Type\"CONTENT=\"text/html; charset=x-sjis\">");
を入れたのですが、効果無しです。
どないしたらいいでしょうか?対象はIE5以上のみ。でOKです。
宜しくお願いします。
0309デフォルトの名無しさんNGNG
>>308

文字コードについて勉強が足りない。

Shift-sjis ってなに?
x-sjis も古い。

ちゃんと Shift_JIS と書け。
0310デフォルトの名無しさんNGNG
>>304
構築しているシステム(プログラム)にもよるのではないでしょうか?
たとえば、HTMLのFormから取得した情報を、DBに入れるのなら(DBによりますが)
シングルクオートや、ダブルクオートをエスケープしないとやばいと思います。
そうしないとDBの情報を全て消去されてしまう可能性もありますからね。

DBに入れないのなら、3の方法でもOKかもしれませんが。

いま、もう1回304を読み直したのですが、エスケープするのは<,>&だけなんですか?
DBとか全く関係ない話ならすみましぇん・・・。

0311ばけらったNGNG
書き直してみました。
public class indexS extends HttpServlet{
 public void doGet(HttpServletRequest req, HttpServletResponse res)
  throws IOException,ServletException{
   PrintStream out;
   res.setContentType("text/html; charset=Shift_JIS");
   out = new PrintStream(res.getOutputStream());
   out.println("<html><head>");
   out.println("<META HTTP-EQUIV=\"Content-Type\"CONTENT=\"text/html; charset=Shift_JIS\">");
   out.println("<title>Test Servlet</title></head>");
   out.println("<body><h1>サーブレット</h1>");
   out.println("<p>This text came from a servlet.</p>");
   out.println("</body></html>");
   out.flush();
   }
}
結果
・オ。シ・ヨ・・テ・ネ
This text came from a servlet

どこをどうしたらいいのでせうか…
0312デフォルトの名無しさんNGNG
>>310

基本的にパラメータで渡ってきたデータを表示することを前提と
しているので、DBに格納するなど変換しない(別の変換が必要な
場合)1,2,はだめですね。

Web開発では基本的なことなのですが、どうなんでしょう。
0313デフォルトの名無しさんNGNG
>>311
>結果
>・オ。シ・ヨ・・テ・ネ

・オ。シ・エ・・テ・ネ
こうだろっ
0314デフォルトの名無しさんNGNG
>>313
ワラタ さすがageるだけあるね。
・イ。ッ・テ・・ヨ・シ
0315デフォルトの名無しさんNGNG
>>304
MVCの観点から考え直した方が後々楽だぞ
0316名無しさん@EmacsNGNG
>311
そのソースもちろんSJISで書いてるんだよな?
0317デフォルトの名無しさんNGNG
>305
Iteratorには以下のコードしかありません。(全角見栄い表示)
public interface Iterator {
 boolean hasNext();
 Object next();
 void  remove();
}
そして(Iterator)request.getAttributeNames();
というキャストは無条件で失敗します。
>>Enumerationを素直に使った方がいいんでしょうか?
恐らくIteratorを使うほうが良いと書いてあったのはIteratorが
CollectionFrameworkで提供されているからだろうと思います。
が、残念なことにServletRequestにIteratorを返すことは出来ません。
何故このような構造になっているかはHashtableというデータ構造に
おけるデータの順序付けと同期処理が関わっています。(ふぇいるふぁすと)
#ちなみに速度と歴史的な事情も。

0318デフォルトの名無しさんNGNG
>>278
亀レスなんだが、
sun/tools/javac/resources/javac_ja.properties
これって何を司っているプロパティなのでしょう?
取り除いちゃって平気なものなの?
0319名無しさん@EmacsNGNG
アホだらけ(;´Д`)
0320デフォルトの名無しさんNGNG
>311
風間さんのページを検索できなかったお前は、APIのWriterとStreamの記述を行ったり来たりの無限地獄の刑に処す。

と、思ったんだけど今、googleで「servlet 文字化け」で検索したら、意外と上位に出てこないのね。
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html

1番めにヒットしたのが
http://hp.vector.co.jp/authors/VA022666/java/tips/servlet_char_code.html
なんだけど、これ、最近の環境だと「間違い」の方が正しいソースじゃないかい?
0321311NGNG
>>316
モチロンソウヨ

>>320
間違ってる方があってるの?????
0322311NGNG
>>320
できたYO! 間違ってるほうでできた! さんきゅぅ〜!
このあとDBとの絡みがあって、そこでも文字化けで泣くんだろうな…
0323デフォルトの名無しさんNGNG
>>316
MVCの観点から考えたらどうなるの?
モデルでそうゆうメソッドを提供し、ビュー側のbeanでそれを使う。
こんな感じ?
0324デフォルトの名無しさんNGNG
J2EEパターンを使うと処理主体で、手続き言語(構造化PG)っぽくなりませんか?

前処理→主処理→ビジネスロジック→DBアクセス→後処理って感じで。

只の理解不足かな。
0325デフォルトの名無しさんNGNG
>>324
そう、OO で設計するのは実は結構難しい。
まぁ無理じゃないし、OO でやったほうが柔軟性や拡張性なんかが
高くなるな。作り手に相応の力が必要なんで、烏合の衆集めて
使い捨てアプリ作る SI は OO に向いてないかもな。
0326デフォルトの名無しさんNGNG
>>324

インタフェースに向かってプログラミングしないからでは。
0327デフォルトの名無しさんNGNG
>>311
実行時には、Javaクラスファイル内部の文字リテラルは全てUnicodeに
内部で置換されてる。シフトJISじゃないよ。
だから、シフトJISの日本語としてストリームから出力したいなら、
エンコードしなきゃダメ。
シフトJISにエンコードを行うOutputStreamWriterで、ストリームを
ラップすれ。
0328324NGNG
>>326
J2EEパターンに従うと型が決まっているだけに
インタフェースが後から付いて来るような設計になってしまうんですよ。
修行不足ですね・・・
0329デフォルトの名無しさんNGNG
>>328

J2EEパターンてよくわからんが、そんな流れに従った実装を強制しているのか?
Sunって巷の業務系プログラマをずいぶんとバカにしてんだなあ。(多分マクロ
な視点で見れば、往々にして正しい評価なんだろうけどね…)

その「前処理」とか「主処理」とかいってる全ての処理にたいして、パラメータと
クライアントのIDでスイッチするStrategyパターンを適用するとかすれば、少しは
かっこよくならへんかな?関数ポインタジャンプテーブルのOOP的実装方法つうことで。
0330印刷関係NGNG
ちくしょー
PDFつかって印刷作戦が全然わからないです。
TEXも調べてみたが…

なんか、簡単にコードを書けばいいってモノでもなさそうな印象なのですが
どういった手順を踏めばよいのでしょうか?
言語の本にもありゃしないし 参りました。

現在DBからデータを取ってきてJSPに渡すサーブレットと、それを受け取りTHMLとして加工出力するJSPが
動いております。
この最終的なHTMLをどのマシンでも変わらず綺麗に印刷したいのでございます。

ご教授宜しくお願いします
0331デフォルトの名無しさんNGNG
サーブレットからJSP、
<jsp:include page="/servlet/hoge" />
JSPからサーブレットを
String headerurl = "/jsp/hoge.jsp";
ServletContext context = getServletConfig().getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher(headerurl);
dispatcher.include(req,res);

インクルードすると文字が化けてしまいます。
インクルードする文字エンコードはどこで設定したらよいのですか?
0332デフォルトの名無しさんNGNG
XML-FO
0333デフォルトの名無しさんNGNG
自宅のpcでjavaの勉強したいんだけど、win98SEにtomcatインストール
してservlet&JSPが動く環境ってつくれますか?
0334デフォルトの名無しさんNGNG
>>333はい、出来ます
0335デフォルトの名無しさんNGNG
>>331

<%@ page contentType="text/html; charset=EUC-JP" %>

とか?
0336デフォルトの名無しさんNGNG
>>330
http://xml.apache.org/fop/index.html
■ このスレッドは過去ログ倉庫に格納されています