2017-02-17 16 views
1

> Java3で使用されている注釈を使用していないアプリケーションを構築する必要があります。 web.xml/view/controllerの設定は論理的で、うまくいくはずです。アノテーションを使用している場合は404エラーが発生します。私は、割り当てがアノテーションを使用しないようにしている理由はこれだと思います! S.Oの古いタイマーからのアドバイスはありますか?Java Web App注釈を使用していません。

P.Sこのアドバイスを開始するのに本当に助かります。私はオンラインで読んでいます。私が読んだ解決策はうまくいきません。そして、ほとんどの人はアノテーションを使用するように提案しています...私は使用できません!

web.xmlの

package com.server; 

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 OptionsWork 
*/ 

public class OptionsWork extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
     String options = req.getParameter("options"); 
     System.out.println(options); 
    } 

} 

OptionsWork.java

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Welcome Page</title> 
</head> 
<body> 

<h1>Welcome Page</h1> 

<br/> 

<form action="/OptionsForYou" name="options"> 

<select> 
    <option>---Select---</option> 
</select> 

<button type="submit" value="submit">Submit</button> 

</form> 

</body> 
</html> 

のwelcome.jsp

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <display-name>Options</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>OptionsWork</servlet-name> 
     <servlet-class>com.server.OptionsWork</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>OptionsWork</servlet-name> 
     <url-pattern>/OptionsForYou</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

依存関係をクロスチェックしてください。 – Akshay

+0

起動時にload-on-startupとSysoutを指定して、サーブレットがロードされているかどうかを確認してください。ちょうど考えて、

にリクエストメソッドを指定して、正しいメソッドがサーブレット上で実行されるようにしてください。 –

答えて

0

事があり、uのことwebappがROOTコンテキストにデプロイされていない場合は、フォームのaction属性を含む任意のリンクのコンテキストパスを指定する必要があります。

のアプリが($TOMCAT_ROOT/webapps/myAppフォルダ内のTomcatですなわち)myAppとして展開されているとしましょう、そしてあなたのwelcome.jspはURL http://localhost:8080/myApp/welcome.jspを持っており、OptionsWorkサーブレットはhttp://localhost:8080/myApp/OptionsForYou URLで「座っています」。しかし、<form action="/OptionsForYou" name="options">/OptionsForYouしか指定しなかった場合、実際には存在しないhttp://localhost:8080/OptionsForYouが呼び出され、404エラーが発生します。

ので、アクションのコンテキストパスを含むように/OptionsForYou<%= request.getContextPath() %>を追加、すなわち、あなたの<form>タグが

<form action="<%= request.getContextPath() %>/OptionsForYou" name="options"> 

のようになりますし、それが動作するはずです。

関連する問題