URL重写 浏览器禁用cookie后使用session的方法

本文介绍在禁用Cookie的情况下如何通过URL重写技术使Servlet能够共享数据。重点介绍了两种方法:response.encodeRedirectURL和response.encodeURL,并详细解释了encodeURL方法的工作原理及其在购物场景中的具体应用。
禁用Cookie后Servlet不能共享数据

◆  解决方案:URL重写

■response.encodeRedirectURL(java.lang.Stringurl)

■用于对sendRedirect方法后的url地址进行重写

■response.encodeURL(java.lang.String url)

■用于对表单action和超链接的url地址进行重写

 

encodeURL (String url)方法的实现机制为:

    ● 先判断当前的 Web 组件是否启用 Session,如果没有启用Session,直接返回参数 url。

● 再判断客户端浏览器是否支持Cookie,如果支持Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url

//购物大厅

request.getSession();//先尝试获取session 

for(Book book:mydb){

          

    Stringurl=response.encodeURL("/myCart/BuyBookCl?id="+book.getId());

out.println(book.getName()+"<ahref='"+url+"'>点击购买</a><br/>");

}

 

//购物车这里我们也需要url地址重写

String url=response.encodeURL("/myCart/ShowBook");

out.println("<a href='"+url+"'>返回购物大厅<a/>");

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值