javaweb第五记<监听器,本地化国际化>

本文介绍了Web开发中会话管理的基本概念和技术,包括Cookie的工作原理及其API使用方法,Session的创建、销毁方式以及如何设置有效时间。同时,还探讨了监听器的应用,如ServletContextListener、HttpSessionListener等,用于监听不同域对象的生命周期事件。
摘要由CSDN通过智能技术生成
问题?技术?解决?
1.cookie
1)解决会话跟踪的一种机制:在客户端保存用户信息
2)cookie在浏览器访问服务器时,由web服务器在http响应头附带传送给浏览器的一个小文本文件
3)一旦web浏览器保存了某个cookie,那么它在以后每次访问该web服务器时,都会在Http请求头中将这个cookie回传给服务器
4)底层的实现原理:

2cookie相关的api
  1创建   cookie  cookie=new  Cookie("name","asia");
  2 设置时间:cookie.setMaxAge(30);
  3设置cookie的作用范围:可以作用于当前目录和当前目录的子目录,但不能作用于当前目录的上一级目录
     cookie.setPath(request.getContextPath)
4  传送给客户端:
cresponse.addCookie(cookie);
 
从浏览器读取cookie:
   cookie[]  cookies=request.getCookies();
if(cookies!=null&&cookies.length>0){
for(cookie cookie: cookies){
out.print(cookie.getName())

监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象 当被监视的
对象发生情况时立即采取响应的行动
  三种类型;  监听域对象自身的创建和销毁自身  servletContext  httpsessio   httpservletRequest
 servletListener    servletRequestListener

ServletContextListener:
    1:利用ServletRequestListener  HttpSessionListener 以及ServletContextListener可以
把request session及application的生命周期进一步的做一了解
   》request:是一个请求  当一个响应返回时,即被销毁。当发送一个请器时被创建 注意:请求转发的过程是一个request对象
重定向是两个请求
  》session :当第一次访问web应用的一个jsp或者servlet时,且该jsp或servlet中还需要创建session对象
此时服务器会创建一个session对象

 session
  session销毁:  session过期   直接调用session的invalidate方法  当前web应用被卸载

方法一:  <%HttpSession session=request.getSession(true);
   session.setMaxInactiveInterval(10);  秒

%>
方法二: session.invalidate(); 直接销毁
方法三:  写在web 应用(session可以被持久化)
  关闭浏览器,并不以为着session被销毁 还可以通过sessionid找打服务器中的session对象
application: 贯穿于当前的web应用的生命周期  当前web 应用被加载时创建application对象 当前
web应用被卸载时销毁application对象

域对象中属性的变更的时间监听器就是用来监听ServletCotext   HttpSession HttpServletRequest 这三个对象中
的属性变更信息时间的监听器
   这三个监听器接口分别是:
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
 这三个接口中都定义了三个方法来处理被监听对象中的属性的增加 删除 和替换的事件  同一个事件在这三个接口中
对应的方法名称完全相同,只是接受的参数类型不同

HttpSessionBindingListener
 1)监听实现了该接口的java类的对象被绑定到session或者从session中解除绑定的事件
 public  void  valueBound(HttpsessionBindingEvent event){
syso("绑顶到session");
   Object  value=event.getValue();
syso(value==this);
 syso(event.getName());
}
  public void valueUnbound(HttSessionBindingEvent event){
syso("从session接触绑定");
}

注意:  该监听器不需要在web.xml文件中进行配置
session的钝化与活化
HttpSessionActivationListener
  1)监听实现了该接口和 serializable接口的java类的对象随session钝化和活化事件
    》活化: 从磁盘中读取session对象
   》钝化: 向磁盘中写入session对象
  》session对象存储在tomcat服务器的work/catalina\localhost\contentPath目录下 session.ser
   public  void  sessionDidActivate(HtttpsessionEvent  se)
 public  void  sessionWillPassivate(HttpsessionEvent  se)

》commons-fileUpload可以解析请求,得到一个FileItem对象组成的list
》commons-fileUpload把所有的请求信息都解析为FIleItem对象,无论是一个文件域还是一个文本域
》可以调用FileItem的IsFormField()方法来判断是一个表单域或不是表单域(文件域)
》再来获取信息

什么是国际化和本地化:

1  本地化:  一个软件在某个国家或者地区使用时,采用该国家地区的语言 数字  货币  日期等习惯
2 国际化  :  软件开发时,让它能支持多个国家和地区的本地化应用。  使得应用软件能够适应多个地区的语言和文化风俗习惯
3 本地敏感数据:随用户区域信息而变化的数据称为本地信息敏感数据 例如 数字  货币  日期  时间等数据

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值