错误404:Eclipse Servlet登录应用程序

时间:2016-03-29 07:23:27

标签: java xml servlets

在eclipse中使用tomcat上的servlet运行此登录应用程序时出现404错误。我从2天开始研究这个问题,但这个问题仍然存在。我只是无法弄清楚究竟是什么问题。我总是得到: -

HTTP状态404 - / GiftCardWebsiteLogin /登录

输入状态报告

message / GiftCardWebsiteLogin / Login

说明请求的资源不可用。

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>

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您需要映射servlet-class,其中已映射了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>

答案 2 :(得分:0)

根据您发布的内容,您尚未将URL模式映射到servlet类。您的应用程序基本上无法找到Login servlet。请查看有关servlet的Java文档:

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

在web.xml中,您需要为servlet映射创建一个条目并将其链接到servlet,例如:

// servlet:名称必须包含限定的包名称

<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映射到指定的servlet。

我希望这会帮助你!