java类继承HttpServlet类实现Servlet程序出现405错误:HTTP method POST is not supported by this URL

http请求servlet时出现405解决

http 405在servlet中的出现原因和解决方法

servlet中避免405错误的产生

 

java为什么不能继承父类的protected java类继承不了httpservlet_类名

 

 

java为什么不能继承父类的protected java类继承不了httpservlet_xml文件_02

 

 

一、Servlet运行原理

       比如,在浏览器地址栏输入http://ip:port/web01/hello,整个通信流程如下图所示:

java为什么不能继承父类的protected java类继承不了httpservlet_请求数据_03

       分步解释:

(1)浏览器依据ip,port建立与servlet容器(容器同时也是一个简单的web服务器)之间的连接。

       (2)浏览器将请求数据打包(按照http协议,该数据包也称为请求数据包)。

       (3)浏览器发送请求数据包给容器。

       (4)容器收到请求数据包之后,解析该数据包

       (5)将4中解析之后得到的数据封装到request对象上,同时,容器还要创建response对象。

       (6)容器要依据请求资源路径("/web01/hello")找到servlet的配置,然后创建servlet对象。

       (7)容器调用servlet对象的service方法。容器会将事先创建好的request,response作为参数传递给service方法。

       ( 8-10)在service方法里面,可以通过request对象获得请求参数,并进行相应的处理,处理结果会放到response对象里面。

       (11-13)容器从response对象中取出处理结果,然后打包(按照http协议,该数据包称之为响应数据包)。再将响应数据包发送给浏览器。

       (14-15)浏览器收到响应数据包之后,解析处理结果,然后生成相应的页面。

其实Java Web开发人员需要手动编写代码的部分主要在8-10,因为其他部分工作已被web服务器和开发工具完成。

二、常见异常及处理办法

       (1)404

            服务器依据请求资源路径找不到对应的资源。

           <1>错误原因:
               a. 请求地址写错了
               b.<servlet-name>不一致
           <2>解决方式:
               a. 依据http://ip:port/appname/servlet-url检查请求地址。
               b. 检查web.xml文件。
       (2)500

           运行时出错。

           <1>错误原因:
              a. 配置文件类名写错了。
              b. 没有继承HttpServlet。
              c. 程序代码写错。
           <2>解决方式:
              a. 检查web.xml文件。servlet-class中有没有把类名写错(必须是完整类名)
              b. 检查程序代码。
      (3)405

           方法异常。

           <1>错误原因:
              service方法不正确
           <2>解决方式:
              检查service方法(方法名、返回类型、参数类型、异常类型)。

 

作者:Glacier