Servlet实现页面重定向
以下内容引用自http://wiki.jikexueyuan.com/project/servlet/page-redirect.html:
当文档移动到一个新的位置时,通常会使用页面重定向,需要将客户端发送到这个新位置或者也可能是由于负载均衡,或者只是为了简单的随机。
重定向请求到另一个页面的最简单的方式是使用Response对象的sendRedirect()方法。下面是该方法的特征:
public void HttpServletResponse.sendRedirect(String location) throws IOException
该方法将响应和状态码及新的页面位置发送回浏览器。也可以通过一起使用setStatus()和setHeader()方法来达到同样的效果:
.... String site = "http://www.newpage.com" ; response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); ....
实例:
这个例子显示了Servlet如何将页面重定向到另一个位置:
import java.io.*; import java.sql.Date; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class PageRedirect extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // New location to be redirected String site = new String("http://www.easonjim.com"); response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", site); } }
现在来编译Servlet并在web.xml文件中创建以下条目:
.... <servlet> <servlet-name>PageRedirect</servlet-name> <servlet-class>PageRedirect</servlet-class> </servlet> <servlet-mapping> <servlet-name>PageRedirect</servlet-name> <url-pattern>/PageRedirect</url-pattern> </servlet-mapping> ....
现在使用URL
http://localhost:8080/PageRedirect
来调用这个Servlet。这将跳转到给定的URL http://www.easonjim.com
中。
测试工程:https://github.com/easonjim/5_java_example/tree/master/servletbasics/test13