1. RequestDispatcher.forward()
请求允许创建自定义属性
设置请求属性: request.setAttribute(属性名, 属性值)
获取请求属性: Object attr = request.getAttribute(属性名)
通常在servlet中使用,不在jsp中使用。
request.getRequestDispatcher("index.jsp").forward(request,response);
2. response.sendRedirect()
重定向后在浏览器地址栏上会出现重定向页面的URL
在servlet中重定向
response.setContentType("text/html; charset=gb2312");
response.sendRedirect("/index.jsp");
jsp页面中可以用response.sendRedirect()直接实现重定位
后面不要写代码
只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。
3.<jsp:forward page="" />
在jsp中可以这样写
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交
请求转发:仅限于当前web应用内,"/“代表当前web应用的根目录
请求重定向:可以定向到任何资源,”/"代表当前web站点的根目录
附录
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);