web 监听器


web监听器监听对象

ServletContext         ->application

ServletContext         1-N  ServletContextListener    用途:定时器、全局属性对象

HttpSession          ->session

HttpSession         1-N HttpSessionListener     用途:统计在线人数 记录访问日志          

servletRequest     ->request

servletRequest   1-N  servletRequestListener    用途:读取参数,记录访问历史

使用:

1、继承相应的接口

2web.xm注册



监听事件划分:

1、监听对象自身的创建和销毁的事件监听器

2、监听对象中的属性的增加和删除,替换的事件监听器

3、监听绑定Httpsession域中的某个对象的状态的事件监听器

Httpsession的对象状态:

绑定->解除(将对象保存在session和将对象从session清除)      钝化->活化(本质:把服务器中不经常使用的session对象暂时序列化到系统文件中或者数据库,当被使用时反序列化到内存中,整个过程服务器自动完成)    不需在web.xml注册

HttpsessionBindingListener接口

valueBound方法

valueUnbound方法

HttpsessionActivitionListener 接口

sessionWillpassivate方法

sessionDidActivity方法

拓展:

1.page当前页面有效。在一个jsp页面里有效

2.request 指一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。

3.Session用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中 浏览器关闭(或者超时)

4.application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。它的存活时间是最长的,如果不进行手工删除,它们就一直可以使用   服务器关闭

总结:当数据只需要在下一个forward有用时,用request就够了;
         若数据不只是在下一个forward有用时,就用session。
         上下文,环境信息之类的,用application。

监听器用途:

  1. 统计在线的人数和在线的用户
  2. 系统启动时加载初始化信息
  3. 统计网站访问量
  4. 跟spring结合

启动顺序:

一个web.xml可以注册多个监听器
加载优先级:

监听器>过滤器>servlet

getAttribute与getParameter的区别

  这部分是对JSP的扩展,经常在JSP或者Servlet中获取数据,那么getAttribute与getParameter有什么区别呢?

  1 从获取到数据的来源来说:

  getAttribtue获取到的是web容器中的值,比如:

  我们在Servlet中通过setAttribute设定某个值,这个值存在于容器中,就可以通过getAttribute方法获取;

 

  getParameter获取到的是通过http传来的值,比如这样一个http请求:

http:localhost:8080/test/test.html?username=xingoo

  还有其他的GET和POST方式,都可以通过getParameter来获取。

  2 从获取到的数据类型来说:

  getAttribute返回的是一个对象,Object。

  getParameter返回的是,前面页面中某个表单或者http后面参数传递的值,是个字符串。

getAttribute与getParameter的区别

  这部分是对JSP的扩展,经常在JSP或者Servlet中获取数据,那么getAttribute与getParameter有什么区别呢?

  1 从获取到数据的来源来说:

  getAttribtue获取到的是web容器中的值,比如:

  我们在Servlet中通过setAttribute设定某个值,这个值存在于容器中,就可以通过getAttribute方法获取;

 

  getParameter获取到的是通过http传来的值,比如这样一个http请求:

http:localhost:8080/test/test.html?username=xingoo

  还有其他的GET和POST方式,都可以通过getParameter来获取。

  2 从获取到的数据类型来说:

  getAttribute返回的是一个对象,Object。

  getParameter返回的是,前面页面中某个表单或者http后面参数传递的值,是个字符串。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值