>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 30144 个阅读者 刷新本主题
 * 贴子主题:  Servlet 网页重定向 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-29 18:16:20     消息  查看  搜索  好友  邮件  复制  引用

  

Servlet  网页重定向

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

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

public void HttpServletResponse.sendRedirect(String location)throws IOException

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

....

String site = "http://www.javathinker.net" ;

response.setStatus(response.SC_MOVED_TEMPORARILY);

response.setHeader("Location", site);

....

范例

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


package net.javathinker.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.javathinker.net");

              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.javathinker.net。







程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-03 21:19:05 重新编辑]
  Java面向对象编程-->多线程(上)
  JavaWeb开发-->Servlet技术详解(Ⅲ)
  JSP与Hibernate开发-->JPA API的高级用法
  Java网络编程-->基于MVC和RMI的分布式应用
  精通Spring-->
  Vue3开发-->计算属性和数据监听
  Cookie的各种属性
  在Java Web应用中获取绝对路径和相对路径
  JSP 动作元素
  JSP 生命周期
  Servlet 点击计数器范例
  Servlet 异常处理
  Tomcat虚拟主机配置以及各种优化
  如何确定线程池大小
  HTTP请求响应过程与HTTPS区别
  Java微信Java SDK方式进行网页授权
  通过URLConnection类访问网上URL资源
  深入解读HTTP Session
  关于GBK,GB2312,UTF-8字符编码的区别
  Tomcat容器管理安全的几种验证方式
  Java Web前端到后台常用框架介绍
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。