JSP-04- 实现数据的保存

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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的三种方式:

关闭浏览器两次访问的间隔时间大于非活动时间调用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项目中可以。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航