servlet中Tomcat访问浏览器时的常见错误

servlet中Tomcat访问浏览器时的常见错误,第1张

servlet中Tomcat访问浏览器时的常见错误 出现404
  • 错误原因1:少写了Context Path(/first-demo)
  • 错误原因2:少写了Servlet Path
  • 错误原因3:Servlet Path 写的和 URL 不匹配

  • 错误原因4:web.xml 写错了
    清除web.xml中的内容

    重启Tomcat服务器,用过浏览器访问正确的URL,可以看到

    而在Tomcat启动时也有相关的错误提示
出现405 (Method Not Allowed)

405 表示对应的 HTTP 请求方法没有实现,客户端的问题(URL对应的资源存在,但方法不对)

  • 错误原因:没有实现 doGet 方法.

    //方式一:不重写doGet()方法
    @WebServlet("/first")
    public class FirstServlet extends HttpServlet {
    }
    
    //方式二:直接调用父类的doGet()方法(同上)
    //一个类没有重写父类的方法,则直接调用的就是父类的方法
    @WebServlet("/error-method")
    public class ErrorMethodServlet extends HttpServlet {
        @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doGet(req, resp);
         }
    }
    
    //方式三
    @WebServlet("/error-method")
    public class ErrorMethodServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/plain");
        resp.getWriter().println("我是处理/error-method的POST方法的");
    }
    

    重启 Tomcat 服务器. 在浏览器中访问, 可以看到:

    在浏览器地址栏直接输入 URL , 会发送一个 HTTP GET 请求.
    此时就会根据 /first-demo/first 这个路径找到 FirstServlet 这个类. 并且尝试调用FirstServlet 的 doGet 方法.
    但是如果没有实现 doGet 方法, 就会出现上述现象

想通过post方法访问某个资源:

  1. 通过form表单,指定method 属性
  2. 通过js 的代码做到

form表单

  


出现500(前提是:URL对应的资源存在)

往往是 Servlet 代码中抛出异常导致的

出现“空白页面”
  • 错误实例:修改代码, 去掉 resp.getWritter().write() *** 作

    @WebServlet("/first")
    public class FirstServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        }
    }
    

出现“无法访问此页面”

一般是 Tomcat 启动就失败了
错误实例:代码中Servlet Path 写错了

凡是看到了HTTP响应了(无论是1XX、2XX、3XX、4XX、5XX)
意味着一定有一个Web服务器应答浏览器了,否则是不会看到HTTP响应了。

工具(定位和确定问题)
  1. 浏览器的报错信息(无法连接、404、500、异常信息)
  2. Tomcat打印的日志信息(我们自己添加打印等工作)
  3. 浏览器的开发者工具元素面板((HTML、CSS)、网络面板(HTTP)、前端调试器面板(JS)、控制台面板(JS)
  4. IDEA的调试器(调试后端)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5682047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存