如果cookie被禁用了,而且我们又无法控制让用户启用,那么我们可以用
HttpServletResponse response = ... // 这个默认在JSP里面是有的,无需获得
response.encodeURL("http://www.laozizhu.com");
response.encodeRedirectURL("http://www.laozizhu.com");
这样,你就会发现你的url后面多了一个小尾巴
/grid.jsp;JSESSIONID=fjsdklafjdsfsldkafjlsf?type=1
其中的分号和JSESSIONID就是自动加上去的东西了。
2. 、forward 和redirect的区别
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
3. JSP中动态INCLUDE与静态INCLUDE的区别?
一:执行时间上:
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.
二:引入内容的不同:
<%@ include file=”relativeURI”%>
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本.
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀 进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释