トップページ⇒tech
967コメント369KB

JAVAサーブレットQ&A

■ このスレッドは過去ログ倉庫に格納されています
0001厨房 NGNG
日本語の参考書のまったく出てないサーブレット。
それに関するQ&A

0604デフォルトの名無しさんNGNG
>>591
マジですか?
配列の要素の中身をいじると、
ベクターの要素の方も変化するのでしょうか?
0605デフォルトの名無しさんNGNG
>>604
その質問はネタじゃないよな?
0606デフォルトの名無しさんNGNG
>>604
配列はコピー、ただしコピーされるのは配列の中身で、それが
オブジェクトの参照でも、参照がコピーされるだけ。それが指して
いるオブジェクトが複製される訳ではない。
その参照を通じて変更したオブジェクトは、Vectorも参照している
から、当然、変更された影響は及ぶことになる。
もちろん、配列の要素そのものを変更しても、Vectorには影響しない。
だって配列はコピーだからね。
って、これはjavaの基本中の基本だろ。
0607 NGNG
つうか、Javaってクラスの保持してる情報が参照だか実体だか
判らない。
ポインタ無くしたのは間違い。
0608デフォルトの名無しさんNGNG
プリミティブかオブジェクトかの違いだけじゃない?
0609デフォルトの名無しさんNGNG
>>607
参照か実体か、って、javaではプリミティブ以外は参照だよ。
608の言っているのも、そういうことだよね。
0610 NGNG
そうなの?
HashTableは例外?
0611 NGNG
StringBufferも例外?
0612 NGNG
関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
0613609NGNG
>>610,611
ごめん、言ってる意味がよくわからない。
>>612
関数(メソッド)にオブジェクトを渡すことはできない。
オブジェクトの参照を渡すことはできる。
外部で変更されてはこまるオブジェクト(の参照)は、外に漏らさない
ようにすることは大切。
0614デフォルトの名無しさんNGNG
>>607,610,611
だから、609が言ってるようにプリミティブ型以外は全て参照であって、
例外なんてない。
オブジェクトの実体は全てJavaVM自体が管理していて、どこからも参照されなく
なったものがガベージコレクションで回収されるといえばわかるかな。
アプリケーション側からは参照しか見えないわけだから、
当然ポインタなんてものは不要になる。

>>612
>関数にオブジェクト渡す前にコピーして保存しとかないと・・・。
そりゃ設計自体が間違ってないか?
0615shige ◆5mzn8hAQ NGNG
....
0616デフォルトの名無しさんNGNG
ageとくね
0617名無しさんNGNG
なぜさがるのだ
0618©NGNG
>>601-602 Tomcat がコネクションプールサポートしていないから
データソースの参照に失敗してるんじゃないの?
0619デフォルトの名無しさんNGNG
ageておきます
0620601NGNG
>>618

Tomcat 4.0ではサポートされていると思ってたのですが・・・。

http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html
0621デフォルトの名無しさんNGNG

               
――――――――――――――――――――――
臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  ∧_∧
      .../   //(^∀^ )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻
0622デフォルトの名無しさんNGNG
サーブレットから、日本語名のファイルにアクセスすることは
可能でしょうか?(Linux/Windows環境)
0623デフォルトの名無しさんNGNG
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!

Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
0624デフォルトの名無しさんNGNG
>>632 自分のスレでやれ
http://piza2.2ch.net/test/read.cgi/tech/1001125342
0625 NGNG
サーブレットを使って、MP3などをダウンロードせずに、
サーバ側でアプリケーション(Media Playerなど)を起動・実行させて
クライアント側で聴くことはできますか?
0626デフォルトの名無しさんNGNG
>>625
できたら神!
0627デフォルトの名無しさんNGNG
テキストファイルのダウンロードなんですが、
一回目はダイアログボックスがでてファイルに保存できます。
そこでブラウザの戻るを押してダウンロードを押すと
2回目はキャッシュが効いてしまって画面に前回の内容が
表示されてしまいます。
キャッシュが聞かないようにヘッダーをセットする方法があったような
気がしたのですがご存知の方教えてください

ファイルを作成するサーブレットは<A href=
で呼び出してます。
ブラウザはIE5です
0628デフォルトの名無しさんNGNG
>>625,626
同じマシンなら問題ないデショ
0629デフォルトの名無しさんNGNG
>>627
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-control","no-cache");
response.setDateHeader("Expires", 0);
0630625NGNG
>>626
>>628
ってことは別マシンだと無理?
0631©NGNG
>>625
クライアントとサーバ間がケーブルで接続されていればできる。
まず、サーバ側の音声出力ジャックとクライアントの音声入力
ジャックを接続して (以下略)
0632デフォルトの名無しさんNGNG
>>625,631
クライアント-サーバ間がワイヤレストランスミッターだとなお良。
0633_NGNG
>598
JSPから入るなら技術評論社の[WEB+DB PRESS vol.1]がいい。
ヘタな参考書よりよっぽど入門向き。
コピーして新人研修の資料に使った。
0634デフォルトの名無しさんNGNG
>>625
サーブレットに限らずいかなるものを使おうが631の方法を使わんと無理だろ
0635デフォルトの名無しさんNGNG
うぉんちゅっ!
0636デフォルトの名無しさんNGNG
J2EE SDK1.3の日本語ドキュメントってどこでダウンロードできるんですか?
0637デフォルトの名無しさんNGNG
>>636
おまえが翻訳しれ
http://www.ingrid.org/jajakarta/servletapi/
0638デフォルトの名無しさんNGNG
阿気
0639デフォルトの名無しさんNGNG
Oracle8.0.5とJDBCについてなんですが、

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ()) ;
DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:ECDB", "ANUSER", "ANUSER00");

こんな感じでコード書いてるんですが、
接続でエラーして動かないんですよ、
ログにはこんな感じででてるんですけど
java.sql.SQLException: Connection refused: no further information

誰か情報もってないすか?
あ、ちなみに、ドライバークラスは、classes111.zipっての使ってます。
0640 NGNG
すみません、超初心者的な質問です。

HTML画面から入力した2つの数字の四則演算の結果をJSPで表示させたいのです。
サーブレットとビーンを使って。(使わなくてもできる処理なんですが、この三つの動きがどんなものなのかを知りたいので、こーいう仕組みにしています。)

以下はコードです。

HTMLファイル
<html>
<body>
<form action="servlet/KeisanServlet" method="post">
<input type="text" name="X" size="20" maxlength="20">
<input type="text" name="Y" size="20" maxlength="20">
<input type="submit" value="送信">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=Shift_JIS" %><html>
<title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean>
和:<%= my_bean.getWA() %>
<br>
差:<%= my_bean.getSA() %>
<br>
積:<%= my_bean.getSEKI() %>
<br>
商:<%= my_bean.getSYOU() %>
<br>
</html>

続く
0641640NGNG
サーブレット
import javax.servlet.*;
import javax.servlet.http.*;

public class KeisanServlet extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response)
{
try
{
String X = request.getParameter("X");
String Y = request.getParameter("Y");
KeisanBean my_bean = new KeisanBean();
my_bean.setX(X);
my_bean.setY(Y);
my_bean.execute();
HttpSession session = request.getSession(true);
session.setAttribute("my_bean",my_bean);
getServletContext().getRequestDispatcher("/keisan.jsp").forward(request,response);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

続く
0642640NGNG
import java.io.*;
import java.util.*;

public class KeisanBean
{
private String X = new String();
private String Y = new String();
public String WA = new String();
public String SA = new String();
public String SEKI = new String();
public String SYOU = new String();

public KeisanBean()
{
super();
}

public void execute()
{
int A = Integer.parseInt(X);
int B = Integer.parseInt(Y);
int C = A + B;
WA = Integer.toString(C);
C = A - B;
SA = Integer.toString(C);
C = A * B;
SEKI = Integer.toString(C);
C = A / B;
SYOU = Integer.toString(C);
}
public void setX(String str)
{
X = str;
}
public void setY(String str)
{
Y = str;
}
public String getWA()
{
return WA;
}
public String getSA()
{
return SA;
}
public String getSEKI()
{
return SEKI;
}
public String getSYOU()
{
return SYOU;
}
}

続く
0643640NGNG
JSP
<%@ page contentType="text/html;charset=Shift_JIS" %><html>
<title>答え</title><jsp:useBean id="my_bean" class="KeisanBean" scope="request"></jsp:useBean>
和:<%= my_bean.getWA() %>
<br>
差:<%= my_bean.getSA() %>
<br>
積:<%= my_bean.getSEKI() %>
<br>
商:<%= my_bean.getSYOU() %>
<br>
</html>

どーしても思ったように動いてくれません。
どなたか教えて下さい。
0644640NGNG
すみません、640のHTMLソースおかしかったですね。
最初の</HTML>で終わりです。
JSPと混じってしまいました。
それと、642はビーンズのコードです。

宜しくお願いします。
0645デフォルトの名無しさんNGNG
>>640-644
うざってぇ〜な、
いきなりソ〜ス書くな!
0646デフォルトの名無しさんNGNG
<<ちょっと参る一瞬>>

みなさんもありませんか?

マウスが動き悪いと思ってみてみると、
チンゲが絡まっている時。
0647デフォルトの名無しさんNGNG
JSPのエラーページを使った場合、
エラー発生元のページですでにストリームにコミットされていると
発生元の内容とエラー表示がごっちゃになりますよね?
バッファサイズをむちゃくちゃ大きくする以外に解決策はないかね。
0648デフォルトの名無しさんNGNG
Tomcat4.0 + BSB を試用しているんだけど、
Servletからjspにforwardして、jspがXML吐いて(ほぼ内容は静的、
一部分だけbeanから頂戴する)、そのXMLをBSBに処理させてHTMLにする
なんてことできます?
0649648NGNG
CocoonにはXSPってのがあるのか。。Cocoon使えって感じ?>識者
おしえて〜
0650デフォルトの名無しさんNGNG
>>648,649
ttp://java-house.etl.go.jp/ml/archive/j-h-b/038079.html
返事は無い…
0651デフォルトの名無しさんNGNG
サーブレットを使って
同じサーバ内にあるファイルのリンク先を指定って出来るのですか?

例えばコンボなんかを使ってAが選択されていたらAのファイルに移動
Bが選択されていたらBのファイルに移動みたいに
0652デフォルトの名無しさんNGNG
651の追記
さらにコンボを2つ使って
両方ともAならAファイル
両方ともBならBファイル
AとBならCのファイルに移動なんて出来ますか?

ちなみにtomcat3.2.1を使用しています
0653デフォルトの名無しさんNGNG
age
0654デフォルトの名無しさんNGNG
>>652
コンボってなに?
0655デフォルトの名無しさんNGNG
>>650
ただのしかばねのようだ
0656デフォルトの名無しさんNGNG
>>648
XSLT通すカスタムタグ作ればいいんじゃない?
既にどっかが出してたと思うが。

>>651
かんたんにできるよ。
wwwサーバー=FileServletだからね。
0657648NGNG
>>656
すんませんCocoon1.8使うことにしてしまいました。
XSLT勉強中…。

Cocoon(XSP)な質問してもいいすか?

.xslで、例えばi-mode pageで、
<a href="ふがほげ" accesskey="<xsp:expr .....
のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
怒られるんですが… どうするものですかね??

あと、 ?<xsp:expr ....
でも、?の直後に数字が来てないぞ!みたいにおこられます。

たすけて〜 ;_;
0658648NGNG
> .xslで、例えばi-mode pageで、
> <a href="ふがほげ" accesskey="<xsp:expr .....
> のような記述をすると、accesskey属性の中に < があるぞゴノレア!と

こっちは変数にブチこんで accesskey="{$var}" でいけました…
ふーーーー。
0659デフォルトの名無しさんNGNG
>>657
><a href="ふがほげ" accesskey="<xsp:expr .....
>のような記述をすると、accesskey属性の中に < があるぞゴノレア!と
>怒られるんですが… どうするものですかね??
<xspのタグはhtmlのタグと同等と思われ。
だから、<a が閉じる前の属性の位置にほかのタグがあると起こられる。
htmlのタグは本来は<html:a/>だがhtmlの場合は暗黙に省略できると思われ。
だから、?<xsp も「ゴルァ!」となるのだ。
0660デフォルトの名無しさんNGNG
TOMCATのソースコードって公開されてるんでしょうか?
0661デフォルトの名無しさんNGNG
>>660
されてるよ。Jakarta projectなんだから...
0662デフォルトの名無しさんNGNG
便乗。
Cocoon1.8.2で、XSPなページをESQLでつくっておるのだが、
裏でサーブレットも使っておる。サーブレットでもTurbineの
DBコネクションプールを使いたいのだが、サンプルのソースだ
してくれるひといない?
0663デフォルトの名無しさんNGNG
age
0664デフォルトの名無しさんNGNG
>>662
ソースは出せないが、可能とだけいっとく。
esql.xsl と、ESQLを使ったxmlのCocoonの処理結果
(れぽじとり内)をよーく見れ。で、いろいろ想像して
書くと。

あと、Cocoonサーブレットは <load-on-startup/>
すること。
0665超初心者NGNG
いきなりレベルの低い質問で申し訳ないのですが
サーブレットで、
リアルタイムでキーやマウスを読んだり、画像を表示したり、というような
アプレットで作るゲームのような事ってできますか?
0666デフォルトの名無しさんNGNG
できません
0667デフォルトの名無しさんNGNG
>>666
想像してごらん、
出来たらすばらしいじゃないか、
皆が想像できたらすばらしいじゃないか、
って、じょんれのがいってたよ、
0668デフォルトの名無しさんNGNG
JASRACに怒られますよ
0669デフォルトの名無しさんNGNG
フォームの値をサーブレットにて取得する方法について教えて下さい。
ラジオボタン、ドロップダウンの値を受け取ることはできたのですが、
チェックボックスの値を取得するのがうまくいかないのでお願いします。
0670669NGNG
<form method="POST" action="サーブレットのURL">
<p>
<input type="checkbox" name="a">あいうえお<br>
<input type="checkbox" name="a">かきくけこ<br>
<input type="checkbox" name="a">さしすせそ</p>
<p>
<input type="submit" value="送信" name="B1">
<input type="reset" value="リセット" name="B2">
</p>
</form>

データをPOSTするHTMLは簡単に書くとこんな感じです。
実際はチェックボックスの数がもっと多いので、配列を使ってさくっと取得できるといいんですけど。
0671デフォルトの名無しさんNGNG
サーブレット側はgetParameterValuesを使う。
0672669NGNG
String a = request.getParameter("a");
String b = request.getParameter("b");
String c = request.getParameter("c");
String d[10] = request.getParameter("d[10]");

>>671
getParameterを使うことはわかったのですが、上記のように、
普通の変数と同じように記述してもコンパイルが通りません。
配列の場合は特殊な書き方をしなければならないのでしょうか?
0673デフォルトの名無しさんNGNG
String[] a = request.getParameterValues("a");

こう書く
0674デフォルトの名無しさんNGNG
<FORM ACTION="/servlet/xxxx" METHOD="POST">
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="AAA">AAA<BR>
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="BBB">BBB<BR>
<INPUT TYPE="CHECKBOX" NAME="a" VALUE="CCC">CCC<BR>
<INPUT TYPE="SUBMIT" VALUE="SUBMIT">
</FORM>

String ParamValue[] = request.getParameterValues("a");
if(ParamValue!=null){
for(int i=0;i<ParamValue.length;i++){
out.println("value=" + ParamValue[i] + "<BR>");
}
}
0675お願いしますNGNG
JSPにて、if文を使って、
サーブレット通ってきたら表示させ、
直接JSP呼ばれたらサーブレットに返すプログラムを
作りたいのですけれど、宜しければ教えてください。(JSPの表記)
0676お願いしますNGNG
あげ
0677デフォルトの名無しさんNGNG
>>675
JSP直接呼ばれたくないならWEB-INFの下に置く手もあるよ
0678お願いしますNGNG
VAJでいうと、/web/WEB-INF/”ここにJSPファイルを置くと言うことでしょうか?”
0679677NGNG
>>678
VAJはしらない。
warファイルにしたときに/WEB-INF以下にあればいいよ
0680お願いしますNGNG
JSPに直接書き込む場合は、どのように書けばよいのでしょうか??
0681デフォルトの名無しさんNGNG
サーブレット側でJSPにforwardする前に、
request.setAttribute("omae","mona");
とかしておいて、JSP側で
if (request.getAttribute("omae") != null) {
...
} else {
...
}
でいいんじゃないの
0682お願いしますNGNG
if (request.getAttribute("omae") != null) {
...
} else {
ここの処理を知りたいのですが
}
申し訳ございませんが教えてください。
0683お願いしますNGNG
age
0684デフォルトの名無しさんNGNG
こんなんでどう?
<%
String destination;
destination="servlet/HelloWorld";
%>
<jsp:forward page="<%=destination%>" />
0685お願いしますNGNG
できました
ありがとうございました
0686デフォルトの名無しさんNGNG
esponse.setContentType("image/jpeg");として、画像を出力させるサーブレットを作ったのですが、
サーブレットを読み込んでから画像を出力するまでの時間を計測したい場合、どうすればいいでしょうか?
0687↑NGNG
ストップウォッチ持ってる?
0688686NGNG
…やっぱりそれしか方法ないですかねえ…。
周囲にも結構訊いたけど同じ答えしか返ってこなかった…
0689デフォルトの名無しさんNGNG
doGetの頭とケツで時間をログに吐くんじゃだめってこと?
0690686NGNG
>doGetの頭とケツで時間をログに吐くんじゃだめってこと?
すみません。ログに吐く、ってのがどういうことが分からないです。
doGetの中身を
(1)コンテンツタイプをtext/htmlに設定
(2)現在時間をAに代入
(3)画像出力する関数Image呼び出し
(4)現在時間をBに代入
(5)A-Bを出力
とすればOKかなと思ったんですが、エラー出っ放し
0691デフォルトの名無しさんNGNG
>>690
サーブレットがマルチスレッドで動いてるからだめじゃん。
クライアントがひとつだけでテストするならいいかもしれないけど。

ログを吐く→ログファイルに書き出すってことだよ。
0692690NGNG
どうも。
0693686NGNG
>>691
いろいろ。ありがとうございます。もう一回勉強しなおします。
それと、692は自分ではないです。念のため
0694デフォルトの名無しさんNGNG
tomcat 4.0.1 と apache を連携させるのって、
jakarta-tomcat-connectors を使うしかないんでしょうか?

んでもって、これって正式リリースもされてないし、jakarta.apache.org
にもドキュメントがない (ドキュメントはソースに含まれているものだけ)、
という認識は合ってますか?
0695デフォルトの名無しさん NGNG
>>690
セッションIDをファイル名にするのはだめ?
0696デフォルトの名無しさんNGNG
>>695
ファイル書き出しにsycronizedもつけるように。
あと、ストレスかけるなら、セッションの違うクライアントになるようにしないとね。
0697694NGNG
>>694
mod_webapps というのもあるみたい<Tomcat4.x と apache の連携。
でも、mod_webapps も connectors もまだ正式リリースされてない…
のかな?

設定がうまくいかないよ〜。
0698デフォルトの名無しさんNGNG
で、taglibに渡すデータって皆さんどうしてます?
Bean以外ありえないと思うのだけど、どう?
0699デフォルトの名無しさんNGNG
JSPで
<FRAMESET rows="50%,50%">
<FRAME src="a.jsp" name="a" >
<FRAME src="b.jsp" name="b" >
</FRAMESET>
のようになっているとき
a.jspの方にのみリクエストをとばすには
どうしたらいいんでしょうか?
0700デフォルトの名無しさんNGNG
>>699
意味がわからん
JSPに処理させたくないなら、b.jspをHTMLにすればよし
0701デフォルトの名無しさんNGNG
>>691
>サーブレットがマルチスレッドで動いてるからだめじゃん。
へ、どういうこと?
doGet内でいくつかnewしてほげるだけでMTもクソもないとおもうんだけど。
ログの吐きかたによっては

>ファイル書き出しにsycronizedもつけるように。
は真だろうけど。
0702699NGNG
サーブレットからJSPをよぶときに
    req.setAttribute("x",x);
    req.setAttribute("y",y);

    RequestDispatcher rd = context.getRequestDispatcher("z.jsp");
    rd.forward(req,res);
のようにやっていますが
JSPの中で
<%
request.setAttribute("x", x);
request.setAttribute("y", y);
%>

<FRAMESET rows="50%,50%">
<FRAME src="/jsp/skill/a.jsp" name="a" frameboarder="0" >
<FRAME src="/jsp/skill/b.html" name="b" frameboarder="0" >
</FRAMESET>
としてrequestをa.jspにとばしたいのですが
やり方が分かりません。
bをHTMLにしてもだめなようです。
JavaScriptを使う方法も考えたのですが
リクエストとしてHashTableをわたさなければならないので
できなさそうです。
0703699NGNG
うえのJSPではとばないことはわかってるのですが
どうやればとばせるのか分かりません。
0704デフォルトの名無しさんNGNG
scope="session" の bean渡しにして、a.jsp を、jspでなくて
適当なサーブレットにして、<frame src="ほげほげ" の ほげほげ
を response.encodeUrl(); しときゃイインジャネエノ?
サーブレット経由しなくてもええんかな。しらん。
■ このスレッドは過去ログ倉庫に格納されています