Servlet生命周期就是servlet从创建到销毁的过程,包括加载和实例化,初始化,服务,和销毁4步。
当客户第一次请求时,首先判断是否存在servlet对象,第一次请求时不存在,则由tomcat创建对象,调用init()方法对其初始化,用service()方法判断是post请求还是get请求,调用对应的方法返回给客户。
当客户第二次请求时,还是判断是否存在servlet对象,由于之前已经创建过对象,所以直接到service()方法判断提交方式,调用对应的方法返回给客户端,
当tomcat关闭时,调用destory()方法销毁对象。
1.加载web.xml文件
2.创建构造函数
public FirstServlet() {
System.out.println(“正在创建servlet对象”);
}
3.调用init方法——通过init方法初始化servlet
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println(“正在初始化servlet对象”);
}
4.访问URL需要servlet提供服务,执行servlet方法
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//请求发来的参数
String name = request.getParameter(“name”);
//从前台发来的参数放在这个字符串里
String html = “
hello!”+name+"!
";
System.out.println(“返回浏览器的响应数据为:”+html);//这一步是为了更明了的显示运行步骤
//服务器向浏览器返回的输出流
PrintWriter out = response.getWriter();
//通过out对象将html发送回浏览器
out.println(html);
5.销毁方法
@Override
public void destroy() {
System.out.println(“正在销毁servlet对象”);
}
Filter 过滤器
1.filter的简介
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进行逻辑处理
2.Filter的API详解
(1)filter生命周期及其与生命周期相关的方法
Filter接口有三个方法,并且这个三个都是与Filter的生命相关的方法
init(Filterconfig):代表filter对象初始化方法 filter对象创建时执行
doFilter(ServletRequest,ServletResponse,FilterChain):代表filter执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法
destory():代表是filter销毁方法 当filter对象销毁时执行该方法
Filter对象的生命周期:
Filter何时创建:服务器启动时就创建该filter对象
Filter何时销毁:服务器关闭时filter销毁
Listener(监听器)的作用和内部机制
作用:监听某个事件的发生,状态的改变
内部机制:接口回调
监听ServletContext域对象的创建与销毁:实现ServletContextListener接口。
ServletContext域对象的生命周期
@WebListener
public class MyServletContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("初始化");
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("销毁了");
}