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文件

JSP-04- 实现数据的保存

添加

<session-config>

<session-timeout>30<session-timeout>

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

结束Session的三种方式:

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

Ø  4.1.3 Session的生命周期

JSP-04- 实现数据的保存

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

JSP-04- 实现数据的保存

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项目中可以。

上一篇:Excel 国家甘特图(多图)


下一篇:win10系统磁盘占用率高的解决方法,占用100%的问题