栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【重定向302】Redirect

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【重定向302】Redirect

介绍

        URL 重定向,也称为 URL 转发,是一种当实际资源,如单个页面、表单或者整个 Web 应用被迁移到新的 URL 下的时候,保持(原有)链接可用的技术。HTTP 协议提供了一种特殊形式的响应—— HTTP 重定向(HTTP redirects)来执行此类操作。

        简单理解,重定向是指一个Web资源接收到客户端请求后,这个Web资源通知客户端去访问另外一个Web资源,客服端一共会发送2次Http请求。大概的流程如下


使用

HttpServletResponse可以使用2种方法进行重定向。

方法一:使用sendRedirect(String s)来进行重定向,直接输入重定向的url即可方法二:先设置http响应的状态码,setStatus(int i),设置状态码为302,然后再设置响应头中的location。setHeader(String s, String s1);

        例如,下面的2种方式都是一样的,当访问这个Servlet时重定向到百度界面

response.setStatus(302);
response.setHeader("location","https://www.baidu.com");
response.sendRedirect("https://www.baidu.com");

        上面是重定向到当前Web项目外的资源,如果要重定向到当前Web项目下的资源,那么在重定向的地方直接写入想要重定向的URI就行了。例如我们有一个Servlet的映射是/hello,那么要重定向到这个资源我们就需要写sendRedirect(自己配置的应用上下文+"/hello") ,例如我们Tomcat配置的应用上下文是/servlet,那么我们就需要写成sendRedirect("/servlet/hello");

response.sendRedirect("/servlet/hello");

        通过 ServletContext可以动态的获取到我们配置的应用上下文,于是我们重定向的地址就可以这样写。

response.sendRedirect(getServletContext().getContextPath()+"/hello");

         如果我们以后要重定向到某个Servlet,那么像上面这样写就行了。


 注意事项 

我们使用重定向,一共发送了2次http请求,游览器地址栏会发生变化不像请求转发那行可以共享Request,因为重定向会生成新的HttpServletRequest不能重定向到WEB-INF下的资源,因为Tomcat会进行拦截可以重定向到当前Web项目外面的资源

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号