JSP-04- 实现数据的保存

.1  Session

一段时间内,单个客户与Web服务器的一连串相关的交换过程。

Ø  4.1.1  应用的场景: 用户登录后保存用户状态

确定用户的唯一   Sessin.getId();

Ø  4.1.2 会话的创建和使用:

  创建

Httpsession  session= request.getSession(Boolean value);

Httpsession  session= request.getSession();

         在第一种方法中,布尔值为true时,如果存在与当前请求关联的会话,就返回该会话,否则就创建一个新的会话,并把该会话返回。布尔值为 flase 时,如果存在会话返回,否则返回 null, 不再创建会话。

         第二种方法等同于第一种方法中的布尔参数值为true的情况。

  使用

赋值语法: public  void setAttribute(String name, Object value) ;

                  用法: session.setAttribute(“name”,”张曼”);

取值语法: public Object getAttribute(String name);

                 用法:String username = (String)session.getAttribute(“name”);

 

Session会保存在服务器端,如果没有清理机制,会导致性能问题或服务器崩溃。

 

  清空Session:

1)程序主动清除Session数据

             设置会话失效: session.invalidate();  //注销时

             移除会话中一个属性:

                 语法: public void removeAttribute(String name);

                 用法: session.removeAttribute(“name”);

                                2)服务器主动清除长时间没有再次发出请求的session

              设置会话过期时间:

              方法一:public void setMaxInactiveInterval(int interval); (单位:秒)

              可以再给Session赋值后,直接设置会话过期时间

              方法二: 配置 Web.xml文件

 

添加

<session-config>

    <session-timeout>30<session-timeout>

</session-config> (单位:分钟   注意放在 wep-app中)

结束Session的三种方式:

  1. 关闭浏览器
  2. 两次访问的间隔时间大于非活动时间
  3. 调用HttpSession的invalidate()方法

 

Ø  4.1.3 Session的生命周期

 

HttpSession技术不属于Http协议范围内,是由web容器为程序提供的服务。

4.2 cookie

Ø  4.2.3 应用场景

 关闭浏览器,结束会话,重启后,用户名已填写。登录邮箱或其他服务,页面直接填好了用户名。

Ø  4.2.4 使用方法

public void addCookie(Cookie cookie)

 

Cookie以文件的形式保存信息,存放在客户端,可以再IE设置该文件。

添加数据:  public void addCookie(Cookie cookie)

获取数据:  public  Cookie[] getCookies()

设置有效期: public void setmaxAge(int expiry)

用户可以禁用:  cookie

 

  添加:Cookie cookie = new Cookie(“变量名”,值);

Cookie.setmaxAge(60*60) ;   //设置有效时间,默认为妙

Response.addCookie(cookie);

 返回: Cookie[] cookie = request.getCookes();

      for(……){

                          if(cookie.getName().equals(“变量名”)){

                                   user=cookies[i].getValue;

}

}

 禁用Cookie

 

4.3 application

  4.3.1  使用场景:  统计页面访问次数,同时在线的人数

4.3.2  实现方式:  public void setAttribute(String name,Object object)

                  Public  Object getAttribute(String name)

 

 

<%

       Object count = application.getAttribute(“count”);

       if(count ==null){

              application.setAttribute(“count”,new Integer(1));

}else{

     Integer I = (Integer)count;

                       application.setAttribute(“count”,i.value()+1);

}

%>

 

Request中存储的数据尽在一个请求中可用。

     Session中存储的数据在一个会话有效期内可以。

     application中存储的数据在在整个web项目中可以。

posted @ 2015-05-10 16:43  张曼  阅读(1933)  评论(0编辑  收藏  举报