2016-10-05 101 views
0

的Tomcat 7在Windows 7上运行,使用servlet的注释,是给我一个404错误,当我试试这个网址: http://localhost:8080/LoginExample/ Tomcat正在使用JRE 1.7,Servlet类是包含在文件夹.../webapps/LoginExample。它是使用Java 1.7编译的。我没有Web.xml。它部署没有错误。@WebServlet在Tomcat 7获得的404

这里是类:

package com.journaldev.servlet; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebInitParam; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class LoginServlet 
*/ 
@WebServlet(
     description = "Login Servlet", 
     urlPatterns = { "/LoginServlet" }, 
     initParams = { 
       @WebInitParam(name = "user", value = "Pankaj"), 
       @WebInitParam(name = "password", value = "journaldev") 
     }) 
public class LoginServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 


    public void init() throws ServletException { 
     //we can create DB connection resource here and set it to Servlet context 
     if(getServletContext().getInitParameter("dbURL").equals("jdbc:mysql://localhost/mysql_db") && 
       getServletContext().getInitParameter("dbUser").equals("mysql_user") && 
       getServletContext().getInitParameter("dbUserPwd").equals("mysql_pwd")) 
     getServletContext().setAttribute("DB_Success", "True"); 
     else throw new ServletException("DB Connection error"); 
    } 


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     //get request parameters for userID and password 
     String user = request.getParameter("user"); 
     String pwd = request.getParameter("pwd"); 

     //get servlet config init params 
     String userID = getServletConfig().getInitParameter("user"); 
     String password = getServletConfig().getInitParameter("password"); 
     //logging example 
     log("User="+user+"::password="+pwd); 

     if(userID.equals(user) && password.equals(pwd)){ 
      response.sendRedirect("LoginSuccess.jsp"); 
     }else{ 
      RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.html"); 
      PrintWriter out= response.getWriter(); 
      out.println("<font color=red>Either user name or password is wrong.</font>"); 
      rd.include(request, response); 

     } 

    } 

} 

回答

0

你的servlet类LoginServlet只设计用于处理 '/ LoginServlet' URL和http://localhost:8080/LoginExample/您使用 '/' 作为URL。

您必须使用http://localhost:8080/LoginExample/LoginServlet
OR

<form action="LoginServlet" method="post"> 
.... 
.... 
</form>