熬之滴水穿石:JSP--HTML中的JAVA代码(2)

                                  34--JSP的生命周期

上一章节说了JSP其实就是一个Servlet,当然这里面有一个转换的过程。从一个阶段到另一个阶段,有开始就必然有结束,所以关于JSP我们还是得从生命周期说起吧!容器如何将一个JSP变成一个Servlet,其实已经超出了我们对于JSP的认识范畴,但是我认为知道这部分的内容还是有益处的。其中最为关键的还是要知道容器怎么来处理有关于JSP的元素,最初容器会根据你的JSP创建一个继承于HttpServlet的子类,这个类实现了HttpJspPage接口。根据JSP中的元素会在相应的类文件中加入相关的内容,像JSP元素的import都会在相应的类文件中加入import语句。容器还会将JSP的声明都写进类文件中去,为该Servlet建立服务方法,具体表现为_jspService()该方法会覆盖Service()的方法,在这个方法里接收HttpServletRequest和HttpServletRespone的请求。然后将容器的模板文件其实就是HTML,还有一些脚本的如Scriptlet放到服务中去并完成格式化用PrintWriter响应输出。

好了,到了JSP生命周期最为重要的部分了。JSP有三个重要步骤:分别是jspInit(),_jspService(),jspDestroy()。其中最为重要当属_jspService()方法了,这个方法是在Servlet的Service()调用的,对于每个请求它会在一个单独的线程中运行,容器将Request和Response对象传递给Service()。需要注意的是_jspService()是不能够被 覆盖的。JSP变成Servlet的整个生命周期是这样的。容器在启动时会读取部署文件webl.xml,加载配置所需要的servlet,但对于JSP是不会做任何处理真要做处理要等第一个请求过来时才会发生。当客户发第请求过来时,容器就会根据请求将jsp将其转换成Servlet类的JAVA文件,这一过程就会捕获JSP的语法错误。编译通过后将JAVA文件转成一个class文件,这个过程会捕获JAVA本身的语法错误。接着容器装载Servlet类,实例化servlet并执行jspInit()方法,让对象成为一个完整的Servlet这样就可以处理客户请求。容器会创建一个新线程来处理这个请求,并且调用_jspService()的方法运行。到这里以后的处理都会和Servlet一样了。最终servlet向客户发回一个响应。当然并不是每一个JSP都需要做这样的转换的,只需要第一个请求是这样。所以那时候我们部署应用时,第一次使用系统肯定是自己。我们将每个界面都依次点击一次以便用户在使用时能够感觉到“快”。当然也有预编译的办法让JSP转换提前,记得当时用了查询串的方式实现的。

好了,今天就到这里了,下一个章节我们说说JSP的属性........

                                                              ( 未完待续........)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值