URL重写

来源:互联网 发布:软件腰带 编辑:程序博客网 时间:2024/05/01 21:59
 

我们知道session依赖Cookie,那么session为什么依赖Cookie呢?因为服务器需要在每次请求中获取sessionId,然后找到客户端的session对象。那么如果客户端浏览器关闭了Cookie呢?那么session是不是就会不存在了呢?

其实还有一种方法让服务器收到的每个请求中都带有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>

 

也可以使用response.encodeURL()对每个请求的URL处理,这个方法会自动追加jsessionid参数,与上面我们手动添加是一样的效果。

<a href='<%=response.encodeURL("/day06_5/index.jsp"%>' >主页</a>

 

<form action='<%=response.encodeURL("/day06_5/index.jsp"%>' method="post">

<input type="submit" value="提交"/>

</form>

 

  使用response.encodeURL()更加“智能”,它会判断客户端浏览器是否禁用了Cookie,如果禁用了,那么这个方法在URL后面追加jsessionid,否则不会追加。

0 0