import java.awt.*;
import javax.swing.*;

class Test {
public static void main(String args[]) {


Frame frm = new Frame("テスト");
frm.setLayout(null);
frm.setSize(new Dimension(450,550));
frm.setVisible(true);

JFormattedTextField[] array = new JFormattedTextField[45];
for(int i = 0 ;i < array.length ; i++){
array[i] = new JFormattedTextField ();
frm.add(array[i]);
array[i].setSize(65, 22);
array[i].setLocation(121+(i%3)*66, 130+(i/3)*22);
}
}
}

フレームにいくつかのテキストを入れただけの簡単なプログラムなのですが、これをJSPでWEB表示させたいのですが・・・・なかなかうまくいかなく困ってます。色々サイトを見ているのですが、解説だとわかりにくく、サンプルコードを載せてるところを探しているのですが、それも見つかりません。JAVAプログラムをJSPでWEB表示させるには、どのような方法があるのか教えていただけないでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

これは、質問文にあげたプログラムを、Webブラウザに表示させたい、ということをいってるんだろうか?



それは、できない。

Webブラウザは、HTMLのソースコードをレンダリングして表示するものだ。だからJavaのアプリケーションを表示することはできない。JSPってのは、JavaのプログラムをWebで動かすためのものじゃない。Javaのプログラムを実行して、「HTMLのソースコードを生成する」ものだ。ブラウザに表示するのは、あくまでHTMLだけ。それ以外のものは表示できない。これは当たり前の話。Javaだろうがなんだろうが、この大前提は変えられない。

普通は、だいたい以下の3つのアプローチのどれかをとる。

1.JSPを使い、「HTMLとして」ページの表示を作成する。つまり、すべて作り直す。
2.プログラムをアプレットとして作り直し、HTMLに埋め込む。
3.Java Web Startを使い、アプリケーションをダウンロードして起動するような仕組みを用意する。

この回答への補足

具体的な回答ありがとうございます。

回答いただいたものについてですが、(課題でやっているのですが)アプレットではないということで他のやり方を探してました。調べてみたところ「Java Web Start」で起動させた場合、WEB画面外に表示されてしまうようですが(間違ってたらすいません)、WEB画面の中に表示させるように言われているのですが、回答例に習うとこれは作り直さないといけないようですね・・・・

補足日時:2009/05/22 11:01
    • good
    • 0

#2様の言うように


http://www.javaroad.jp/servletjsp/index.html
http://www.hellohiro.com/servlet.htm
が近道ね。
ただ、読むだけじゃなく実践することが大切よ。


それとあなたのコードは
Javaアプリケーションだけど
JavaアプリケーションはJSPでは扱えないわ。
JSPは最終的にHTMLをアウトプットするものだしね。
Javaアプレットに修正してあげれば
最小の修正量でブラウザに表示することはできるけど
http://www.hellohiro.com/applet.htm
JSPは不要よ。

JSPでやれというのならきっと
あなたの作成したJavaアプリケーションと同じデザインで
HTMLを作成しろと言うことだと推測するわ。
    • good
    • 0

http://www.javaroad.jp/servletjsp/index.html
http://www.hellohiro.com/servlet.htm

大抵はtomcatかなんかでPC上にAPサーバーを立てて勉強することが多いですね。

この回答への補足

お返事ありがとうございます。
そちらのサイトにはよくお世話になっているのですが、今回やりたいことのヒントが捉えられなく・・・・

補足日時:2009/05/22 10:59
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavaでhtmlファイルを開く方法

通常は、下記のような記述をすれば、html.htmlファイルを開けると思うのですが開けせん。どうすれば、開くことができますか?

また、ディスクトップで実行しているのですが、Javaファイルと同じディレクトリ(デスクトップ)にあるhtml.htmlファイルを開くことはできないのしょうか?
相対パスで記述するとエラーになります。

初歩的な質問かもしれませんが、ご教示、宜しくお願い致します。

String[] cmd = {"C:\\html.html"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

Aベストアンサー

Windowsをご利用の場合、下のような記述で関連付け起動ができます。

try {
//絶対パスの例
String cmd = "C:\\html.html";
Runtime.getRuntime().exec("cmd /c start " + cmd);
//相対パスの例
File file = new File("html.html");
cmd = file.getAbsolutePath();
Runtime.getRuntime().exec("cmd /c start " + cmd);
} catch (IOException e) {
e.printStackTrace();
}

Javaの基本APIで関連付け起動を行う方法は、おそらくありません。私が不勉強なだけかもしれませんが。
もしもこれ以上細やかな動作が必要でしたら、JNIを使うかShellExecute API を利用するアプリケーションをC言語などで作成することをご検討ください。
ちなみに、下の例で起動する場合
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html"}を
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", "C:\\html.html"}
に変えればうまくいくと思います。

Windowsをご利用の場合、下のような記述で関連付け起動ができます。

try {
//絶対パスの例
String cmd = "C:\\html.html";
Runtime.getRuntime().exec("cmd /c start " + cmd);
//相対パスの例
File file = new File("html.html");
cmd = file.getAbsolutePath();
Runtime.getRuntime().exec("cmd /c start " + cmd);
} catch (IOException e) {
e.printStackTrace();
}

Javaの基本APIで関連付け起動を行う方法は、おそらくありません。私が不勉強なだけかもしれませんが。
もしもこれ以上細やか...続きを読む

QJavaアプリケーションからHTMLを表示したい

JavaアプリケーションでHTML文章を作成したのち、同アプリケーションで作成されたHTMLをウェブブラウザから閲覧するように表示したいのですが、Javaアプリケーションからそのように新たなフレームにHTMLを表示させることはできるでしょうか?ご存知の方、御教授願います。

Aベストアンサー

・Swingでウィンドウ表示してHTMLを表示したい
・IEを起動して「ブラウザから」HTMLを表示したい

のどっちでしょうか?
前者なら、Swingのサンプルを見て下さい。
後者なら、Java-COM Bridge等のライブラリを使ってIEのCOMインタフェース経由でアクセス出来ます。
後者のjacobを使った例が、参考サイトにあります。

あるいはいっそのこと、JNIでAWTウィンドウ内にIE表示をくっつけるという手もあります。ものすごく面倒ですが。

参考URL:http://jp.rubyist.net/magazine/?0009-Win32OLE

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

QEclipseでのJDBCドライバについて

Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか?
またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか?

ご存知の方教えてください、よろしくお願いします。

Aベストアンサー

WEB-INF以下に入れると実行はできるのですが、エクリプスが.javaファイルをコンパイルすることができません。projectの一覧を右クリックしてpropertyを選択し、ダイアログ右側からJava Build Pathを選択し、タグからLibrariesを選び、Add JARsボタンをおして.jarファイルを登録して下さい。
たぶんこれでコンパイルできるはずです。

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

QjavaアプリケーションをHTML上から実行する

JAVAアプレットの場合は、HTML上で実行するときに
目的のクラスファイルを<applet>タグで囲んで実行しますが、
これがJavaアプリケーションの場合、HTML上から
Javaアプリケーションを実行することは可能なのでしょうか?
また可能な場合は、どのようにしてJavaアプリケーションを
実行すればよろしいのでしょうか?

Aベストアンサー

サーバーサイドでのJavaアプリケーションについて補足します。

対象のJavaアプリケーションがウィンドウを持たない、いわゆるコンソールアプリケーションであれば、CGIで動かすC/C++やPerlのプログラムと同様に動作可能です。もちろん、サーバーでJVM等の設定をしておく必要があります。

Servletは、Servletクラスを継承する形で作成する必要があるのと、結果の出力先が、標準出力ではないため、ここも修正する必要があります。

Qequalsの逆

javaで、文字列の場合は比較演算子の「==」は用いずに

if ((str1.getText()).equals(str2)){
(※…str1,2は文字列)

と書きますよね?
この逆で、文字列str1とstr2は等しくないとき、にはif以下の条件文をどのように書けばよいでしょうか?

Aベストアンサー

>if !((str1.getText()).equals(str2)){

あくまで
if(){
}


!(str1.getText()).equals(str2)
が入っているので
if !((str1.getText()).equals(str2)){
じゃなくて
if (!(str1.getText()).equals(str2)){
こう。

QJSPからクラス(サーブレット)を呼び出す方法

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動きました。

【フォルダ構成 (Tomcat 6.0\webappsの直下) 】

javaroad
---------- index.jsp
---------- WEB-INF
-------------------- web.xml
-------------------- classes
---------------------------- HelloServlet.class

【index.jsp】
<%@ page contentType="text/html;charset=Shift_JIS" %>
<jsp:useBean id="GSBean" class="Testaaa.GetSetBean" />
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<form method="post" action="/Hello">
<input type="text" name="name1" maxlength="10" style="ime-mode: disabled">
<jsp:setProperty name="GSBean" property="userID" param="name1" />
<br><br>
<input type="submit" value="submit">
</form>
</body>
</html>

【web.xml】
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>

</web-app>

【HelloServlet.class】
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println(new java.util.Date());
out.println("</BODY>");
out.println("</HTML>");
}

以下試して駄目だったパスの一覧です。
<form method="post" action="Hello">
<form method="post" action="/Hello">
<form method="post" action="../servlet/Hello">
<form method="post" action="HelloServlet">
<form method="post" action="/HelloServlet">
<form method="post" action="../servlet/HelloServlet">
<form method="post" action="WEB-INF\classes/HelloServlet">
<form method="post" action="http://localhost:8080/javaroad/Hello">

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動...続きを読む

Aベストアンサー

<form method="get" action="Hello">

ではないでしょうか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報