栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

与Servlet斗智斗勇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

与Servlet斗智斗勇

之前一直报404,孩子要哭了

类型 状态报告

消息 请求的资源[/book_war_exploded/user.let]不可用

描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。

然后看了好多好多帖子,我觉得就是我的项目的里面路径的问题,它找不到我的UserServlet类

我原来的代码长这样:

@WebServlet("/user.let")
public class UserServlet extends HttpServlet {
    //构建UserBiz对象
    UserBiz userBiz= new UserBiz();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }

    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out=resp.getWriter();//响应输出流的对象

        //1.判断用户请求的类型为login
        String method=req.getParameter("type");
        switch(method){
            case "login":
                //2.从login.html中获取用户名和密码
                String name=req.getParameter("name");
                String pwd=req.getParameter("pwd");

                //3.调用UserBiz的getUser()方法,更具用户名和密码获取对应的用户对象
                User user=userBiz.getUser(name,pwd);

                //4.判断用户对象是否为null
                if(user==null){
                    //4.1 如果是null表示用户名或密码不正确,提示错误,回到登录页面
                    out.println("");
                }else{
                    //4.2 非空,表示登录成功,将用户对象保存到session中,提示登录成功后,将页面跳转到index.jsp
                    out.println("");
                }

                break;
        }

    }
}
 

享学图书管理系统

管理员:
密    码:
验证码: 
  

然后项目结构长这样:

然后看了好多
帖子用Servlet类的都直接在web.xml上加配置,就也去试了一试

    
        UserServlet
        com.yyy.book.action.UserServlet
    

    
        UserServlet
        /user.let
    

它终于报500了,感天动地

一段不知道那里有错的500

akarta.servlet.ServletException: 实例化Servlet类[com.yyy.book.action.UserServlet]异常

解决方法是把tomcat换成9.*版本的,出现这个问题的原因是tomcat 10中的servlet-api与maven中导入的servlet-api依赖不兼容所导致的

第一次报错500,可太开心了

HTTP状态 500 - 内部服务器错误
类型 异常报告

消息 实例化Servlet类[com.yyy.book.action.UserServlet]异常

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

javax.servlet.ServletException: 实例化Servlet类[com.yyy.book.action.UserServlet]异常
	org.apache.catalina.authenticator.Authenticatorbase.invoke(Authenticatorbase.java:540)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
	org.apache.tomcat.util.net.SocketProcessorbase.run(SocketProcessorbase.java:49)
	org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
根本原因。

java.lang.NoClassDefFoundError: org/apache/commons/dbutils/ResultSetHandler
****	com.yyy.book.biz.UserBiz.(UserBiz.java:10)
	com.yyy.book.action.UserServlet.(UserServlet.java:15)
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	org.apache.catalina.authenticator.Authenticatorbase.invoke(Authenticatorbase.java:540)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
	org.apache.tomcat.util.net.SocketProcessorbase.run(SocketProcessorbase.java:49)
	org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
根本原因。

java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandler
	org.apache.catalina.loader.WebappClassLoaderbase.loadClass(WebappClassLoaderbase.java:1407)
	org.apache.catalina.loader.WebappClassLoaderbase.loadClass(WebappClassLoaderbase.java:1215)
	com.yyy.book.biz.UserBiz.(UserBiz.java:10)
	com.yyy.book.action.UserServlet.(UserServlet.java:15)
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	org.apache.catalina.authenticator.Authenticatorbase.invoke(Authenticatorbase.java:540)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
	org.apache.tomcat.util.net.SocketProcessorbase.run(SocketProcessorbase.java:49)
	org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看

Apache Tomcat/9.0.56

更改项目结构

类型 异常报告

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

java.lang.NullPointerException
	com.yyy.book.action.UserServlet.doPost(UserServlet.java:44)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看

这个,等我重启了几次tomcat之后,就没报错了

登录成功

错误的密码也通过了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号