JSP执行过程详解
文章参考
https://www.cnblogs.com/klguang/p/4715529.html
https://www.runoob.com/servlet/servlet-intro.html
https://blog.csdn.net/forward__/article/details/57079115
1.Servlet和JSP的概念
JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP。
什么是Servlet,用于处理HTTP 客户端的请求和 读取HTTP 服务器上数据的Java类 ,是WEB应用程序中的一个组件。
2.Servlet在Web应用程序中的位置
图1
3.Servlet工作过程
图2
3.Servlet和JSP之间的关系(图2中最后一个蓝色的Servlet容器指的是tomcat服务器,JSP页面在tomcat服务器中的解析过程如图3所示)
JSP本质上也是Servlet的一种,只是Servlet关注于逻辑控制(java文件),JSP关注页面显示(java和html的结合),分别对应MVC设计模式中的控制层和视图层。
JSP请求过程如下图所示(图片来源:https://www.cnblogs.com/klguang/p/4715529.html)
图3
tomcat服务器读取web服务器给的客户端的请求(访问JSP页面或Servlet)后分以下几步来处理
第一步:将jsp编译成Servlet(.java)文件。存放JSP转译成的servlt的目录为:apache-tomcat-7.0.59\work\Catalina\localhost\yourwebapp\org\apache\jsp 。
第二步:将Servlet文件(.java)到Java字节码文件(.class)。
第三步:根据contentType属性(设置JSP源文件和响应正文的字符集编码及MIME类型, contentType的charset是指服务器发送给客户端时的内容编码)生成
相应的文件(可以是HTML,图片,XML等文件)发送给web服务器(如apache),再由web服务器发送该响应给客户端。
4.Servlet的生命周期
- Servlet 通过调用 init () 方法进行初始化。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 通过调用 destroy() 方法终止(结束)。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。