最近,当我在做一个项目时,我遇到了一个问题。response.sendRedirect()明明加了,系统执行了,就是不跳。具体原因如下。有兴趣的可以参考一下。希望对你有帮助。
最近,当我在做一个项目时,我遇到了一个问题。明明添加了response.sendRedirect(),系统执行了,就是不跳;最后我在网上找到原因如下:
首先我们要了解使用response.sendRedirect转弯的原理。它实际上是给浏览器发送一个特殊的头,然后浏览器拐一个弯,就到了指定的页面。因此,使用sendRedirect时,可以在浏览器的地址栏上看到地址的变化。使用JSP:forward page=“”/则不同。直接在服务器完成,浏览器不知道也不处理,从浏览器地址不变就可以看出来。
所以使用response.sendRedirect时就需要注意以下两点:
1.使用response.sendRedirect时,前面不能有HTML输出。
这不是绝对的。没有HTML输出实际上意味着没有HTML可以发送到浏览器。其实现在所有的服务器都有缓存机制,一般在8K(我指的是JSP服务器),也就是说除非你关闭缓存,或者你使用out.flush()强制刷新,那么在使用sendRedirect之前是允许有少量HTML输出的。如果报错说“已提交部分信息”(原文已忘记),那么就要注意看前面是否有过多的HTML输出。
2.在response.sendRedirect之后,应该跟一个return语句;
我们已经知道response.sendRedirect是通过浏览器重定向的,所以只有在页面处理完成后才会采取实际的操作。既然要转了,那输出还有什么意义?而且转向可能会因为后面的输出而失灵。
% @ include file='/page/check log in . JSP ' %这个放在要验证的页面的第一句话。
checkLogin.jsp的内容是通过查看登录用户在会话中的内容来判断是否登录。如果没有,那么跳转到登录页面:复制代码如下:% @ page language=' Java ' content type=' text/html;charset=UTF-8 ' page encoding=' UTF-8 ' % % if(session . get attribute(' userinfo ')==null){
response . send redirect(URL);
返回;} %
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。