• ベストアンサー

index.htmlの代わりにサーブレットを実行

localhost:8080でindex.htmlを表示する代わりにServlet.classを実行したいのですがtomcat5の設定を教えてください。ちなみにlocalhost:8080/servletで実行するところまでは、本に載ってたので分かってます。 public class Servlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println(new java.util.Date()); out.println("</BODY>"); out.println("</HTML>"); } }

  • Java
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

index.htmlにサーブレットをマッピング(servlet-mapping)するか、welcome-file-listにサーブレットのパスを追加するかすれば良いかと思います。

その他の回答 (1)

noname#49664
noname#49664
回答No.1

>localhost:8080でindex.htmlを表示する代わりにServlet.classを実行したいのですがtomcat5の設定を教えてください。 特に、Tomcatの設定は不要と思います。 サーブレットをweb.xmlに登録する際に、<url-pattern>を/index.htmlと登録しておけばそう認識するはずですよ。

関連するQ&A

  • HTMLからデータを受け取るサーブレットについて

    教本の教え通りにコードを記述してるつもりなんですが,うまくいきません。コンパイルもうまくいきtomcatでHTML画面からデータを送信してもサーブレットはうまく応えてくれません。どなたか教えてください。 (fromhtml_365.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class fromhtml_365 extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException{ res.setContentType("text/html; charset=shift_JIS"); PrintWriter out = res.getWriter(); out.println("<html><head>"); out.println("<title>サーブレットからパラメータを受信</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>受信したパラメータ</h1>"); out.println("<h2>"); out.println(req.getParameter("param")); out.println("</h2>"); out.println("</hody></html>"); } } (html_366.html) <HTML> <HEAD><TITLE>サーブレットにパラメータを送信</TITLE></HEAD> <BODY> <H1>サーブレットにパラメータを送信</H1> <FORM ACTION="/examples/servlet/fromhtml_365"> 送信パラメータ<INPUT TYPE="TEXT" NAME="param"><BR> <INPUT TYPE="SUBMIT" value="送信"> </FORM> </BODY> </HTML>

    • ベストアンサー
    • Java
  • サーブレットについて

    こんにちは。 サーブレットに質問したいことがあります。 以下のサンプルソースで、 response.setContentType("text/html;charset=Shift_JIS"); の部分があるのですが、このようにすると日本語が文字化けしてしまいます。 ちなみにresponse.setContentType("text/html); とすると、日本語も文字化けせずに正しく表示されます。 ここで質問なのですが、 サーブレットの場合はJSPと違い、charsetを指定しなくてもよろしいのでしょうか? 何か分かることがありましたらご教授御願い致します。 ---------☆サンプルソース(HelloWorldExample.java)☆---------------- import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>ハローワールド</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>HelloWorld ハローワールド</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } } ---------------------------------------------------

    • ベストアンサー
    • Java
  • サーブレットからBeanに

    こんにちは areaフォルダに AreaServlet 、GetterServlet beanフォルダに FirstBean ============================== package area; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class AreaServlet extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=Shift_JIS"; public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { String info="滋賀県"; bean.FirstBean fiBe = new bean.FirstBean(); fiBe.setZip(info); response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter(); out.println("<html>"); out.println("<head><title>BeanServlet</title></head>"); out.println("<body>"); out.println("FirstBeanにセットされたデータ:" + fiBe.getZip() ); out.println("<p><a href=\"/jspbean2/servlet/area.GetterServlet\">Bean確認用</a>"); out.println("</body></html>"); } } ============================== package area; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class GetterServlet extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=Shift_JIS"; public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter(); bean.FirstBean fiBe = new bean.FirstBean(); out.println("FirstBeanにセットされたデータ:" + fiBe.getZip() ); } } ============================== package bean; public class FirstBean { private String zip; //Setterの定義 public void setZip(String newZip) { zip = newZip; } //Getterの定義 public String getZip() { return zip; } } ============================== AreaServlet ではきちんと bean へ文字列を setし、また文字列を getしているようです。 その後 AreaServlet から GetterServlet へと移ったとき GetterServlet にも bean から文字列をgetしたいのに、どうしてか null が返ってgetできません??? どのようにしたら良いでしょうか? よろしくお願いします。

  • サーブレットについて

    public class Server extends HttpServlet { PrintWriter out; BufferedReader in; String s; public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException,IOException { in = new BufferedReader(new InputStreamReader(req.getInputStream())); out = new PrintWriter(res.getOutputStream(),true); //文字列受信 s = in.readLine(); //送信 out.println(s); } } tomcatはマルチスレッドだと聞いたわけですが、このプログラムで、例えば、トムがアクセスしてきて、 s=in.readLine(); が実行されている間に2番目に接続してきたネコが out=new PrintWriter(); を実行してしまって out.println(s);で後から接続してきたネコに送信されるとゆうこともあるわけでしょうか?

    • ベストアンサー
    • Java
  • サーブレットのログ出力先

    javaを勉強し始めて1ヶ月にも満たない初心者ですが助言を頂けないでしょうか? また、見当違いの事を質問しているかもしれませんが、その場合は指摘下さい。 現在、下記環境にて簡単なサーブレットを作成しています。 ・OS:WindowsXP ・JDK:1.6.0_24 ・Tomcat:7.0.8 ・HelloWorldServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class helloWorldServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("Hello World!!"); out.println("</body></html>"); log("HelloWorldServlet"); } } サーブレットが正常動作する事をログ上でも確認できればと思い、 logメソッドを使用してログの出力をしました。 ログはTomcatのルート配下にある[logs]というフォルダ内に、 [localhost.yyyy-mm-dd.log] というファイルが作成され、その中に記述されているところまでは確認できました。 できればアプリケーション毎に作成されるファイル名や作成されるファイルの保存場所を 明示的に指定したいと思うのですが、そうするにはどうしたら宜しいでしょうか?

    • ベストアンサー
    • Java
  • eclipseで作ったサーブレットのサーバーへのアップロード方法について

    サーブレットのアップロードについて eclipse(バージョン: 3.1.1) Tomcat5.5 jre1.6.0_01 の環境で、下記のようなプロジェクトexamplesをeclipseで localhost上に作成しました。 これをwebサーバーにアップして、 (DocumentRoot "/usr/local/apache2/htdocs") 動作させたいのですが、 javaファイル、jarファイル、wec.xml等を DocumentRoot配下にどのようなディレクトリ構造を作って、 配置すれば動くのでしょうか。 サーバーは apache-2.2.0 Tomcat-4.1.31 であり、以前より正常に運用しているサーバです。 examples | |--JREシステムライブラリー[jre1.6.0_01] | |---(省略) |--TOMCAT_HOME/common/lib/servlet-api.jar | |---(省略) |--TOMCAT_HOME/common/lib/jasper-runtime.jar | |---(省略) |--TOMCAT_HOME/common/lib/jsp-api.jar | |---(省略) | |--WEB-INF/src | | | |--chap09_servlet02 | | | |--HelloServlet.java | |--WEB-INF | | | |--web.xml 【HelloServletWorld.java】 package chap09_servlet02; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServletWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.setContentType("text/html; charset=Windows-31J"); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Servlet</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<h1>"); out.println("<font color =\"blue\">"); out.println("Hello ServletWorld"); out.println("</font>"); out.println("</h1>"); out.println("</BODY>"); out.println("</HTML>"); out.close(); } } 【web.xml】 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloServletWorld</servlet-name> <servlet-class>chap09_servlet02.HelloServletWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServletWorld</servlet-name> <url-pattern>/HelloServletWorld</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • サーブレットのコンパイルについて

    はじめまして。 学校の課題の方でJSP/サーブレットをやっているのですが、サーブレットのコンパイルが通りません。 プログラムとエラーと環境変数は以下の通りです。 【プログラム】 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { printWriter out = response.getWriter(); out.println("hello"); } } 【エラー】 HelloServlet.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:5: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : HelloServlet の クラス public class HelloServlet extends HttpServlet ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス ServletException 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:9: シンボルを解決できません。 シンボル: クラス printWriter 場所 : HelloServlet の クラス printWriter out = response.getWriter(); 【環境変数】 CATALINA_HOME C:\servletbook\apache-tomcat CLASSPATH %CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\atmarkit\WEB-INF\classes;%CATALINA_HOME%\common\lib\servlet-jsp.jar; よろしくお願いします。

  • servletの開発(リンク先にとべません)

    質問失礼します。 非常に単純なプログラムなのですが詰まってしまいました。 public class Home extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=Shift_JIS"); request.setCharacterEncoding("Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<h1>メニュー</h1>"); out.println("<h1>ようこそ</h1>"); out.println("選択してください<BR>"); out.println("<p><a href= \"http://localhost:8080/servlet/test.html>サッカー</a></p>"); out.println("<p>野球</p>"); out.println("<p>バスケットボール</p>"); } } この中での out.println("<p><a href= \"http://localhost:8080/servlet/test.html>サッカー</a></p>"); の部分なのですが, 実際にlocalhostからアクセスしてみると <a href="http://localhost:8080/servlet/test.html>サッカー というようにそのまま表示されてしまいます。 解決方法がありましたらよろしくお願いします。

    • ベストアンサー
    • HTML
  • javaソースの中でのスタイルシート

    サーブレットの中で、スタイルシートのリンクを記述したのですが、反映されません。そもそも、無理なのでしょうか?他にやり方があるのでしょうか?初心者です。よろしくお願い致します。 public class MyJava extends HttpServlet{ public void doGet (HttpServletRequest    requ,HttpServletResponse res) { PrintWriter out=response.getWriter(); response.setContentType("text/html;charset=Shift_JIS"); try{ out.println("<HTML><HEAD><LINK HREF=style.css TYPE=text/css REL=stylesheet></head><title>"); 後述略

  • Servletが動かない

    下記のようなサーブレットを作成し、web.xmlも記述して動かしてみようとしたところ下記のようなエラーが発生して動きません。(Win2000、Tomcat4.1) ~~~HelloWorldServlet.java package test_servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = res.getWriter(); out.println("<html>"); out.println("<head>"); out.println("</head>"); out.println("<body>"); for (int i = 1; i <= 10; i++) { out.println("Hello World" + Integer.toString(i)); } out.println("</body>"); out.println("</html>"); } } ~~~web.xml <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HellowWorld</servlet-name> <servlet-class>test_servlet.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HellowWorld</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> </web-app> ~~~http://localhost:8080/hello接続時のスタック javax.servlet.ServletException: クラス test_servlet.HelloWorldServlet はサーブレットではありません

    • ベストアンサー
    • Java

専門家に質問してみよう