您现在的位置:首页 >> 前端 >> 内容

状态管理

时间:2017/1/7 9:24:00 点击:

  核心提示:状态管理的方案1.hidden表单隐藏2.Cookie3.Session4.Url重写什么叫做会话。会话:打开浏览器,通过超链接或者按钮访问服务器,关闭浏览器。称为一次会话。Web应用程序状态管理ht...

状态管理的方案

1.hidden表单隐藏

2.Cookie

3.Session

4.Url重写

什么叫做会话。

会话:打开浏览器,通过超链接或者按钮访问服务器,关闭浏览器。称为一次会话。

Web应用程序状态管理

http协议使用的是无状态的连接。每个请求对容器来说都是新的客户。

隐藏字段

<input type=“hidden” name=”session” value=”..”>

1.对用户在网站上的访问进行回话跟踪

2.为服务端程序提供预定义输入

3.存储动态产生的页面上下文信息。

Hidden 可以区分多个表单提交,可以保存当前用户操作表格的状态,防止表单重复提交,保存用户的登录状态。

会话解决的问题

用户访问服务器,想要存储当前的数据。

Cookie:

客户端技术 ,程序把每个用户的数据通过键值对的方式保存到cookie。下次请求的时候就将cookie放到请求头里面,服务器就能够根据cookie里面的内容来判断当前用户的状态。

Getcookies  获得所有的cookie返回一个cookie数组

创建一个cookie     ck=new cookie

Resp.addcookie(ck);添加到resp中

保存对话

 Ck.setMaxage(2000);设置最大寿命。 秒为单位。

设置过期时间会将cookie保存到硬盘。

销毁cookie 

Setmaxage(0);

Session  :服务器端的技术。

我们可以为每一个浏览器 创建一个独享的session对象

Seesion 流程

客户端请求服务器 -->创建一个seesion,将sessionid 保存到cookie里面

再将cookie发生回客户端,客户端在再次请求时,就将cookie发送给服务器

,服务器取出seesionid去匹配所有的session,返回匹配到的session。

Req.getsession    创建一个session,返回httpsession对象。  

  计算机底层如何用cookie 与 session进行匹配:

  获取cookie里面的id和session的id 进行匹配,匹配成功返回当前session对象,匹配失败,创建一个session。

Session.getid();  获取session对象id

Session.isnew();    可以判断session是新创建的还是已经存在的session。

Seesion.setattribute(“key”,”value”)   设置seesion

Seesion.getattribute(“”)

Req.getsession(false);  自动匹配seeionid,配成功返回session,匹配失败返回null;  

SetMaxInactiveInterval(10);设置session销毁时间   最长不活动时间

Invalidate()       立即销毁。

在配置文件中销毁--

<session>

<Session-timeout>分钟数</session-timeout>  最长不活动时间 

</session>

设置cookie保存sessionid 

Cookie ck= new cookie(“jsessionid”,req.Getsession().getid())

Ck.setmaxage()//设置最大保存时间

Resp。Add(ck)//添加到resp中

Session和上下文的区别

每个用户(浏览器)有一个session, Session是所有servlet都共享,上下文对象是所有用户都共享。

Url  重写

获取工程名字:  

 String  path= req.getContextPath()+req.getServletPath();  得到工程名 和 服务器地址  

Sting newpath=  Resp .encoderUrl(path)   调用容器的方法 对path进行重新编码 ,容器自动完成。(页面跳转时)

String newurl Resp.encodeRedirect(path)    重定向是使用的url重写

cookie和url重写都工作的时候,cookie优先,为了防止用户屏蔽cookie可以将两个技术用在一起。

Tags:状态 态管 管理   
作者:网络 来源:arthas0078