javax.servlet.ServletException:类com.mq.sample.Hello不是Servlet

时间:2016-11-08 06:18:23

标签: java servlets

我正在尝试创建一个简单的登录应用程序。我创建了一个登录页面和一个servlet,但它提供了ServletException

这是我的示例代码。

public class Hello extends HttpServlet{

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{  
        try{  

        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  

        String username=request.getParameter("username"); 
        String password=request.getParameter("password");
        out.println("hello");

        if(username.equals("xyz")&&password.equals("password"))
        {
            HttpSession session=request.getSession();  
            session.setAttribute("uname",username);
            RequestDispatcher rd=request.getRequestDispatcher("/Home.jsp");
            rd.forward(request, response);
        }
        else
        {
            RequestDispatcher rd=request.getRequestDispatcher("/login.html");
            out.println("<h4>Plz provide correct Username or password</h4>");
            rd.include(request,response);
        }


        out.close();  

                }catch(Exception e){System.out.println(e);}  
    }

此代码提供以下异常: 我不知道为什么会这样。

javax.servlet.ServletException: Class com.mq.sample.Hello is not a Servlet

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)
root cause

java.lang.ClassCastException: com.mq.sample.Hello cannot be cast to javax.servlet.Servlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)

提前致谢

1 个答案:

答案 0 :(得分:1)

您从Tomcat收到错误,请参阅this link。所以问题是你的类路径中有servlet jar冲突。 从classpath中删除javax.servlet-api.jar并执行此操作。  enter image description here