.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. 设计模式:抽象工厂模式(Abstract Factory)

    定   义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 结构图: 示例结构图: 实体类: class User { public int Id { get; set; } p ...

  2. 根据 字数 确定 UI控件高度

    //字体 textLabel.font = [UIFont systemFontOfSize:13]; CGFloat labelWidth = [UIScreen mainScreen].bound ...

  3. OO之美

    ㈠ 设计的分寸 对于设计,还有很多看似"惯常"的法则与经验广泛存在于软件系统中,例如除了经典的23种设计设计模式.还有很多模式之外的模式,按照粒度的大小,系统的特点,规模的大小,而 ...

  4. MFC之目录结构及消息流转(一)

    跟上时代,用vs2010, 新建一个MFC应用程序Helloworld. 目录结构: 所有文件分为6个部分:解决方案相关文件.工程相关文件.应用程序头文件和源文件.资源文件.预编译头文件和编译链接生成 ...

  5. boost.compressed_pair源码剖析

    意义 当compressed_pair的某一个模板参数为一个空类的时候将对其进行“空基类优化”,这样可以使得compressed_pair占用的空间比std::pair的更小. 参考如下代码: #in ...

  6. iOS 冒泡排序

    //冒泡排序 -(NSArray*)Bubble_Sort:(NSArray*)oldArray { NSMutableArray * newArray = [NSMutableArray array ...

  7. css3画图之大白(●—●)

    把大白送给你~ <!DOCTYPE html> <html> <head> <title>大白</title> <meta http- ...

  8. Spring第十篇—举例实现AOP

    简述AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入封 ...

  9. 分享一个使用APICloud云数据库已上线的商城APP

    本项目盈利模式依赖taobao模块实现淘宝闭环交易,发布销售淘宝联盟产品获取返佣.目前已在应用宝上线安卓版本,先上图. 源码在此: http://community.apicloud.com/bbs/ ...

  10. [BS-06] 设置release发布时NSLog不打印设置

    设置release发布时NSLog不打印设置 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑 ...