jspとサーブレットで初めてjavaとeclipseを使って作っています。
参考にしているサイトは、http://si.comp.ae.keio.ac.jp/web_app_dev_material/simple/dev_servlet/dev_servlet_login/index.htmlです。
初期の初期で躓いてしまいました。
サイトの通りに作ってみたのですが、ログイン画面まで動かすところまでなんですが、サイト上ではHTTPステータス500が出るみたいですが、なぜかHTTPステータス405が出ています。
これまで躓きまくってworkspaceの中のフォルダをリネームして、再度eclipseを起動してプロジェクトを削除して再度作り直しを繰り返しています。
これが原因なのでしょうか?
残骸が残っているのでしょうか?
サイトのようにHTTPステータス500を出した後、ログイン画面を表示したいです。
どうすれば良いでしょうか?
コードはサイトと全く同じです。
よろしくお願いします。
Todoの部分をAppに変えていました。
AppServlet.java
1package app; 2 3import java.io.IOException; 4 5import javax.servlet.RequestDispatcher; 6import javax.servlet.ServletException; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10 11/** 12 * TODO管理をおこなうサーブレット。 13 * (ログイン画面のみ) 14 */ 15public class AppServlet extends HttpServlet { 16 17 /** 18 * シリアルバージョンUID(おまじない) 19 */ 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * JSPのベースディレクトリ。 24 */ 25 private static final String JSP_BASE = "/WEB-INF/jsp/"; 26 27 28 29 /** 30 * 構築します。 31 */ 32 public AppServlet() { 33 ; 34 } 35 36 @Override 37 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 38 throws ServletException, IOException { 39 // 要求からactionパラメータを取得 40 String action = req.getParameter("action"); 41 42 String forward = null; 43 if("login".equals(action)) { 44 // ログイン画面の処理 45 // login.jspへフォワードする 46 forward = JSP_BASE + "login.jsp"; 47 }else{ 48 // 不正なアクションの場合 49 throw new ServletException("不正なリクエストです"); 50 } 51 52 // JSPへのフォワード 53 RequestDispatcher dispatcher = req.getRequestDispatcher(forward); 54 dispatcher.forward(req, resp); 55 } 56 57}
web.xml
1<?xml version="1.0" encoding="ISO-8859-1"?> 2<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 5 version="2.4"> 6 <servlet> 7 <servlet-name> 8 trans 9 </servlet-name> 10 <servlet-class> 11 app.AppServlet 12 </servlet-class> 13 </servlet> 14 15 <servlet-mapping> 16 <servlet-name> 17 trans 18 </servlet-name> 19 <url-pattern> 20 /trans 21 </url-pattern> 22 </servlet-mapping> 23 24</web-app>
ちょっと状況がよくわからないですね。直感ですがdoGetを正しく実装できていないのかも。 ワークスペースから todoServlet.java 全体を質問にコピーしてもらえませんか。
修正ありがとうございます。EclipseのTomcat対応は何をお使いでしょうか。
本を見て設定しました。Tomcatバージョン:バージョン6.x Tomcatホーム:C:\servletbook\apache-tomcat コンテキスト宣言モード:コンテキスト・ファイル コンテキスト・ディレクトリ:C:\servletbook\apache-tomcat\conf\Catalina\localhost あとeclipseの文字コードはutf-8にしています
http://si.comp.ae.keio.ac.jp/web_app_dev_material/install/eclipse/index.html ここをみると「Sysdeoプラグイン」を使って Tomcatアイコンを表示させているようですが、これであってますか。ソースは間違っていないように見えるので、ソースの修正が正しくTomcatに反映されていないかも、と思っています
405エラーが発生するURLは、どんなURLでアクセスしていますか?
tomcatとecliseとpluginは本のCDからインストールしました。http://localhost:8080/と入力するとtomcatが表示されます。tomcatをアンインストールしてCDからインストール先を変えてインストールしました。http://localhost:8080/trans/transを入力してみたんですが、アンインストールする前までHTTPステータス405が表示されてたんですが、HTTPステータス404 /trans/transと出るようになりました。
回答1件
あなたの回答
tips
プレビュー