请求重定向

Code
reponse.sendRedirct("test.htm")
页面自动刷新

Code
response.setIntHeader("Refresh", 5);
response.getWriter().print("" + i++);
页面定时跳转

Code
response.setHeader("Refresh", "5,URL=test.htm");
RequestDispatcher接口
有两方法用来对页面的动态转发或者包含
1、forward()
2、include()

Code
//方法一:
ServletConfig config = getServletConfig();
ServletContext context = config.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);
//方法二:
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
//方法三:
RequestDispatcher dispathcer = request.getRequestDispatcher("/index.jsp");
dispathcer.forward(request, response);
//include的使用方法:
getServletConfig().getServletContext().getRequestDispatcher("/MyJsp.jsp").include(request, response);
RequestDispatcher接口中方法的跳转与response.setRedirtect()的区别
response.setRedirtect()在地址栏中会有明显的变化
在RequestDispatcher中:
1、控制转移完全是在服务器上,不涉及到任何网络数据流
2、用户不会看到目的页面上的地址,而且,还可以将页面放到WEB-INF中,防止用户不经建立数据的Servlet,直接访问这些页面
sendRedirect行为:
1、控制的转移通过向客户发送302状态代码和Location响应包头来完成。转移需要另外的网络往返。
2、用户能够看到目的页面的地址,可以记录下来,独立地访问。
3、如果把页面放到WEB-INF中,这个方法就无法得到页面了。