Servlet运行原理及404、500、405异常原因和解决方法总结
来源:互联网 发布:知柏地黄丸 六味地黄丸 编辑:程序博客网 时间:2024/06/07 17:16
一、Servlet运行原理
比如,在浏览器地址栏输入
http://ip:port/web01/hello
整个通信流程如下图所示:分步解释:
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方法的签名(方法名、返回类型、参数类型、异常类型)。
- Servlet运行原理及404、500、405异常原因和解决方法总结
- Servlet运行原理及404、500、405异常原因和解决方法总结
- 出现 HTTP Status 500 - Servlet.init() for servlet springmvc threw exception 异常的原因及解决方法
- ConcurrentModificationException异常原因和解决方法
- 基于odb的dll在xp系统下动态加载运行异常的原因及解决方法
- http 405在servlet中的出现原因和解决方法
- http 405在servlet中的出现原因和解决方法
- SetUnhandledExceptionFilter无法捕获异常原因及解决方法
- hibernate的一些异常原因及解决方法
- Java异常原因及解决方法汇总一
- servlet运行原理和生命周期
- apk运行时报错:UnsatisfiedLinkError: dalvik.system.PathClassLoader 异常原因和解决方法
- getOutputStream()异常的原因和解决方法
- Java ConcurrentModificationException异常原因和解决方法
- Java ConcurrentModificationException异常原因和解决方法
- Java ConcurrentModificationException异常原因和解决方法
- Java ConcurrentModificationException异常原因和解决方法
- Java ConcurrentModificationException异常原因和解决方法
- android webview js交互 调取本地相册(兼容各个版本)并且上传到服务器端。
- 对utf-8字符串计算长度
- CORS 头缺少 'Access-Control-Allow-Origin'问题
- 算法小题目练习
- 剑指offer面试题之把数组排成最小的数
- Servlet运行原理及404、500、405异常原因和解决方法总结
- php +- month的坑
- Canvas(画布)、Paint(画笔) 详解
- 在文本的特征选择中学习到的东西——构建词典
- android studio和eclipse ADT的区别
- java之interator
- const和#define的用法及区别
- 一键 为 Win7 安装盘 注入 USB 3.0驱动
- Activity中的四种启动模式