您的位置:首页 > Web前端 > JavaScript

Servlet生命周期和JSP

2015-12-05 14:45 295 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java jsp servlet