地址重写,主要是为了防止有些浏览器,为了提高安全性,禁止了Cookie的功能,而session的ID恰好是保存在web容器中和客户端的内存当中的。所以一旦禁用了cookie,session也会无法使用.所以url重写技术就诞生了.像以前的新浪邮箱就没有采用url地址重写,导致了禁用cookie的时候,是无法进行操作的.
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionTest extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
HttpSession session =req.getSession(true);// true代表先从客户端获取cookie
out.flush();
out.close();
/*
* session默认,也是要把sessionID写到客户端的内存当中(内存cookie)
* 重写地址,防止禁用cookie的时候,仍然可以使用session
*/
resp.encodeURL(req.getRequestURL().toString());
//地址编码,在url中,传递中文
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode(String s ,request.getCharacterEncoding());
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
转载:
http://phl.iteye.com/blog/699574
分享到:
相关推荐
这里`session.save_path`参数指定了memcache服务器的地址、端口以及其他连接参数。 2. **自定义session处理类** 由于PHP内建的memcache session handler可能无法满足所有需求,我们可以创建一个自定义的session...
PHP session跨服务器跨域解决方案 基于memcahe的session方法重写
重写session机制,默认session是以临时文件形式存储在服务器,将session写入数据库,建表和注释写的都很清晰,已测试
"重写hibernate的session简单增删改查"是一个针对初学者的实践教程,旨在帮助理解如何在Hibernate中自定义Session的操作,以便更好地控制数据库交互。 一、Hibernate Session Hibernate的Session是与数据库交互的...
因为小程序原生不支持Cookie,因此也不支持Session。 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来...
使用filter拦截用户的请求,在filter中包装request,在request的包装类requestWrapper中,重写getSession(), 和getSession(boolean create)。自己实现httpSession,在getSession中获取cookie,从cookie中读取...
在Web开发中,Session是一个至关重要的概念,尤其是在ASP.NET框架下。Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了HTTP协议无状态的问题。"szsessdifn"可能是...
### 关于Servlet中的Session理解 在Web开发领域中,Servlet技术是Java Web开发的重要组成部分,而Session机制则是处理用户会话的关键技术之一。本文将基于提供的文件内容,深入探讨Servlet中Session的工作原理、...
它与第一种情况没有什么区别,但在 Cookie 禁用时,它会将 SessionID 的信息作为请求地址的一部分传到了服务器端,这就是 URL 重写的意义所在。 URL 重写可以使 Session 生效,即使客户端禁用了 Cookie,这样可以...
在 SpringSession 中,对于请求重写的实现主要体现在存储方面,也就是 getSession 方法上。在 SessionRepositoryFilter 这个类中,是通过内部类的方式实现了对 HttpServletRequset 和 HttpServletResponse 的扩展。 ...
这涉及到创建一个新的类来实现`System.Web.SessionState.SessionStateStoreProviderBase`接口,并重写其中的一些方法以满足特定的需求。这种方式更为复杂,但在某些场景下可能更为有效。 4. **检查浏览器设置**: ...
这时可以考虑使用URL重写或查询字符串来传递SessionID。 5. **跨应用程序共享Session**: - 如果有多个ASP.NET应用程序需要共享Session,可以通过在Web.config中配置`<machineKey>`元素来实现。 6. **清理Session...
`Session`的生命周期始于用户首次访问应用中的某个页面,此时服务器为该用户创建一个`Session`对象,并将其唯一标识符(Session ID)通过Cookie或URL重写的方式发送给客户端。只要用户持续与应用交互,且Session ID...
- 鉴于Session依赖Cookie,禁用Cookie的用户可能无法正常使用基于Session的功能,开发者需要提供替代方案,如URL重写。 - 为了提高性能和扩展性,大型应用往往不直接存储大量数据在Session中,而是用Session作为用户...
1. **URL重写:**通过将Session ID附加到每个URL后面来替代Cookie。 2. **JavaScript技术:**利用JavaScript来检测用户是否允许Cookie,并做出相应处理。 #### 四、高级用法 除了基本的Session使用方法之外,PHP还...
Cookie是常用的手段,但也有无Cookie实现Session的方式,如URL重写或隐藏表单字段。 4. **Session共享**:在多服务器环境下的Web应用,可能需要处理Session共享问题,确保用户在任何服务器上都能继续其会话。这可以...
当用户首次访问Web应用时,服务器会为该用户创建一个唯一的Session ID,并将其通过Cookie或URL重写的方式返回给客户端。之后,客户端在每次请求时都会携带这个Session ID,服务器据此识别出是同一用户,从而实现状态...
当使用URL重写时,session ID会被附加到URL路径后面,使得服务器能够识别请求的来源。 2. 方法二:表单隐藏字段 另一种方式是在HTML表单中添加一个隐藏字段,该字段包含session ID,当用户提交表单时,ID会被一起...
URL重写是在URL路径或查询字符串中附加Session ID,而表单隐藏字段则是在HTML表单中添加一个隐藏的输入元素,用于在表单提交时传递Session ID。 4. **URL重写与表单隐藏字段**: URL重写是在URL路径末尾添加“;...
在Web开发中,Session是一种非常重要的技术,用于在服务器端保持用户的状态信息。"Session实现用户存储"这个主题主要涉及到用户登录、购物车存储以及页面显示等关键环节。接下来,我们将详细探讨Session的工作原理,...