SERVLETのプログラム中から、あるHTMLファイルを表示させたいのですが、どういう風に書けばいいでしょうか?

例えば、あるボタンを押したら、test.htmlをブラウザに表示する。

といったような感じにしたいです。

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

A 回答 (2件)

Servletだけを使うんですか?


JSPは使いますか?


たとえば、OKボタンクリックすると
ABC.htmlを表示するとすると、

JSP部分が以下とします

<FORM ACTION ="/servlet/sample.Sample_Servlet" METHOD = "GET"><BR>
<INPUT TYPE = "submit" NAME="ok" VALUE ="OK">
</FORM>

Sample_Servletを呼び、そこでは、

//OKボタンについて
tmp = request.getParameter("OK");
//OKボタンクリック時
if(tmp != null) {
btn = "OK";


if(btn.equals("OK")){
rDispatcher = request.getRequestDispatcher("/ABC.html");
rDispatcher.forward(request,response);


こんなかんじでしょうか。
Servletから今は離れてるので間違いがあるかも
しれませんが、ご参考に・・・
    • good
    • 0
この回答へのお礼

ありがとうございました!!ちゃんとhtml文書が表示されました。 
それで…もうひとつなんですが、XSLスタイルシートを使ったXML文書を表示させたいのですができますか?
> rDispatcher = request.getRequestDispatcher("/ABC.html");
をrDispatcher = request.getRequestDispatcher("/ABC.xml");
に変えたらただのXML文書はできましたけど、ABC.xmlにXSLスタイルシートを使用したら以下のように怒られました。
*****
XML ページを表示できません
XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。

----------------------------------------------------------------------
指定されたリソースのダウンロードは失敗しました。リソース 'http://localhost:8080/sotsuron/servlet/titleList … の実行エラーです。
*****
こらは、どうやっても出来ないものは出来ないのですか?それとも…
お願いします。

お礼日時:2001/12/07 13:18

私もXMLは表示したことないんで、なんとも言えませんが


該当XSLスタイルシートを使用することはXML文書に
記載していますか?

また、JavaとXMLで検索すると以下のサイトが
でてきました。関係ないかもしれないですが。。。
がんばってください。

参考URL:http://www-6.ibm.com/jp/developerworks/xml/00090 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
>該当XSLスタイルシートを使用することはXML文書に
>記載していますか?
してます。普通に表示させるのは出来ますけど、プログラムからたど
出来なくなってしまいます。

お礼日時:2001/12/07 14:30

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

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

QHTTPステータス 404 - /servlet/Testが表示される

はじめまして。Javaの初心者です。
どうしてもわからないことがあります。それは、
最初にTest.jspを実行して送信ボタンを押すと、
サーブレットからforwardされてきた「あああああ」
が表示されるのですが、再び送信ボタンを押すと、
「HTTPステータス 404 - /servlet/Test」が表示
されます。なぜなのでしょうか?また、どのようにす
れば、404エラーを出すことがなく実行できるのが
どうか教えてください。お願いします。

*************************************************
<%-- Test.jsp --%>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<html>
<head>
<title>Test</title>
</head>
<body>

<form method="POST" action="/servlet/Test">
<input type="submit" name="submit" value="送信"/><br/>
</form>

<% if(request.getParameter("submit") != null)
{ %>
<hr/>
<%= (String)request.getAttribute("b") %>
<% } %>
</body>
</html>
*************************************************
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;

public final class Test extends HttpServlet
{
public void doPost
(
HttpServletRequest request,
HttpServletResponse response
)
throws IOException,ServletException
{
request.setAttribute("b","あああああ");

ServletContext sc = this.getServletContext();
RequestDispatcher rd
= sc.getRequestDispatcher("/Test.jsp");
rd.forward(request,response);
}
}
*************************************************

はじめまして。Javaの初心者です。
どうしてもわからないことがあります。それは、
最初にTest.jspを実行して送信ボタンを押すと、
サーブレットからforwardされてきた「あああああ」
が表示されるのですが、再び送信ボタンを押すと、
「HTTPステータス 404 - /servlet/Test」が表示
されます。なぜなのでしょうか?また、どのようにす
れば、404エラーを出すことがなく実行できるのが
どうか教えてください。お願いします。

*************************************************
<%-- Test.jsp --%>
...続きを読む

Aベストアンサー

問題ないみたいです。
当方の環境
C:\PracticeA
   ├\example\Test.jsp
   └\WEB-INF\classes\Test.class

action="/servlet/Test"
→action="/practiceA/Test"
sc.getRequestDispatcher("/Test.jsp");
→sc.getRequestDispatcher("/example/Test.jsp");

web.xml
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>

QHTTPステータス 404 - /servlet/Testについて

はじめまして。Javaの初心者です。
どうしてもわからないことがあります。それは、
最初にJSPページでHTMLフォームにデータを入力して
<input type="submit"/>タグでサーブレットに送信し
て、サーブレットでHTMLフォームのデータ
を使用して処理を行わせてから再び最初のJSPページ
にリクエストを転送(forward)すると、サーブレット
での処理結果が表示されるのですが、そのあと再び
HTMLフォームにデータを入力して
<input type="submit"/>タグでサーブレットに送信す
ると、「HTTPステータス 404 -/servlet/Test」などと
表示され、サーブレットが利用可能でなくなります。
なぜなのでしょうか?どのようにしたら解決できるの
かどうか教えてください。お願いします。

Aベストアンサー

HTMLフォームからサーブレットにアクセスするには、URLを全て書くと、
http://ホスト名/アプリケーション名/サーブレット名
って感じでURLを指定しますね。(本当はポート番号とかもあるけど省略)
エラー内容で、"/servlet/Test"と出ているので、アプリケーション名の部分が指定されていないのではないでしょうか?
JSPから forward したときは、アプリケーションの内部での指定だったので、/servlet/Test でサーブレットに転送できたのだと思います。
HTMLのフォームから送信するときは、アプリケーション名も含めて、URLを
/アプリケーション名/servlet/Test
とするか、HTMLからの相対パスで指定すればいいと思います。
HTMLがアプリケーションのルートにあるのなら、
servet/Test
でアクセスできると思います。

QHTMLのボタンを二度押させない

HTMLであるボタンが押されたら、そのボタンを押させないようにするにはどうすればいいでしょうか。
今、WEBサイトを構築中なのですが、登録ボタンを連打されると複数データができてしまい、困ってます。
簡単な方法があれば教えてください。
よろしくお願いします。

Aベストアンサー

簡単な方法ではJavaScriptを使ってボタンのonClickイベントでボタンのdisabledをtrueにして押させないようにするのがいいです。
ただ、これでも確実な方法ではないので。

QDBに接続しブラウザ上に検索結果が全て表示されるServlet

首記の件ですが、コーティングしてコンパイルしても
NullPointerExceptionがでてしまいます。
このServletはDB接続クラスと実行Servletにわかれていてます。
原因はDB接続クラスにレコードをカウントするメソッドが
あるのですが、そこでNullPointerExceptionが発生して
その他に影響を及ぼしているみたいです。

・・・とまぁ、ここまで理解できたのですが行き詰まって
しましましたのでご教授いただけると幸いです。

以下に問題のコードとエラー内容を記述します。
--接続クラス--
(略)
private int count() throws SQLException
{
// 桁数
int rec = 0;

// SQL文実行
rs = st.executeQuery("SELECT * FROM TESTTABLE1");

// カウント
while(rs.next())
{
rec++;
}

return rec;
}
}

--エラーメッセージ--
java.lang.NullPointerException
at DB.count(DB.java:146)
at DB.select(DB.java:117)
at SELECT.doGet(SELECT.java:73)

首記の件ですが、コーティングしてコンパイルしても
NullPointerExceptionがでてしまいます。
このServletはDB接続クラスと実行Servletにわかれていてます。
原因はDB接続クラスにレコードをカウントするメソッドが
あるのですが、そこでNullPointerExceptionが発生して
その他に影響を及ぼしているみたいです。

・・・とまぁ、ここまで理解できたのですが行き詰まって
しましましたのでご教授いただけると幸いです。

以下に問題のコードとエラー内容を記述します。
--接続クラス--
(略)
private...続きを読む

Aベストアンサー

#2です。

rs.next()を書き忘れましたw

>そこでrecにカウント数が入った後にrs.next()を追加してみたのですがダメでした。
何か勘違いしているようですので、ここはちゃんと押さえておきましょう。ResultSetを取得した直後はResultSetは何も指していません。レコードが戻らない時(指定されたレコードがない時など)もあるからです。なので、値を取り出す前にrs.next()をしてあげなければなりません。
ResultSetのnextメソッドは次のレコードが無ければfalseを返し、あれば次のレコードに移ってtrueを返します。JavaDocに書いてあるので読んだ方がいいでしょう。また、DB処理のサンプルはWeb上にたくさんあるので色々見てみるのも勉強になります。

rs = st.executeQuery("SELECT COUNT(*) AS CNT FROM TESTTABLE1");
rs.next();
rec = rs.getInt("CNT");

Qhtmlで記述した2つの画像がブラウザに表示されない


<header>
<figure>
<h1><img src="Kaleidoscope-logo.jpg"alt="Kaleidoscopeのロゴ"></h1>
</figure>
</header>


<figure class="photo-left">
<img src="business.jpg"alt="5人が机を囲んで仕事">
</figure>

ブラウザ上では写真?のマークだけが表示されている状態です。②では"5人が机を囲んで仕事"も加えて表示されている状態です。

私はサイト作りが初めてで分からないことばかりです。「HTML5&CSS3レッスンブック」という本を読みながら進めています。
どなたかアドバイス下さい。よろしくお願いします。

Aベストアンサー

たぶんですが。

i㎎ src で呼び出すつもりの画像ファイルが同じ階層のディレクトリに存在しない可能性があるのではないですかね?


 呼び出すhtmlファイルが存在する同じ階層のディレクトリにすべてのファイルをアップロードしたらどうなるでしょうか?


><h1><img src="Kaleidoscope-logo.jpg"alt="Kaleidoscopeのロゴ"></h1>
 本当にこのファイルネームですか?
 ネットの世界ではファイルネームの大文字と小文字は区別されます。
 念のためにファイルネームを小文字に統一してみてはどうだろうか?


人気Q&Aランキング

おすすめ情報