第八章 Servlet高级

第八章 Servlet高级,第1张

第八章 Servlet高级 第八章 Servlet高级

Servlet生命周期就是servlet从创建到销毁的过程,包括加载和实例化,初始化,服务,和销毁4步。
   当客户第一次请求时,首先判断是否存在servlet对象,第一次请求时不存在,则由tomcat创建对象,调用init()方法对其初始化,用service()方法判断是post请求还是get请求,调用对应的方法返回给客户。
   当客户第二次请求时,还是判断是否存在servlet对象,由于之前已经创建过对象,所以直接到service()方法判断提交方式,调用对应的方法返回给客户端,
   当tomcat关闭时,调用destory()方法销毁对象。
   1.加载web.xml文件


	
	
		first
		com.etime.servlet.FirstServlet
	
	
	
	
	
	
		first
		/hello
	

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("销毁了");
			}
		
		}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5696959.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存