关于http在servlet以及jsp中的一些理解
来源:互联网 发布:淘宝客服物流用语 编辑:程序博客网 时间:2024/06/03 18:56
首先,谈一谈http的流程
浏览器发送http请求到服务器,服务器经过处理返回http响应到浏览器,浏览器解析网页显示到屏幕
http请求报文
GET /login.jsp HTTP/1.1Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)Accept-Encoding:gzip,deflate username=aa&password=123456请求方法:GET :对应HttpServlet中的doGet方法
还有其他的请求方法:POST,PUT,HEAD等,其中POST请求对应HttpServlet中的doPost方法
URI:/login.jsp
版本协议:HTTP/1.1
最后一行为请求的正文,其他的请求头信息
下图片来源:http://blog.csdn.net/a19881029/article/details/14002273
http响应报文
HTTP/1.1 200 OKServer:Apache Tomcat/5.0.12Date:Mon,6Oct2003 13:23:42 GMTContent-Length:112状态码:200
状态信息:OK
其他为响应头
然后谈一谈servlet
先说一下servlet生命周期中比较重要的方法
init方法:初始化servlet中的参数(在web.xml配置)
service方法:响应客户请求,执行servlet的逻辑代码,在HttpServlet中可以理解为进行方法的转向,通过请求方法是GET还是POST来判断使用doGet还是doPost方法来执行响应请求服务的逻辑代码。
参考:http://blog.csdn.net/truong/article/details/17038687
destory方法:当服务器不再需要使用servlet实例或者重新装入时,调用该方法,会释放掉所有在inti方法申请的资源
图片来源:http://www.cnblogs.com/fifiyong/p/6390805.html
关于jsp
早期程序员是没有jsp的,只有servlet进行开发
通过http响应对象HttpServletResponse 的write方法写入响应来进行网页的开发,比较麻烦
所以,jsp的原理也是基于servlet。
在tomcat中又一个work文件目录中,打开对应项目可以看到
这就是访问jsp,会对jsp进行解析,自动创建一个java类,更准确的来说是一个servlet类,
然后进行编译为class保存在同级目录
其中也有一个servlet方法,即访问jsp时执行的响应请求的代码
该_jspService方法中的部分内容
将jsp脚本(表达式)中的java信息并入html一起写入响应
可见jsp的原理也是基于servlet中的HttpServletResponse对象的write方法进行响应的
完整流程
1.浏览器发送请求到服务器
2.服务器解析http请求,封装请求并且生成HttpServletRequest对象,并且可以通过HttpServletRequest对象一些列get方法可以得到URI,请求头等信息
3.创建一个HttpServletResponse对象,用于返回响应对象
4.这通过web.xml的映射访问对应的servlet的service方法。查看是否创建servlet(单例)实例,如果没有创建则创建该容器,并且调用init方法进行初始化,如果已经创建好则进行service调用
4.1如果访问的是jsp文件,对jsp进行进行解析为servlet的java文件,然后编译为class文件,重复4
4.2.servlet转发到servlet,即传递HttpServletRequest和HttpServletResponse
4.3..servlet转发到jsp,传递HttpServletRequest和HttpServletResponse,重复4.1
(重定向根据特性,类似)
5.结束后自动生成报文,返回一个响应给浏览器
本人菜鸟一枚,如有错误,欢迎指出
- 关于http在servlet以及jsp中的一些理解
- 关于servlet的一些理解
- servlet/jsp中的一些路径问题
- jsp&servlet中的一些莫名异常
- servlet/jsp中的一些路径问题
- Servlet和JSP的关系以及此关系在Tomcat中的体现
- 关于servlet 和jsp 中的 session对象
- 关于Jsp与Servlet中的Session对象
- 关于servlet 和jsp 中的 session对象
- 关于servlet 和jsp中的 session对象
- 在Jsp/Servlet中的中文解决办法
- 在Jsp/Servlet中的中文解决办法
- 一些关于Ajax总结以及理解
- 关于数据库的操作以及一些理解
- 过滤器基础以及在servlet中的应用
- HTTP-Servlet-JSP
- 关于tcp协议断开连接以及在socket编程时候连接的一些理解
- 关于JSP和Servlet的一些回顾认识
- C++ STL priority_queue
- linux配置java环境变量(详细)
- 在一个int数组里查找出所有这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- android fragment 刷新功能
- 在MvvmLight下使用{x:Bind}
- 关于http在servlet以及jsp中的一些理解
- java数据结构与算法-有向图的拓扑排序
- 【javascript笔记】prototype again!
- spring-aop的使用
- Android保存图片到本地
- Single Element in a Sorted Array问题及解法
- List Accounts
- Color argb()方法的参数
- forward 和 redirect 区别