访问jsp页面的执行过程

来源:互联网 发布:淘宝上的店铺怎么注销 编辑:程序博客网 时间:2024/06/10 00:23

JSP页面执行过程

JSP 页面其实是一个Servlet。JSP 页面是在JSP 容器中运行的。Servlet 容器一般也是JSP 容器。例如, Tomcat 就是一个Servlet/JSP 容器。

第一次请求一个JSP 页面肘, Servlet/JSP 容器要做两件事情:

1. 将JSP 页面转换成一个J SP 页面实现类,这是一个实现javax.servlet.p.JspPage接口或其子接口javax.servlet.p.HttpjspPage 的Java 类。JspPage是javax.servlet.Servlet的子接口, 这样会使每个JSP 页面都成为一个Servlet . 所生成Servlet 的类名取决于Servlet/JSP 容器。这一点不必操心,因为不需要你直接处理。如果有转换错误,错误消息将会发送到客户端。

2. 如果转换成功, Servlet/JSP 容器将会编译Servlet 类。之后,容器加载和实例化J ava字节码,并执行它通常对Servlet 所做的生命周期操作。

对于同一个JSP 页面的后续请求, Servlet/JSP 容器会查看这个JSP 页面自从最后一次转换以来是否修改过。如果修改过,就会重新转换、重新编译,并执行。如果没有,则执行内存中已经存在的JSP Servlet 。这样,第一次调用JSP 页面的时间总是会比后续请求的更长,因为它需要转换和编译。为了解决这个问题,可以采取以下任意一种措施:

配置应用程序,以便在应用程序启动之时,调用所有的JSP 页面〈实际上是指转换和编译) , 而不是在初始请求时才调用。

预先编译JSP页面,并将它们以Servlet 的方式进行部署。

Servlet与JSP生命周期对比

Servlet的生命周期:

1)构造方法(第1次访问)

2)init方法(第1次访问)

3)service方法

4)destroy方法          

Jsp的生命周期

1)翻译: jsp->java文件

2)编译: java文件->class文件(servlet程序)

3)构造方法(第1次访问)

4)init方法(第1次访问):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

Jsp的最佳实践

Servlet技术: 开发动态资源。是一个java类,最擅长写java代码

jsp技术: 开发动态资源。(通过java代码)最擅长输出html代码。

 

各取所长:

在web项目中涉及到逻辑:

1)接收参数      servlet做

2)处理业务逻辑,返回结果    servlet做

3)显示数据到浏览器      jsp做

4)跳转到其他页面        servlet做

 

servlet+jsp模式

servlet:

            1)接收参数

            2)处理业务逻辑

            3)把结果保存到域对象中

            4)跳转到jsp页面

Jsp:

            1)从域对象取出数据

            2)把数据显示到浏览器

 

servlet的数据    à   jsp页面

List<Contact>    使用域对象 共享数据


原创粉丝点击