您的位置:首页 > 编程语言 > Java开发

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

2017-08-14 11:00 204 查看
问题?技术?解决?

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 本地敏感数据:随用户区域信息而变化的数据称为本地信息敏感数据 例如 数字  货币  日期  时间等数据

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: