0
点赞
收藏
分享

微信扫一扫

JSP重定向技巧

JamFF 2022-12-07 阅读 271


JSP页面的重定向主要可用以下三种方式:



1、


response.sendRedirect("http://www.linfenliang.cn.vc");




2、


修改HTTP header 的location 属性




<%


response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 


String newLocn = basePath+"KE/index.jsp"; 


response.setHeader("Location",newLocn); 


%>




3、


使用forward


<jsp:forward page="/KE/index.jsp"/>


此种方式在重定向网页编辑器(kindeditor)时,编辑器加载不了




4、


JSP中实现在某页面停留若干秒后,自动重定向到另一页面
在html文件中,下面的代码:
<meta http-equiv="refresh" content="300; url=target.jsp">
它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。
由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。
关键代码:
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);




重定向原理:




forward:




服务器端重定向,即:服务器在向客户端发送数据之前,先将数据输出到缓冲区,然后缓冲区中数据发送给client段(对来自client的request请求处理完成或者缓冲区满或者程序调用out.flush()或调用response.flushbuffer(),服务器会向客户端发送数据),此时(缓冲区数据发送到客户端之前),原来数据不发送,执行重定向,此种情况,服务器发送到客户端的数据将被清除,但是如果在jsp:forward page="/KE/index.jsp"/>之前有好多输出,进而导致缓冲区已满,此时将自动输出到客户端,重定向不起作用。




sendRedirect:




客户端重定向,通过修改HTTP协议的HEADER部分,对浏览器下达重定向命令,让浏览器在对location中指定的URL提出请求,是浏览器显示重定向的网页内容,该方法可接受绝对或相对URL地址,web容器将此header发送到客户端之前会转换成绝对的URL。






总结:forward重定向只能为同一个web应用程序的资源,浏览器URL地址不变





forward重定向将原始的HTTP请求对象从一个servlet实例传递到另一个实例,form参数也跟着传递,客户端可获取HTTP请求的参数


sendRedirect两者不是同一个application,只能通过链接传递参数




举报

相关推荐

0 条评论