`
85977328
  • 浏览: 1899615 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

session中的地址重写

阅读更多
    地址重写,主要是为了防止有些浏览器,为了提高安全性,禁止了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);
	}

}
分享到:
评论
1 楼 wind35 2010-06-29  
能不能具体说明一下原理

相关推荐

    PHP基于memcahe的session方法重写

    这里`session.save_path`参数指定了memcache服务器的地址、端口以及其他连接参数。 2. **自定义session处理类** 由于PHP内建的memcache session handler可能无法满足所有需求,我们可以创建一个自定义的session...

    基于memcahe的session方法重写(PHP)

    PHP session跨服务器跨域解决方案 基于memcahe的session方法重写

    重写session机制,将session写入数据库,建表和注释写的都很清晰,已测试

    重写session机制,默认session是以临时文件形式存储在服务器,将session写入数据库,建表和注释写的都很清晰,已测试

    重写hibernate的session简单增删改查

    "重写hibernate的session简单增删改查"是一个针对初学者的实践教程,旨在帮助理解如何在Hibernate中自定义Session的操作,以便更好地控制数据库交互。 一、Hibernate Session Hibernate的Session是与数据库交互的...

    微信小程序实现Session功能及无法获取session问题的解决方法

    因为小程序原生不支持Cookie,因此也不支持Session。 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来...

    自己实现的spring-session

    使用filter拦截用户的请求,在filter中包装request,在request的包装类requestWrapper中,重写getSession(), 和getSession(boolean create)。自己实现httpSession,在getSession中获取cookie,从cookie中读取...

    session session session szsessdifn

    在Web开发中,Session是一个至关重要的概念,尤其是在ASP.NET框架下。Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了HTTP协议无状态的问题。"szsessdifn"可能是...

    servlet中关于session的理解

    ### 关于Servlet中的Session理解 在Web开发领域中,Servlet技术是Java Web开发的重要组成部分,而Session机制则是处理用户会话的关键技术之一。本文将基于提供的文件内容,深入探讨Servlet中Session的工作原理、...

    session的实现方式

    它与第一种情况没有什么区别,但在 Cookie 禁用时,它会将 SessionID 的信息作为请求地址的一部分传到了服务器端,这就是 URL 重写的意义所在。 URL 重写可以使 Session 生效,即使客户端禁用了 Cookie,这样可以...

    SpringSession 请求与响应重写的实现

    在 SpringSession 中,对于请求重写的实现主要体现在存储方面,也就是 getSession 方法上。在 SessionRepositoryFilter 这个类中,是通过内部类的方式实现了对 HttpServletRequset 和 HttpServletResponse 的扩展。 ...

    NET的csharp的session丢失sessionid不一样

    这涉及到创建一个新的类来实现`System.Web.SessionState.SessionStateStoreProviderBase`接口,并重写其中的一些方法以满足特定的需求。这种方式更为复杂,但在某些场景下可能更为有效。 4. **检查浏览器设置**: ...

    asp.net下session的使用

    这时可以考虑使用URL重写或查询字符串来传递SessionID。 5. **跨应用程序共享Session**: - 如果有多个ASP.NET应用程序需要共享Session,可以通过在Web.config中配置`<machineKey>`元素来实现。 6. **清理Session...

    JSP中session的使用详解

    `Session`的生命周期始于用户首次访问应用中的某个页面,此时服务器为该用户创建一个`Session`对象,并将其唯一标识符(Session ID)通过Cookie或URL重写的方式发送给客户端。只要用户持续与应用交互,且Session ID...

    java中使用session购物车的简单例子

    - 鉴于Session依赖Cookie,禁用Cookie的用户可能无法正常使用基于Session的功能,开发者需要提供替代方案,如URL重写。 - 为了提高性能和扩展性,大型应用往往不直接存储大量数据在Session中,而是用Session作为用户...

    PHP中session全面教程

    1. **URL重写:**通过将Session ID附加到每个URL后面来替代Cookie。 2. **JavaScript技术:**利用JavaScript来检测用户是否允许Cookie,并做出相应处理。 #### 四、高级用法 除了基本的Session使用方法之外,PHP还...

    session实验

    Cookie是常用的手段,但也有无Cookie实现Session的方式,如URL重写或隐藏表单字段。 4. **Session共享**:在多服务器环境下的Web应用,可能需要处理Session共享问题,确保用户在任何服务器上都能继续其会话。这可以...

    jsp中session做的考试系统

    当用户首次访问Web应用时,服务器会为该用户创建一个唯一的Session ID,并将其通过Cookie或URL重写的方式返回给客户端。之后,客户端在每次请求时都会携带这个Session ID,服务器据此识别出是同一用户,从而实现状态...

    jsp和servlet之中的session详细介绍

    当使用URL重写时,session ID会被附加到URL路径后面,使得服务器能够识别请求的来源。 2. 方法二:表单隐藏字段 另一种方式是在HTML表单中添加一个隐藏字段,该字段包含session ID,当用户提交表单时,ID会被一起...

    理解session机制

    URL重写是在URL路径或查询字符串中附加Session ID,而表单隐藏字段则是在HTML表单中添加一个隐藏的输入元素,用于在表单提交时传递Session ID。 4. **URL重写与表单隐藏字段**: URL重写是在URL路径末尾添加“;...

    Session实现用户存储

    在Web开发中,Session是一种非常重要的技术,用于在服务器端保持用户的状态信息。"Session实现用户存储"这个主题主要涉及到用户登录、购物车存储以及页面显示等关键环节。接下来,我们将详细探讨Session的工作原理,...

Global site tag (gtag.js) - Google Analytics