servlet的拦截器和三大作用域

来源:互联网 发布:激光颗粒物传感器 知乎 编辑:程序博客网 时间:2024/06/05 09:36

servlet的八大监听器



Servlet三大作用域

1、request 

2、session

3、ServletContext


举例 监听三大作用域

监听request作用域

request的作用范围:请求响应后马上销毁  传递的参数 或者请求转发跳转数据传递  写入HttpServletRequest   应用比较多

在web.xml中注册request监听器

 <!-- 注册request监听器 -->  <listener>  <listener-class>cn.et.servlet.lesson03.RequestCycleListener</listener-class>  </listener>
package cn.et.servlet.lesson03;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;import javax.servlet.http.HttpServletRequest;/** * 事件定义的三要素 * 1.事件源头 * 2.动作 * 3.触发回调(触发动作后调用什么东西  onclick="回调") *  *  * 监听器 * 事件源头(HttpServletRequst,Httpsession,ServletContext) * 动作 (生命周期阶段(对象产生 销毁),数据变化(SetAttribute removeAttribute)) * 回调 * @author THINK * *request的生命周期  浏览器发起请求 产生request对象  响应后 request 被销毁 * *记住要去web.xml中去注册 */public class RequestCycleListener implements ServletRequestListener {//监听request对象的销毁public void requestDestroyed(ServletRequestEvent sre) {// TODO Auto-generated method stubSystem.out.println("请求销毁");}//监听request对象的产生public void requestInitialized(ServletRequestEvent sre) {// TODO Auto-generated method stubHttpServletRequest hsp = (HttpServletRequest)sre.getServletRequest();System.out.println("请求产生"+hsp.getRequestURI());}}


监听session

session作用域范围:数据使用有状态的  不同的用户拥有不同的数据  写入HttpSession

在web.xml中注册session监听器

<!-- 注册Session监听器 -->  <listener>  <listener-class>cn.et.servlet.lesson03.MySessionListener</listener-class>  </listener>
当浏览器关闭时session不会马上销毁  需要在web.xml中设置保存的时间(单位分钟)

<!-- 设值session的销毁时间 -->  <session-config>        <session-timeout>1</session-timeout>  </session-config>

package cn.et.servlet.lesson03;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class MySessionListener implements HttpSessionListener {public void sessionCreated(HttpSessionEvent se) {// TODO Auto-generated method stubHttpSession hs=se.getSession();System.out.println("产生Session"+hs.getId());}public void sessionDestroyed(HttpSessionEvent se) {System.out.println("session销毁");}}

监听ServletContext

ServletContext作用域范围:当项目重新发布或者关闭服务器时销毁  所有的servlet都需要共享  数据需要保留时间很长  写入ServletContext

在web.xml中注册ServletContext的监听器

<!-- 注册ServletContext监听器 -->  <listener>  <listener-class>cn.et.servlet.lesson03.MyServlerContext</listener-class>  </listener>

package cn.et.servlet.lesson03;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/** * ServletContext生命周期 *  *  * @author THINK * */public class MyServlerContext implements ServletContextListener {public void contextDestroyed(ServletContextEvent sce) {System.out.println("上下文对象销毁");}public void contextInitialized(ServletContextEvent sce) {System.out.println("上下文对象产生");}}


阅读全文
0 0
原创粉丝点击