(022)java后台开发之HttpServletRequest
本文转载自:Servlet运行原理及404、500、405异常原因和解决方法总结
一、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>错误原因:
service方法不正确
<2>解决方式:
检查service方法(方法名、返回类型、参数类型、异常类型)。
(022)java后台开发之HttpServletRequest相关推荐
- (021)java后台开发之HttpServletRequest
文章转自:https://www.cnblogs.com/xdp-gacl/p/3798347.html servlet-api 的servlet.http.HttpServlet 的学习.大神的文章 ...
- (015)java后台开发之web项目中如何添加jar包和删除jar包
创建一个java web项目后,创建一个index.jsp运行起来后,就发布到服务器上!最简单的java web工程就算完成了!但是往往我们的工程比较复杂,经常会用一些第三方的库(jar)来帮助我们方 ...
- (012) java后台开发之Apache与Tomcat有什么关系和区别
转载:http://blog.csdn.net/longzs/article/details/10959945 经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系, ...
- (020)java后台开发之JAVA集合中的List接口
转载:http://blog.csdn.net/self_realian/article/details/51881977 原文写的很好.请看原文. JAVA中的集合类: JAVA中的集合类,是一种工 ...
- (016)java后台开发之Eclipse安装反编译插件
在java(015)中gson-2.2.4.jar 源码的查看基于Attach Source code 链接到源码库gson-2.2.4-source.jar 实现的.而我导入的servlet-api ...
- (008) java后台开发之java程序中的控制结构
转自:https://course.tianmaying.com/java-basic+control-flow# 博客应用综合实例 接下来我们来设计一下博客应用,让它可以管理博客. 用户可以输入以下 ...
- (007) java后台开发之Scanner报错java.util.NoSuchElementException
在测试Scanner 时写了两次 .close(); 结果运行报错. 原因参考:http://www.cnblogs.com/qingyibusi/p/5812725.html 一个方法A使用了Sca ...
- (005) java后台开发之Mac终端命令运行java
Mac终端命令运行java 由于mac已经装好java环境,所以直接课运行java命令,很方便. 1.编译一个java文件: javac /Users/用户名/Desktop/HelloWorld.j ...
- (004) java后台开发之Eclipse(Neon) 版本安装Java EE插件
Eclipse Neon Java版本安装Java EE插件 Help→Install New Software 地址:Neon - http://download.eclipse.org/relea ...
最新文章
- scrapy创建以及启动项目步骤!
- 2012需要一种智慧
- 【LTE】LTEMIMO系统的MATLAB仿真
- 电脑开机3秒就重启循环_移动办公神器!电脑包秒变支架、鼠标垫,3合1设计超方便!...
- java 实现 web 客户端_Java web客户端和服务器端交互的原理
- 指定rviz的点启动_好消息!武汉已经启动新冠疫苗紧急接种工作
- LeetCode 21. 合并两个有序链表 golang
- 神奇的 SQL 之团结的力量 → JOIN
- 一些常用PLSQL语句 和事务
- 【九度OJ1348】|【剑指offer36】数组中的逆序对
- Maven的打包命令
- python将经纬度坐标转换为xy_Python将x,y数据转换为经纬度d
- 分布式文件系统 FastDFS 5.0.5 Linux CentOS 7 安装配置
- 生命已经这么短,为什么还不追求自己真正想要的
- matlab2016与VS2019混合编程
- ubuntu 本地和服务器scp文件传输
- 盘点业务流程的SAP操作调整
- python查看迭代器可迭代次数
- button渐变色 ios_ios开发
- cassandra 数据库