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

このQ&Aのポイント
  • JSPからクラス(サーブレット)を呼び出す方法について質問しています。エラーメッセージ「The requested resource (/Hello) is not available.」が表示されるため、パスの指定方法を調査しています。
  • 質問者はパスの指定方法を間違っているのかと思って調べてみたが、パスを変更してもエラーが解消されず、常に「available」になる。何かアドバイスがあればお願いしたい。
  • 質問者はusebeanの段階では問題なく動作することを確認しており、直接WEBブラウザのURLに「http://localhost:8080/javaroad/Hello」を入力すると問題なく動作することも確認している。
回答を見る
  • ベストアンサー

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

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">

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

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

<form method="get" action="Hello"> ではないでしょうか。

snowsan062
質問者

お礼

出来ましたありがとうございます! すごく助かりました!!

関連するQ&A

  • サーブレットにて、HTTP404エラーについて

    プログラミング初心者のものです。サーブレットについて勉強しているのですが、どうしてもHTTP404エラーが解消されません。 http://localhost:8080/entry/HelloServlet とURLに入力すると type ステータスレポート メッセージ /entry/HelloServlet 説明 The requested resource (/entry/HelloServlet) is not available. となってしまいます。なにかミスや指摘があればお願いします。 ファイル名 HelloServlet.java 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"); } } ファイル名 web.xml <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app> HelloServlet.javaは、 C:\servletbook\apache-tomcat\webapps\entry\WEB-INF\classes に格納されており、web.xmlは C:\servletbook\apache-tomcat\webapps\entry\WEB-INF に格納されてます。

    • ベストアンサー
    • Java
  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatとeclipseでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ■eclipseのパッケージエクスプローラー basic |-WEB=INF/src |..|input |...|EchoServlet.java |-WEB-INF |..|web.xml |.|echo.jsp (WEB-INF直下に作成) ■echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="/servlet/EchoServlet"> ■web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> ■EchoServlet.javaの記述 package input; 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 EchoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String msg = request.getParameter("message"); response.setContentType("text/plain; charset=Windows-31J"); PrintWriter out = response.getWriter(); out.println("message=" + msg); } } お気づきの点がございましたらご査収の程よろしくお願いいたします。

  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ・ファイルの配置 basic |-input |...|-echo.jsp |-WEB-INF |...|-src |......|-input |.........|-EchoServlet.java |...|-classes |......|-input |.........|-EchoServlet.class |...|-web.xml ・echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="../servlet/input.EchoServlet"> ・web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> tomcatの/confのinvokerのコメントは外していません。 過去の質問も調べてみて、上記の記述の辺りがおかしいのではないかと 思うのですが、、お気付きの点がありましたら教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • Javaサーブレットを読み込んでくれません…

    現在、社内での新プロジェクトの為にJSPの研修を行っています。 開発環境 ・Windows2000 Service Pack 4 ・JDK 1.5.0_06 ・Tomcat 5.5.20 JDKとTomcatのインストールは正常に終了し、http://localhost:8080/は正常に見ることが出来ました。 その後、<Tomcat-Home>/webapps/ROOT/entryフォルダを作成し、 ・entry/WEB-INF/ ・entry/WEB-INF/classes/ 以上二つのフォルダを作成して、WEB-INFフォルダ直下にweb.xmlファイルを作成しています。 classesフォルダの中にHelloServlet.classを置き、web.xmlファイルの中身を書き換えてTomcatを再起動させてみたのですが、http://localhost:8080/entry/HelloServletとURLを打ってみても見ることが出来ません。 何か間違っているのか、設定不足なのか…教えていただければ幸いです、よろしくお願いいたします。 ************<web.xml>************ <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> *********************************

    • ベストアンサー
    • Java
  • WEBブラウザからJSPを介して、サーブレットを呼び出したいのですが・・・

    オールインワンeclipse3.4 tomcat5.5を使用して 動的WEBプロジェクトを作成して JSP~サーブレットを呼び出したいのですが、 なぜかJSPファイルを認識してくれず、404エラーとなります。 考えられるのは、ファイルの配置箇所くらいしか、思いつきませんが、色々動かしても結果は変わりませんでした。 どなたか、ご指導お願いいたします。 □basic |□javaリソースsrc>□パッケージinput>EchoServret.java |□WebContent>echo.jsp echo.jspソース <%@ page contentType="text/html; charset=windows-31j"pageEncoding="windows-31j"%> <html> <body> <h2>EchoServletの入力</h2> <form action = "../servlet/input.EchoServlet"> <input type="text" name="message"> <input type="submit"> </form> </body> </html> EchoServlet.javaソース package input; 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 EchoServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ String msg = request.getParameter("message"); response.setContentType("text/plain; charset=Windows-31J"); PrintWriter out = response.getWriter(); out.println("message=" + msg); } } WEB.XML <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" 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"> <display-name>basic2</display-name> <servlet> <display-name>EchoServlet</display-name> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/EchoServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> よろしくお願いいたします!

    • ベストアンサー
    • 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
  • Tomcatでサーブレットを動かそうとするとHTTP 404エラーにな

    Tomcatでサーブレットを動かそうとするとHTTP 404エラーになってしまいます。 使用環境は以下の通りです。 Tomcat 5.5.20 jdk 1.6.0_20 Eclipse pleiades-e3.5 Tomcatプロジェクト名entryを作成し、WEBINF-src以下に inputパッケージを、その中にHelloServlet.javaを作り、 web-xmlをentryの直下に作成しました。 取り敢えず動作確認をしたいのですが、404エラーになってしまいます。 Tomcatを再起動しても駄目でした。 どなたか助言を頂けると大変助かります。。 以下確認した事です。 ・http://localhost:8080/manager/htmlにて/entryのデプロイを確認済み。 ・textファイルを配置した時はhttp://localhost:8080/entry/hello.txt で動作確認済み。 ・web-xmlは動作確認がとれているものをコピペして必要な部分だけ書き直し、       何度か確認したのですが、記述中の←の所でスペルが正しくありませんと言われています。 <?xml ← version="1.0" encoding="Shift-JIS"?> <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-appp_2_4.xsd" version="2.4"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>input.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app> 情報が少なくて申し訳ないですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • javaサーブレットのweb.xmlについておしえてください

    サーブレット作成中です。初心者です。 まずやりたいことは a.jspを作成しa.jspではformタグのactionにSampleを指定しています。 そして/test/Best.classを実行し、 b.jspに値を表示させます。つぎにb.jspからSample2参照させ /test/Best2.classを実行させたいと思いますが、 以下のようにweb.xmlに書いているのですが うまくいきません。 何がいけないのでしょうか?他に何か設定等いるのでしょうか? また他に手段があるのでしょうか? おしえてください。 ※ちなみにSampleだけの場合はうまくいっています。 SampleとSample2というように二つ設定させると うまくいきません。 ------ web.xmlの中身の一部------- <servlet> <servlet-name>Sample</servlet-name> <servlet-class>test.Best</servlet-class> <servlet-name>Sample2</servlet-name> <servlet-class>test.Best2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample</servlet-name> <url-pattern>/Sample</url-pattern> <servlet-name>Sample2</servlet-name> <url-pattern>/Sample2</url-pattern> </servlet-mapping> --------------------------

    • ベストアンサー
    • Java
  • JSPからServletへの遷移

    今回、eclipseで開発をすることになりました。 しかしながら、動的Webプロジェクトという使い慣れないプロジェクトでの作成を しなくてはならなくなり、混乱しています。 tomcatとWTPのことについては、先の質問で教えて頂き解決したのですが、 もう一つ困ったことがあったので、再度質問させて頂きます。 --------------------------------------- 環境 Windows7 Ultimate eclipse Indigo tomcat 5.5 --------------------------------------- まずは、JSPを作成し、それを実行し、ブラウザ上に表示することは出来ました。 その後にServletに<form action ="/test" method = "POST">という形で投げるのですが、 それがうまくいかず、404エラーが出てしまいます。 階層としては、JSPはSample(プロジェクト名)/WebContent/NewFile.jspに配置しています。 そして、Servletについては、Sample(プロジェクト名)/src/test/Test.javaに配置しています。 web.xmlについては、Sample(プロジェクト名)/WebContent/WEB-INF/web.xmlにあります。 まず、JSPのソースは以下の様に書かれています。 ----------------------------------------------------- <%@ page contentType="text/html;charset=Windows-31J" language="java"%> <%@ page pageEncoding="Windows-31J"%> <html> <head><title>タイトル</title></head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <%request.setCharacterEncoding("Windows-31J");%> <body> <form method="POST" action="/test"> <%--ここに処理を記述 --%> <input type = "submit" name="submit" value = "送信"> </form> </body> </html> ----------------------------------------------------- Servletについては、以下の様に、型だけ記述しています。 ----------------------------------------------------- package test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Test */ public class Test extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Test() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } ---------------------------------------------------- そして、web.xmlについては、以下の様に記述しています。 ---------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" 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"> <display-name>SampleWeb</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>test</servlet-name> <servlet-class>test.Test</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app> ----------------------------------------------------- その状態で、JSPの中から <form action ="/test" method = "POST"> <input type ="submit" name = "submit" value="送信"> </form> とやっても、404が出てしまいます。 Java自体が久々で、根本的に間違っているかもしれませんが、 ご教授お願い致します。

    • ベストアンサー
    • Java
  • 「サーブレットは現在利用できません」のエラーが出てしまいます。

    Java初心者の者です。 先日会社の研修でTomcatを触ったばかりで、会社では何とか 周りに聞きつつ出来たのですが、家で復習しようと思って 同じ操作をしてブラウザで画面を表示しようとしたら、 「サーブレット gotoNext は現在利用できません」 というエラーが出てしまいました。 どこを修正すればちゃんと表示されるのでしょうか? まだ「やさしいJava」が終わったばかりで サーブレットやJSPの用語がほとんど分からないので、 分かりやすく説明していただけると嬉しいです。 ***** input.jsp ********************************************* <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> </head> <body bgcolor="skyblue"> Hello JSP World!!<br> <form action="/scud/next" method="post"> <input type="submit" value="送信"> </form> </body> </html> ***** next.jsp ********************************************** <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> </head> <body bgcolor="yellowgreen"> Hello Another JSP World!! </body> </html> ******* GotoNextServlet.java ********************************* package sevlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GotoNextServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ System.out.println("★GotoNextServlet#doPostが呼ばれた!"); } } ******* web.xml ********************************************* <?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>gotoNext</servlet-name> <servlet-class>servlet.GotoNextServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>gotoNext</servlet-name> <url-pattern>/next</url-pattern> </servlet-mapping> </web-app> *************************************************************

    • ベストアンサー
    • Java

専門家に質問してみよう