2016-03-29 10 views
0

EclipseでTomcatのサーブレットを使用してこのログインアプリケーションを実行しているときに404エラーが発生します。私は2日からこれを進めていますが、この問題は依然として持続しています。私は正確に何が間違っているのか理解できません。私はいつも得る: -エラー404:Eclipseサーブレットログインアプリケーション

HTTPステータス404 -/GiftCardWebsiteLogin /ログイン

タイプステータスレポート

メッセージ/ GiftCardWebsiteLogin /ログイン

説明要求されたリソースが利用できません。

のApache Tomcat/8.0.32

public class Login extends HttpServlet { 

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 

    String email = request.getParameter("email"); 
    String password = request.getParameter("pass"); 
    Validate validate=new Validate(); 
    if(validate.checkUser(email, password)) 
    { 
     request.setAttribute("attributeName",email); 
     RequestDispatcher result = request.getRequestDispatcher("Welcome"); 
     result.forward(request, response); 
    } 
    else 
    { 
     out.println("Username or Password incorrect"); 
     RequestDispatcher result = request.getRequestDispatcher("index.html"); 
     result.include(request, response); 
    } 
} 

}

html file 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>LOGIN</title> 
</head> 
<body> 
     <form method="post" action="Login"> 
     Email ID:<input type="text" name="email" /><br/> 
     Password:<input type="password" name="pass" /><br/> 
     <input type="submit" value="Login" /> 
     </form> 
     If you are a new user you can register here.<a  href="register.html">Register</a>  
    </body> 
</html> 


web.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>/Login</servlet-class> 
    </servlet> 
    <servlet> 
    <servlet-name>Welcome</servlet-name> 
    <servlet-class>Welcome</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Welcome</servlet-name> 
    <url-pattern>/Welcome</url-pattern> 
    </servlet-mapping> 

<servlet> 
     <servlet-name>Register</servlet-name> 
     <servlet-class>Register</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Register</servlet-name> 
     <url-pattern>/Register</url-pattern> 
    </servlet-mapping> 
<welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

答えて

1

クラスを宣言するときに、誤って自分のweb.xmlファイルにスラッシュを追加しました:

<servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>/Login</servlet-class> 
</servlet> 

を修正する必要がありますスラッシュなし(/):

<servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>Login</servlet-class> 
</servlet> 

あなたはまた、マッピングを追加する必要があります。

<servlet-mapping> 
    <servlet-name>Login</servlet-name> 
    <url-pattern>/Login</url-pattern> 
</servlet-mapping> 
0

あなたはあなたが投稿した内容によると、あなたがマッピングされていない、あなたのURL-pattern

<servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>Login</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>Login</servlet-name> 
    <url-pattern>/Login</url-pattern> 
    </servlet-mapping> 
0

をマッピングしているあなたのservlet-classを、マップする必要がありますサーブレットクラスへのURLパターン。基本的に、あなたのアプリがLoginサーブレットを見つける方法はありません。サーブレットに関するJavaドキュメントを見てください:あなたのweb.xmlに

https://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html

はあなたのサーブレットマッピングのエントリを作成し、例えば、サーブレットにリンクする必要があります。

//サーブレット:名前が同様に修飾パッケージ名が含まれている必要があり

<servlet> 
<servlet-name>Login</servlet-name> 
<servlet-class>com.package.name.servlets.LoginServlet</servlet-class> 
</servlet> 

//マッピング

<servlet-mapping> 
<servlet-name>Login</servlet-name> 
<url-pattern>/login/*</url-pattern> 
</servlet-mapping> 

上記の宣言は、ログインを含むすべてのURLを指定されたサーブレットにマップします。

私はこれがあなたを助けてくれることを願っています!