Servlet生命周期和JSP

来源:互联网 发布:php get参数加密 编辑:程序博客网 时间:2024/05/19 20:39
1.servlet生命周期
 (1)什么是servlet的生命周期
  容器如何去创建servlet对象,如何对其进行初始
 化处理,如何调用其方法来处理请求,以及如何销毁
 servlet对象的整个过程。 
 (2)生命周期分哪几个阶段
  1)实例化
   a.什么是实例化?
    容器调用servlet的构造器创建servlet对象。
   b.什么时候实例化?
    b1.收到请求之后
    b2.容器启动之后,对于配置有
     <load-on-startup>参数的servlet,
     会立即实例化。
     参数值是一个大于等于零的整数,越
     小,优先级越高(先创建)。
   注:
    容器在默认情况下,对于某个类型的servlet,
   只会创建一个实例。
  2)初始化
   a.什么是初始化?
    容器在创建好servlet对象之后,会调用该对
   象的init方法。
    注:该方法只会执行一次。
   b.GenericServlet的init方法是如何实现的?
    将容器传递过来的ServletConfig对象保存
    下来,并且提供了getServletConfig方法。
   c.如何实现自已的初始化处理逻辑?
    override init()方法。
    注:不是override init(ServletConfig config)。
   d.初始化参数
    step1,在web.xml配置初始化参数
    <init-param>
     <param-name>company</param-name>
     <param-value>tarena</param-value>
    <init-param>
    step2,读取初始化参数
     String
      ServletConfig.getInitParameter("company")
  3)就绪
   a.什么是就绪?
    容器调用servlet对象的service方法来处理
   请求。
   b.HttpServlet的service方法是如何实现的?
    依据请求方式(get/post)调用对应的doXXX
    方法(doGet/doPost)。
   c. 我们写一个servlet,继承HttpServlet,可以
    选择override doGet/doPost方法,也可以
    直接override service方法。
  4)销毁
   a.什么是销毁?
    容器调用servlet对象的destroy()方法,然后
   删除该对象。
   b.该方法只会执行一次。
 (3)生命周期相关的几个接口和类
    1)Servlet接口
     a.init(ServletConfig config)
     b.service(ServletRequest req,ServletResponse res)
     c.destroy()
    2)GenericServlet抽象类
     实现了Servlet接口的部分方法(init,destroy)。
  3)HttpServlet抽象类
   继承了GenericServlet类,实现了service方法。
 
2. jsp
 (1)jsp是什么?
  sun公司制订的一种服务器端动态页面技术规范。
 注:
  a.因为直接使用servlet虽然也可以生成动态页面,
  但是过于繁琐(使用大量的out.println语句),并且不
  利于维护(修改页面,就必须修改java代码)。
  b.jsp本质上是一个servlet:
   jsp是一个以".jsp"为后缀的文件,该文件会被容
   器自动转换成一个对应的servlet然后执行。
 (2)如何写一个jsp
  step1,写一个以".jsp"为后缀的文件。
  step2,在该文件里面,可以添加如下的内容:
   1)html(css,js) 直接写。
   2)java代码
    a. java代码片断
     <%  java代码   %>
   3)隐含对象
    a.什么是隐含对象?
     可以直接使用的对象,比如out,request,
     response。
     b.为什么可以使用这些隐含对象?
     因为容器会自动添加获得这些对象的语句。
   4)指令
    a.什么是指令?
     通知容器,在将jsp文件转换成servlet类时,
     做一些额外的处理,比如导包。
    b.指令的格式
     <%@指令名称 属性=值%>
    c.page指令
     import属性:导包。
      比如 <%@page import="java.util.*,java.text.*"%>
 (3)jsp是如何执行的?
  step1,容器要将jsp文件转换成一个servlet类。
   html ------> service方法里面,使用out.
       write输出。
   <%   %> ---> service方法里面,照搬。
  step2,调用该servlet。
   
    
0 0
原创粉丝点击