Servlet 教程
1. Servlet 教程 2. Servlet 简介 3. Servlet 环境设置 4. Servlet 生命周期 5. Servlet 实例 6. Servlet 表单数据 7. Servlet 客户端 HTTP 请求 8. Servlet 服务器 HTTP 响应 9. Servlet HTTP 状态码 10. Servlet 编写过滤器 11. Servlet 异常处理 12. Servlet Cookie 处理 13. Servlet Session 跟踪 14. Servlet 数据库访问 15. Servlet 文件上传 16. Servlet 处理日期 17. Servlet 网页重定向 18. Servlet 点击计数器 19. Servlet 自动刷新页面 20. Servlet 发送电子邮件 21. Servlet 包 22. Servlet 调试 23. Servlet 国际化 24. Servlet 有用的资源

Servlet 网页重定向

Servlet 网页重定向

当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向。当然,也可能是为了负载均衡,或者只是为了简单的随机,这些情况都有可能用到网页重定向。

重定向请求到另一个网页的最简单的方式是使用 response 对象的 sendRedirect() 方法。下面是该方法的定义:


public void HttpServletResponse.sendRedirect(String location)

throws IOException 

该方法把响应连同状态码和新的网页位置发送回浏览器。您也可以通过把 setStatus() 和 setHeader() 方法一起使用来达到同样的效果:


....

String site = "http://www.55mianshi.com" ;

response.setStatus(response.SC_MOVED_TEMPORARILY);

response.setHeader("Location", site); 

....

实例

本实例显示了 Servlet 如何进行页面重定向到另一个位置:


package com..test;



import java.io.IOException;





import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



/**

 * Servlet implementation class PageRedirect

 */

@WebServlet("/PageRedirect")

public class PageRedirect extends HttpServlet{

    

  public void doGet(HttpServletRequest request,

                    HttpServletResponse response)

            throws ServletException, IOException

  {

      // 设置响应内容类型

      response.setContentType("text/html;charset=UTF-8");



      // 要重定向的新位置

      String site = new String("http://www.55mianshi.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>/TomcatTest/PageRedirect</url-pattern>

 </servlet-mapping>

....

现在通过访问 URL http://localhost:8080/PageRedirect 来调用这个 Servlet。这将把您转到给定的 URL http://www.55mianshi.com。