专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 移动开发

wap开发session治理

发布时间:2010-05-30 03:31:55 文章来源:www.iduyao.cn 采编人员:星星草
wap开发session管理。
手机端的cookie,session和URL重写
本文的目的是搞清楚Session, Cookie, Url重写这些概念, 然后在这个基础上阐述如何利用

Url重写在Wap门户的开发中维护Session.



什么是Session, 什么是Cookie?

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

Cookie是客户端的存储空间,由浏览器来维持。



什么是Url重写?

服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。

可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。

实质上 URL 重写是通过向 URL 连接添加参数,并把 session ID 作为值包含在连接中。然而,为使这生效,你需要为你的 servlet 响应部分的每个连接添加 session ID.





知道了Session, Cookie, Url的概念,那么下面的这个问题就不难回答了:



Wap中如何进行Session管理?

Wap与PC不同之处在与Wap1.x不支持Session与Cookie,Wap2.0虽然支持但是只有协议支持还是不行,还要看手机终端支不支持?所以我们的解决方法就是完全不依赖Wap协议,完全不依赖手机终端,使用Url重写进行Session的维护,这个方法只与服务器端有关.



利用Url进行Session重写如何实现?

JSP实现

把 session ID 加到一个连接可以使用一对方法来简化:response.encodeURL() 使 URL

包含 session ID,如果你需要使用重定向,可以使用 response.encodeRedirectURL ()

来对 URL 进行编码。

encodeURL () 及 encodeRedirectedURL () 方法首先判断 cookies 是否被浏览器支持;

如果支持,则参数 URL 被原样返回,session ID 将通过 cookies 来维持。

代码示例:

不使用Url重写:

<a href=http://wwww.myserver.com/servelet/user;userName=awaysrain>Link</a>

使用Url重写:

通过HttpServletResponse接口中的encodeURL()方法编码.

String myURL = response.encodeURL(http://wwww.myserver.com/servelet/user);

<a href= <%=myURL%> _fcksavedurl=" <%=myURL%>" _fcksavedurl=" <%=myURL%>" _fcksavedurl=" <%=myURL%>" >


JSTL实现

<c:url>可以为会话管理重写 URL

<a href="<c:url value='/content/sitemap.jsp'/>">View sitemap</a>



Struts实现:

struts配置文件中:

设置属性redirect, contextRelative

<forward name="listArticlesForBlog"

path="/template/listArticlesForBlog.jsp"

redirect="true"

contextRelative="true"/>


最后一个比较搞的问题:

那么在浏览器允许cookie的情况下,不要求浏览器关闭cookie的情况下使用

url重写如何实现?

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

Context支持cookies参数。 设置cookies="false",强制只从url解析sessionid。

cookies

Set to true if you want cookies to be used for session identifierContext

communication if supported by the client (this is the default). Set to

false if you want to disable the use of cookies for session identifier

communication, and rely only on URL rewriting by the application.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: