- 浏览: 48633 次
- 性别:
- 来自: 广州
文章分类
最新评论
如果浏览器不支持 cookies,或将浏览器设置为不接受 cookies,我们能通过 url 重写来实现会话管理。
实质上 url 重写是通过向 url 连接添加参数,并把 session id 作为值包含在连接中。然而,为使这生效,你需要为你的 servlet 响应部分的每个连接添加 session id 。 把 session id 加到一个连接能使用一对方法来简化:response.encodeurl()
使 url 包含 session id,如果你需要使用重定向,能使用 response.encoderedirecturl () 来对 url 进行编码。
encodeurl () 及 encoderedirectedurl () 方法首先判断 cookies 是否被浏览器 支持;如果支持,则参数 url 被原样返回,session id 将通过 cookies 来维持。
下 面有个例子,两个 jsp 文件:hello1.jsp 和 hello2.jsp,及他们之间的影响 。我们在 hello1.jsp 中简单的创建一个会话,并在 session 中存储一个对象实例。接着用户能点击页面的连接到达 hello2.jsp。在 hello2.jsp 中,我们从 session 中获取原先放置的对象并显示他的内容。注意,我们在 hello1.jsp 中调用了 encodeurl() 方法来获得 hello2.jsp 的链接,使得在浏览器停用 cookies 的情况下,session id 自动添加到 url,hello2.jsp 仍能得到 session 对象。
首先在启用 cookies 的情况下运行。然后关闭对 cookie 的支持,重启浏览器,再运行一次。每次你都能看到会话管理在起作用,并能在页之间传递信息。
注意,如果你想让这个例子能在关闭了 cookies 的浏览器中工作,你的 jsp 引擎必须支持 url 重写。
hello1.jsp
<%@ page session="true" %>
<%
integer num = new integer(100);
session.putvalue("num",num);
string url =response.encodeurl("hello2.jsp");
%>
<a href=<%=url%>>hello2.jsp</a>
hello2.jsp
<%@ page session="true" %>
<%
integer i= (integer)session.getvalue("num");
out.println("num value in session is "+i.intvalue());
%>
发表评论
-
java web项目配置tomcat连接池
2011-09-20 23:33 1784本文包含两部分内容。第一部分是在eclipse下配置项目 ... -
javaweb中的请求--响应流程(get方式提交请求)
2011-09-11 22:30 1077javaweb中的请求--响应流程(get方式提交请求) -
JSP入门需要知道的五个方面
2011-09-10 21:16 821本文是一个JSP入门的简单的总结性文章,从Servlet知 ... -
Form表单提交数据编码方式和tomcat接受数据解码方式的思考
2011-09-10 21:11 548form有2中方法把数据提 ... -
execute、executeQuery和executeUpdate之间的区别
2011-09-10 21:09 701JDBCTM中Statement接口提 ... -
使用eclipse开发J2EE应用
2011-09-10 21:08 797使用eclipse开发J2EE应用 -
web.xml文件在web项目中的作用及基本配置
2011-09-10 21:03 1909web 工程中的 web.xml 文件有什 ... -
JSP入门之避免Form表单重复提交的几种方案
2011-09-10 20:59 1113对于JSP 入门的初级的学习者表单的提交是一个非常困扰 ... -
java中文乱码解决方法
2011-09-10 20:56 7771 .以POST 方法提交 ... -
jsp实现网页计数器(防刷新计数和防刷新单用户计数)
2011-09-10 20:51 1329jsp实现网页计数器(防刷新计数和防刷新单用户计数) -
jsp分页实现
2011-09-10 20:47 618jsp分页实现 -
多图详解教程:Eclipse3.6连接Tomcat7
2011-09-10 20:44 723多图详解教程:Eclipse3.6连接Tomcat7(见附件) ... -
jsp环境下session的创建
2011-09-08 20:54 8221)-不恰当的request.getSessi ... -
跳出页面的Frame框架
2011-09-08 12:12 645如何跳出页面的Frame 框架 很多网页都是框架结构的 ... -
使用eclipse开发J2EE应用
2011-09-08 12:09 0<!-- [if !mso]> <styl ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2011-09-08 12:05 676一、 1、启动一个WEB项 ... -
UrlRewriter url重写
2011-09-08 12:04 814如何增强你网站中地址的可读性和让搜索引擎快速的收录到你的 ... -
TOMCAT数据库连接池的配置方法总结
2011-09-08 12:02 857以MySQL+TOMCAT 为例 1. ... -
Tomcat解决中文转码问题
2011-09-08 11:51 1885Tomcat解决中文转码问题 ... -
Tomcat与IIS整合手记
2011-09-08 11:49 1002安装配置 IIS6 和 Tomcat6 ...
相关推荐
为了更好地理解URL重写,可以通过一个简单的例子来说明:假设原来的URL为`UserProfile.aspx?ID=1`,经过重写后变为`UserProfile/1.aspx`。这样的改动不仅使得URL更加简洁易读,同时也有利于网站的管理和用户的友好...
ASP 和 ASP.NET 1.1 是两种不同的微软技术,用于构建动态网页应用程序。ASP(Active Server Pages)是早期的服务器端脚本技术,...在实践中,可以借助开源的URL重写库,如Microsoft的UrlRewritingNet,来简化开发工作。
在实际开发中,我们还需要考虑到URL重写可能带来的问题,如URL重定向、会话状态管理、链接生成等。在配置URL重写规则时,应确保所有内部链接都能正确解析,同时保证已有的外部链接不会失效。 总结,ASP.NET URL重写...
2. **掌握URL重写的基本思想及实现方法:** URL重写是一种通过在URL中添加额外参数来实现会话跟踪的技术。当用户禁用Cookie时,服务器可以通过URL重写的方式来保持会话的状态。 #### 二、实验内容概述 本实验的...
这里我们将探讨四种常见的实现购物车功能的技术方法:隐藏表单(hidden)、URL重写、Cookie以及会话(Session)。 1. 隐藏表单(Hidden) 隐藏表单字段是HTML表单中的一种元素,它们对用户不可见,但可以在提交表单...
然而,URL重写可能会导致POSTBACK时的问题,因为服务器可能无法识别原始的URL,这通常与会话状态管理、回退按钮和书签功能有关。 IIRF_URLRewrite提供的解决方案是通过配置规则来确保POSTBACK请求能够正确地路由到...
- `UrlRewriter.dll`是该组件的核心库,它实现了URL重写功能,可以被集成到IIS服务器中。这个库提供了丰富的API,允许开发者自定义重写规则,以满足特定的业务需求。 - 无论是X86还是X64系统,这个组件都能兼容,...
以下是一个简单的JSP应用示例,展示了如何在关闭cookies的情况下使用URL重写来管理会话: 1. `hello1.jsp`:在这个页面中,我们首先创建一个新的会话,并在其中存储一个对象(例如,一个整数)。然后,我们使用`...
2. **URL重写**:这种方式不需要使用Cookie,而是通过在每个链接后面附加会话标识符来实现状态跟踪。 - **优点**:适用于不支持Cookie的浏览器环境。 - **缺点**:可能会导致URL变得冗长复杂;难以管理和维护。 3...
在ASP.NET中,URL重写通常用于将复杂的、参数化的URL转换为简洁的、有意义的URL,这有助于提升用户体验和搜索引擎排名。 URLRewriter的核心功能包括: 1. **规则定义**:URLRewriter通过XML配置文件或代码中定义的...
为了克服这个问题,开发者采取了几种会话跟踪技术,包括URL重写、隐藏域、Cookies以及HttpSession。下面我们将详细探讨这些技术。 首先,URL重写是一种简单但有限制的方法。它通过在URL中添加key-value对来存储信息...
- **会话跟踪**:除了通过Cookie进行会话跟踪外,还可以通过URL重写的方式来传递会话标识。这种方式主要用于解决那些禁用了Cookie的浏览器问题。 #### 三、存在的问题及改进方案 ##### 3.1 存在的问题 - **安全性...
本文重点介绍了如何在Global.asax的Application_BeginRequest事件中编写代码以实现URL重写。 在Web应用程序中,URL重写是一项常见的技术,它允许将易于记忆和搜索引擎优化(SEO)友好的URL映射到实际的物理资源上。...
3. **隐藏表单字段**:类似于URL重写,但通过在HTML表单中添加一个隐藏的输入字段来携带会话ID。 三、使用JSP内置对象`HttpSession` 在JSP中,我们可以直接使用内置对象`HttpSession`来操作会话。以下是一些常用...
Java通过HttpSession接口来实现会话管理,允许开发者存储和检索特定用户的数据。创建会话通常通过HttpServletRequest对象的getSession()方法完成,如果会话不存在,该方法会创建一个新的会话。 Java多线程是并发...
这意味着ASP.NET不会尝试通过URL重写的方式传递会话ID,而是默认通过Cookie来实现。 #### 问题原因 - **Cookie禁用**:如果客户端浏览器禁用了Cookie功能,那么即使在服务器端配置了使用Cookie来维护会话状态,ASP...
5. **会话跟踪**:除了使用cookie,还可以通过URL重写方式跟踪会话,即在URL后面附加会话ID。这种方法适用于禁用cookie的浏览器。 6. **会话范围内的通信**:在大型应用中,有时需要在多个请求间共享数据,但又不...
在本教程中,我们将深入探讨URL重写的核心概念、使用场景以及如何借助`urlrewrite`工具来实现这一功能。 首先,URL重写的核心原理是利用服务器的内部重定向机制,将用户请求的可见URL转换为服务器内部处理的实际URL...
### Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解 #### 一、前言 Nginx是一款广泛使用的高性能HTTP和反向代理Web服务器,也是邮件代理服务器,并具有IMAP/POP3/SMTP服务。Nginx以其稳定性、丰富的...
2. **URL重写**:将会话ID附加到URL的末尾,以便服务器可以根据URL中的ID识别会话。这可以是直接附加ID,或者作为查询参数。 3. **Cookie**:服务器可以向客户端发送一个Cookie,其中包含会话ID。在后续请求中,...