- 外文名
- Redirect
- 方 式
- 301 redirect、302 redirect
- 做 法
- 将各种网络请求转到其它位置
- 其他定向
- Linux重定向
- 中文名
- 重定向
- 例 如
- 网页重定向、域名的重定向
- 需要的情况
- 网站调整,
-
重定向
2019-03-04 18:06:41重定向- 输出重定向
>
,追加输出>>
- 输入重定向
<
,内联输入重定向<<
且指定一个文本划分输入数据的开始和结尾
例如:
wc << EOF test string1 test string2 EOF
- 重定向错误和正确数据
2>
是将错误输出重定向到test.txt文件中
1>
是将正确输出重定向到test.sh文件中
ls -al text badtext 2> test.txt 1> test.sh
- 将错误和正确数据重定向到同一文件
ls -al text badtext &> test.txt
- 输出重定向
-
Linux 标准输出重定向
2020-12-18 15:05:28Linux 标准输出重定向一、引例
用远程服务器登陆工具(SecureCRT、Putty 等等)登陆 Linux 服务器的时候,过一段时间可能会自动断开连接,这时候需要重新登陆。原本进程去了后台,前台信息就没有了 。为了解决这个问题,需要将标准输出重定向到文件中。
二、标准输入输出
- 在 Linux 下几乎一切都是文件,标准输入、输出也不例外,被称作文件描述符 (File Descriptor),简称 fd。所以在有些网络库底层源码中我们会看到 fd 这个变量命名。
名称 宏 代码 标准输入 stdin 0 标准输出 stdout 1 标准错误输出 stderr 2 三、2>&1 重定向
2>&1
的意思就是将 标准错误 重定向到 标准输出。
2 表示 标准错误;
1 表示 标准输出;
>& 是一个整体,代表 重定向;四、日志重定向步骤
- 1)启动服务器的 shell 脚本叫 run_server.sh;
- 2)再写一个shell脚本作为代理的启动脚本 run.sh,实现如下:
---[run.sh]--- sh run_server.sh > watch.log 2>&1
表示将 标准输出 和 标准错误 都重定向到 watch.log 文件中;调用 ./run.sh,就可以发现输出信息都没有了。
- 3)现在的输出都在watch.log 文件中,直接用如下 shell 就可以试试看到信息显示了。
tail -f watch.log
-
页面跳转的两种方式(转发和重定向)区别及应用场景分析
2018-04-13 07:59:11转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法...转发和重定向区别详解
作为一名java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。
1、request.getRequestDispatcher().forward()方法,只能将请求转发给同一个WEB应用中的组件;而response.sendRedirect() 方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
如果传递给response.sendRedirect()方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建request.getRequestDispatcher()对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。
2、重定向访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
3、HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求,这个过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器”。于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信后就把钱汇给了“浏览器”。
由此可见,重定向的时候,“浏览器”一共发出了两封信和收到了两次回复,“浏览器”也知道他借到的钱出自李四之手。
request.getRequestDispatcher().forward()方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“浏览器”的人写信找张三借钱,张三没有钱,于是张三找李四借了一些钱,甚至还可以加上自己的一些钱,然后再将这些钱汇给了“浏览器”。
由此可见,转发的时候,“浏览器”只发 出了一封信和收到了一次回复,他只知道从张三那里借到了钱,并不知道有一部分钱出自李四之手。
4、request.getRequestDispatcher().forward()方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;
而response.sendRedirect()方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。对于同一个WEB应用程序的内部资源之间的跳转,特别是跳转之前要对请求进行一些前期预处理,并要使用HttpServletRequest.setAttribute方法传递预处理结果,那就应该使用request.getRequestDispatcher().forward()方法。不同WEB应用程序之间的重定向,特别是要重定向到另外一个WEB站点上的资源的情况,都应该使用response.sendRedirect()方法。
5、无论是request.getRequestDispatcher().forward()方法,还是response.sendRedirect()方法,在调用它们之前,都不能有内容已经被实际输出到了客户端。如果缓冲区中已经有了一些内容,这些内容将被从缓冲区中。
以上五点的论述来源于:点击查看原文论述
转发和重定向的图解
两种跳转获得对象的方式
//获得转发对象getRequestDispatcher() HttpServletRequest(httpServletRequest).getRequestDispatcher ServletContext.getRequestDispatcher(); //获得重定向对象sendRedirect() HttpServletResponse(httpServletResponse).sendRedirect();
转发和跳转的小结
1、转发使用的是getRequestDispatcher()方法;重定向使用的是sendRedirect();
2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
3、转发是服务器行为,重定向是客户端行为;
4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)。
转发和重定向的选择
1、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
2、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。
转发和重定向的应用场景
在上面我已经提到了,转发是要比重定向快,因为重定向需要经过客户端,而转发没有。有时候,采用重定向会更好,若需要重定向到另外一个外部网站,则无法使用转发。另外,重定向还有一个应用场景:避免在用户重新加载页面时两次调用相同的动作。
例如,当提交产品表单的时候,执行保存的方法将会被调用,并执行相应的动作;这在一个真实的应用程序中,很有可能将表单中的所有产品信息加入到数据库中。但是如果在提交表单后,重新加载页面,执行保存的方法就很有可能再次被调用。同样的产品信息就将可能再次被添加,为了避免这种情况,提交表单后,你可以将用户重定向到一个不同的页面,这样的话,这个网页任意重新加载都没有副作用;
但是,使用重定向不太方便的地方是,使用它无法将值轻松地传递给目标页面。而采用转发,则可以简单地将属性添加到Model,使得目标视图可以轻松访问。由于重定向经过客户端,所以Model中的一切都会在重定向时丢失。但幸运的是,在Spring3.1版本以后,我们可以通过Flash属性,解决重定向时传值丢失的问题。
要使用Flash属性,必须在Spring MVC的配置文件中添加一个<annotation-driven/>。然后,还必须再方法上添加一个新的参数类型:org.springframework.web.servlet.mvc.support.RedirectAttributes。
如下所示:
@RequestMapping(value="saveProduct",method=RequestMethod.POST) public String saveProduct(ProductForm productForm,RedirectAttributes redirectAttributes){ //执行产品保存的业务逻辑等 //传递参数 redirectAttributes.addFlashAttribute("message","The product is saved successfully"); //执行重定向 return "redirect:/……"; }
-
(精华)2021年1月9日 LIUNX系统(重定向命令)
2021-01-09 18:48:421. 重定向命令的介绍 重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。 2. 重定向命令的使用 命令 说明 > 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式 >> ... -
nohup 日志重定向
2020-01-15 20:24:20例如: # ls 1>/dev/null 2>/dev/null 还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如: # ls >/dev/null 2>&1 注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向... -
转发和重定向的区别和使用
2019-03-19 15:26:24页面的跳转:转发 转发的原理 转发的方法 ...在Servlet中实现页面的跳转有两种方式:转发和重定向 什么是转发 概念 由服务器端进行的页面跳转 原理图 转发的方法 案例 需求 实现从OneServle... -
SpringBoot中处理的转发与重定向
2018-11-06 23:15:45转发:一次请求,服务器内部调用另外的组件处理...重定向:两次请求,地址会改变,request和response不能共用,不能直接访问WEB-INF下面的资源, 根据所要跳转的资源,可以分为跳转到页面或者跳转到其他controll... -
React-Router实战:重定向Redirect
2019-03-23 18:55:45当用户访问某界面时,该界面并不存在,此时用Redirect重定向,重新跳到一个我们自定义的组件里。 一、基础 1、引入使用 // 如果loggedIn 为 false, 则重定向跳转到 /home 页面 import { Route, Redirect } from... -
node 重定向 express 重定向
2019-12-03 17:22:40// 如何通过服务器让客户端重定向 // 1. 状态码设置为302 临时重定向,301永久重定向 // res.statusCode // 2. 在响应头中通过 location 告诉客户端往那里定向 // setHeader // 如果客户端发现收到服务器的响应状态... -
C语言重定向
2017-03-14 16:07:06近段时间,又把C primer plus第五版翻了一下,查看以前由于不理解而跳过的地方,现在来看时,结合在其他书上看到的东西(在linux书上看到关于重定向的使用),发现自己居然能够理解了。 Unix、Linux和当前的DOS版本... -
临时重定向和永久重定向
2021-01-23 16:28:29301 永久重定向 浏览器会记住 假如当你访问 a.com时 永久重定向到了 b.com ;那么下一次访问 a.com 时浏览器会直接跳转到 b.com 不会再请求 a.com 302 临时重定向 浏览器不会记忆 加入当你访问 a.com 时 临时... -
linux重定向(shell重定向,输入重定向,输出重定向)
2015-12-22 14:10:35linux输入重定向、输出重定向 -
输出重定向、输入重定向及错误重定向
2019-03-09 22:53:59一、输出重定向的定义:将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示屏的屏幕上。 重定向输出使用“>”“>>”操作符 语法:> 文件名 #表示将标准输出的内容写到... -
asp重定向 301重定向代码
2017-05-20 08:20:05asp重定向 -
Tornado重定向实现&POST方法如何重定向
2020-05-06 18:12:37场景:终端使用POST方法访问/qacenter/v1/test-records接口时,需要重定向跳转到/qacenterinner/v1/test-records接口 实现: tornado代码 # 增 async def post(self): return self.redirect("/qacenterinner/v1/... -
开放重定向
2020-05-06 23:31:13开放重定向简单来说就是一个网站跳转到另一个网站,那么这个过程中会出现啥问题呢? 为啥我点一下链接号就被盗了,为啥开放重定向喜欢和ssrf勾搭一起, 为啥出现开放重定向的地方有时候会出现xss,所有的为什么将在... -
beego 重定向
2020-09-24 11:19:28beego框架的跳转: func (c *IndexController) HomeP() { ...} 注意一下第一个状态码参数。...参考文章:beego如何重定向 使用Beego框架开发后端-4.重定向 beego跳转设置问题 重定向301和302 HTTP状态... -
路由重定向
2019-09-09 13:58:05#重定向路由 :在用户访问一个特定的地址时,将其重定向到另一个指定的地址 // 路由重定向:下面的代码意思是:当访问一个空字符串的路径时,给重定向到home路由上 {path: '', redirectTo: '/home', pathMatch:... -
redirect重定向
2019-12-04 17:23:52redirect 不仅能重定向到本项目的接口中, return "redirect:/index"; 也能重定向到外面指定接口(url) return "redirect:" + this.getRequestCodeUrl(WeChat.REDIRECT_URL); spring 注解中 不能有@ResponseBody... -
Jmeter-自动重定向和跟随重定向
2019-12-12 23:33:23这里写自定义目录标题HTML重定向自动重定向跟随重定向使用场景 HTML重定向 html重定向就是通过各种的方法将各种网络请求重新定个方向转到其它位置。 自动重定向 自动重定向请求的Response code: 200即状态码一般是... -
重定向操作
2019-09-26 10:35:16重定向标准输入/输出/错误输出 类型 操作符 用途 重定向输入 < 讲文本输入来源由键盘改为指定的文件 重定向输出 > 将命令行的正常执行输出保存到文件,而不是直接显示在屏幕上 ... -
requests重定向
2018-12-08 17:13:06在python的requests文库中介绍到了重定向,并解释了重定向的用法,但是对于我们这些小白来说,重定向意味着什么,重定向作用是什么? 于是今天便深入研究requests模块重定向深入用法 谈到重定向,这里要从http状态码...