URL重写
2015-06-12 13:10
239 查看
我们知道session依赖Cookie,那么session为什么依赖Cookie呢?因为服务器需要在每次请求中获取sessionId,然后找到客户端的session对象。那么如果客户端浏览器关闭了Cookie呢?那么session是不是就会不存在了呢?
其实还有一种方法让服务器收到的每个请求中都带有sessioinId,那就是URL重写!在每个页面中的每个链接和表单中都添加名为jSessionId的参数,值为当前sessionid。当用户点击链接或提交表单时也服务器可以通过获取jSessionId这个参数来得到客户端的sessionId,找到sessoin对象。
index.jsp
也可以使用response.encodeURL()对每个请求的URL处理,这个方法会自动追加jsessionid参数,与上面我们手动添加是一样的效果。
使用response.encodeURL()更加“智能”,它会判断客户端浏览器是否禁用了Cookie,如果禁用了,那么这个方法在URL后面追加jsessionid,否则不会追加。
其实还有一种方法让服务器收到的每个请求中都带有sessioinId,那就是URL重写!在每个页面中的每个链接和表单中都添加名为jSessionId的参数,值为当前sessionid。当用户点击链接或提交表单时也服务器可以通过获取jSessionId这个参数来得到客户端的sessionId,找到sessoin对象。
index.jsp
<body> <h1>URL重写</h1> <a href='/day06_5/index.jsp;jsessionid=<%=session.getId() %>' >主页</a> <form action='/day06_5/index.jsp;jsessionid=<%=session.getId() %>' method="post"> <input type="submit" value="提交"/> </form> </body> |
<a href='<%=response.encodeURL("/day06_5/index.jsp") %>' >主页</a> <form action='<%=response.encodeURL("/day06_5/index.jsp") %>' method="post"> <input type="submit" value="提交"/> </form> |
相关文章推荐
- android开发ActionBar的使用
- ubuntu下安装stardict
- 命令行执行命令时报错You don't have write permissions for the /Library/***
- dbca -silent -responsefile 建库由于tmpfs太小报错ORA-27102: out of memory
- 花生壳路由设置
- Java实现图片裁剪缩放
- 白盒测试内容概述
- 第二十七篇 Java中 继 承 的一些另类思想。。。
- android自定义view无法预览
- Fragment 方法
- Hadoop第一讲
- 查看oracle 数据库的DBID
- eclipse for php的XDebug设置方法
- Hadoop第二讲
- POJ-1743
- 华硕笔记本电脑电池保修范围
- spring异常
- Matlab变量名的神奇问题
- RAC修改processes的方法
- MySQL