servlet是不是监听器

监听器的定义

	1.web中有很多监听器,大致分为三类
		(1)ServletContextListener  用于监听服务器的启动与关闭
		(2)HttpSessionListener  用于监听session的创建与销毁
		(3)ServletRequestListener  用于监听每一次请求 的开始【初始化】 与结束【销毁】

监听器的心得

	(1) 服务器开启,servletcontextListener首先被使用。servletcontext被创建了;服务器关闭的前一刻才会触发其销毁监听内容
	
	(2) 网页向controller请求,ServletRequestListener 首先检测出来,
	    执行了他的requestInitialized 方法,即初始化request;等待contronller事务结束后,才出发servletRequestListener的销毁事件
	
	(3)并不是每次前端向服务器请求 都会 验证要不要创建Session  ,而是当服务器调用了HttpServletRequest.getSession(true) 后,
		才会创建一个服务器内独一无二的session会话  ,其session id 则是自动分配一个无序的字符串,[得到两个一样的几率非常低]然后才保存在前端[一般在cookie里面]。
	
   (4)session 可以设置存活时间,到期后自动注销 ,但往往都是默认值,每当前端浏览器关闭后,session才开始以默认期限倒计时,
		等待时间到后才销毁,并不是浏览器一关闭,就会销立马销毁 ,当然,也没必要手动对其销毁,让其自毁自灭就行,
		根据这一特性,就无法让服务器判断前端用户是否仍在,想要实现这个功能,只能使用websocket 或者长轮询,长轮询太消耗资源了,不建议使用,websocket则是最好的方式!!!
	
	(5)从Tomcat设置的cookie路径来看,它对不同的应用程序设置的cookie路径是不同的,这样不同的应用程序所用的session id是不同的,因此即使在
	    同一个浏览器窗口里访问不同的应用程序,发送给服务器的session id也可以是不同的。

tomcat启动会做什么事

	1.创建监听端口,初始化三大监听器
	2.servlet的再第一次执行时,被tomcat的ServletRequestListener监听到,创建servlet,并执行其方法,再tomcat停止,servlet被销毁
	3.ServletConfig 类也是 servlet第一次被创建时创建的,每个servlet有自己的一个
		主要作用:
			1、可以获取 Servlet 程序的别名 servlet-name 的值
			2、获取初始化参数 init-param 
			3、获取 ServletContext 对象
	4.ServletContext  
		服务器开启,servletcontextListener首先被使用。servletcontext就被创建了;服务器关闭的前一刻才会触发其销毁监听内容
		主要作用:
			1、获取 web.xml 中配置的上下文参数 context-param 
			2、获取当前的工程路径,格式: /工程路径
		    3、获取工程部署后在服务器硬盘上的绝对路径 
		    4、像 Map 一样存取数据

HttpServletRequest是什么

	1.每次请求过来,tomcat servletRequestListen监听到请求,首先把请求的参数全部放进 HttpServletRequset对象中,
	  然后调用servlet的方法,将httpServletRequset对象传递到方法,供我们使用

	2.里面包含请求的各种信息,我们可以获得
	
	3.他还是一个域对象,我们可以存我们自己想存的数据,便于我们请求转发的时候获取自己想要的数据,而不是请求的参数

HttpServletResponse类是什么

	1.同样每次请求过来,创建一个HSR对象,监听器监听请求,将HSR传递给servlet,用于响应数据

	2.作用:响应数据和请求重定向

Guess you like

Origin blog.csdn.net/Chen4852010/article/details/120878714