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

JSP-04- 实现数据的保存的更多相关文章

  1. intellig idea中jsp或html数据没有自动保存和更换字体

    主题一:保存数据jsp intellig idea是自动保存数据的,看到没有保存 解决方案: 成功解决 主题二:更换字体: 或者快捷键Ctel+Alt+s 成功解决

  2. Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件【转】

    转自:http://blog.chinaunix.net/uid-29339876-id-4042245.html 利用V4L2读取UVC摄像头数据并保存成视频文件,主要参考http://linuxt ...

  3. JSP中四种属性保存范围(1)

    一.四种属性范围 在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效request:在一次服务请求范围内,服务器跳转后依然有效session:-在一次会话范围内,无论何种跳 ...

  4. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  5. Java程序运行时,数据都保存到什么地方?

    程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据: 寄存器 这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器 ...

  6. 【matlab】将matlab中数据输出保存为txt或dat格式

    将matlab中数据输出保存为txt或dat格式 总结网上各大论坛,主要有三种方法. 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量 *.txt ...

  7. android应用的数据应该保存到哪儿

    王永超王永超嫖娼 做android app开发会涉及到不同数据的保存,比如数据缓存,客户登陆信息保存,客户状态的保存等等. 那针对这不同的数据我们应该保存在什么地方呢? 1.应用卸载也不会删除的数据 ...

  8. Android中突发情况Activity数据的保存和恢复

    Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...

  9. Python学习_从文件读取数据和保存数据

    运用Python中的内置函数open()与文件进行交互 在HeadFirstPython网站中下载所有文件,解压后以chapter 3中的“sketch.txt”为例: 新建IDLE会话,首先导入os ...

  10. 提取数据表保存为XML文件

    //连接数据库 SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********&qu ...

随机推荐

  1. Android笔记:C memory copy

    socket通讯问题之一: 在c中按字节发送数据  比如设备1状态(1字节)值(1字节)设备2状态(1字节)值(1字节)....这种格式拆分的问题 在c中可以利用struct的 memory copy ...

  2. linux root不能用

    在操作查看vi /etc/passwd 查看用户信息时,不小心修改了root的用户名改成了eoot,这样在切换到普通用户后,就切不回root,即使明明知道用户名是eoot,也知道原来的root密码,但 ...

  3. Dancing Stars on Me---hdu5533(判断是否为正多边形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5533 题意:平面图中 有n个点给你每个点的坐标,判断是否能通过某种连线使得这些点所组成的n边形为 正n ...

  4. jQuery实现隔行变色

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. sql server 2008语句中的go有什么用?

    GO表示一个批处理的结束, SQLSERVER遇到Go以后就会将GO之前的语句作为一整批进行处理你在SSMS里执行的时候, 通常加不加都可以,但是如果实在SQLCMD下执行, GO就是一个执行命令了另 ...

  6. 用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量

    用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量

  7. rem适配

    //REM适配new function() { var _self = this; _self.width = 640; // 设置默认最大宽度 _self.fontSize = 100; // 默认 ...

  8. 在Ubutu14.04的Eclipse启动Tomcat的问题

    PS:因为tomcat文件夹的权限问题,导致我研究了一中午,首先是New Server时,不能输入server name,之后我删除了 org.eclipse.wst.server.core.pref ...

  9. Servlet+Jsp实现图片或文件的上传功能

    首先,我们创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源. 然后,在WebR ...

  10. Vue.2.0.5-Vue 实例

    构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模式, Vue 的设 ...