重定向

请求转发与重定向的区别

匿名 (未验证) 提交于 2019-12-02 23:55:01
原文地址:https://blog.csdn.net/fox_bert/article/details/80634468 转发和重定向流程图如下 请求转发(服务器端转发): 1、客户端(HTML)向服务器发送一条请求,服务端发现匹配的servlet,并指定它去执行。当这个servlet执行完之后,它要调用getRequestDispacther()方法,返回值类型是RequestDispatcher,设定目标资源jsp(jsp==servlet是服务端)。 2、调用forward(ServletRequest req,ServletResponse res):该方法是RequestDispatcher接口的方法,将请求从一个servlet转发到服务器上另一个资源jsp(目标资源)(jsp==servlet是服务端) 3、目标资源jsp(jsp==servlet是服务端)接收转发过来的请求,并将接收数据后的jsp生成HTML返回给客户端 重点 : 转发是服务器行为,因此也是在这个web应用内转发,整个过程是一个请求一个响应。可以看做一个request请求里包含了多个servlet,多个servlet共享的是同一个request,所以他们之间可以通过getAttribute()读取前一个servlet的存值。 (因为是一次请求,所以地址栏是不会改变的) 由request执行转发操作

浅谈对路由的理解

匿名 (未验证) 提交于 2019-12-02 23:52:01
什么是路由?   根据不同的url展示不同的页面或者数据。 分类:路由分为前端路由和后端路由。 前端路由:主要用于单页面的开发,前端路由用户请求的路径发生改变的时候不经过后端,所以不会刷新,不跳转。     原理:通过onhashchange或者history.js进行页面的切换。     前端路由主要用来做页面的渲染。 后端路由:根据用户请求的路径返回不同的页面或数据。 路由跳转的方式:   1、a标签进行跳转   2、router-link进行跳转   3、编程式路由----this.$router.push() 路由传值的方式:   1、动态路由传值。例如:path: this.$route.params   2、   3、路由解耦。在配置路由的时候添加props属性为 true,在需要接受参数的组件页面通过props进行接受 this.$router.push({path: "/home",query:{}}); 路由配置项常用的属性及作用:   路由配置参数:     path:跳转路径     component:路径相对于的组件     name:命名路由     meta:路由元信息     children:子路由的配置参数(路由嵌套)     props:路由解耦     redirect:重定向路由 编程式导航使用的方法以及常用的方法:   路由跳转:this

springboot---request 中Parameter,Attribute区别

匿名 (未验证) 提交于 2019-12-02 23:52:01
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别: (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码: < a href = " authenticate.jsp?username=weiqin " > authenticate.jsp </ a > 或者: < form name = " form1 " method = " post " action = " authenticate.jsp " > 请输入用户姓名: < input type = " text " name = " username " > < input type = " submit " name = " Submit " value = " 提交 " > </ form > 在authenticate.jsp中通过request.getParameter(“username”)方法来获得请求参数username: <% String

RedirectAttributes重定向

匿名 (未验证) 提交于 2019-12-02 23:49:02
1、url显示参数信息(不安全) @Controller @RequestMapping("/UserOperate") public class UserController { @RequestMapping("/login") public String login(RedirectAttributs redirectAttributes) { redirectAttributes.addAttributie("name", "123"); redirectAttributes.addAttributie("success", "success"); //等价于 "redirect://main?name=123&success=success" return "redirect:/UserOperate/main"; } @RequestMapping("/main") public String login(HttpServletRequest request) { String name=request.getParameter("name"); String success=request.getParameter("success"); System.out.println(name);//输出"name" System.out.println(success);/

Windows下 Tomcat9重定向Web应用程序的目录

匿名 (未验证) 提交于 2019-12-02 23:49:02
一、应用场景 二、如何重定向 如下图所示 我复制到了一个名为tomcat1的文件夹下 ----------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------- 第三步 添加startup.bat文件 新建一个文本文件 复制如下代码到文本文件 并且修改CATALINA_HOME后面那个目录为你原Tomcat放置的目录 set "CATALINA_BASE=%cd%

HTTP常见状态码

匿名 (未验证) 提交于 2019-12-02 23:43:01
HTTP常见状态码 这里主要介绍运维过程中经常遇到的状态码。并通过业界流行的 Nginx 进行模拟实现,让大家能够对 HTTP 状态码有一个理性的认识(必会,牢记) 实验场景 操作系统 centos 7.3 实验用的软件包 nginx php - fmp php http - tools (直接使用 yum 仓库原生软件包) yum - y install nginx php - fmp php http - tools 2xx状态码 2xx 类型的状态码表示一个 HTTP 请求成功(比如 200 ) 3xx状态码 3xx 类型状态码主要表示 HTTP 请求 URL 重定向行为(常见 301 , 301 , 304 ) 301状态码 URL 永久性重定向,在 nginx 中通过 rewrite 指令结合 permanent 标记实现 302状态码 URL 临时重定向,在 nginx 中通过 rewrite 指令结合 redirect 标记实现 301与302的区别 301 与 302 状态码都是 URL 重定向,其中 301 是永久, 302 是临时。不管是永久还是临时对于用户来说两者没有任何感官上的区别。都是在访问链接 A 时跳转到了链接 B ,并看到浏览器上的地址同样由 A 变成了 B 。 它们主要区别在于搜索引擎,搜索引擎是要建立索引规则和权重的,如果链接 A

ASP.NET--Server对象

匿名 (未验证) 提交于 2019-12-02 23:43:01
2019独角兽企业重金招聘Python工程师标准>>> 1. Server 是 context 的一个属性,是 HttpServerUtility 类的一个对象。 2. Server.HtmlDecode()、Server.HtmlEncode()、Server.UrlEncode()、Server.UrlDecode() 是对 HttpUtility 类中相应方法的一个代理调用。本人推荐总是使用 HttpUtility ,因为有的地方很难拿到Server对象。 3. Server.Transfer(path) 内部重定向请求, Server.Transfer("XXX.aspx") 将用户的请求重定向给XXX.aspx 处理,是服务器内部的接管,浏览器是意识不到这个接管的,不是像 Response.Redirect 那样经历“通知浏览器”请重新访问url 这个网址 和 "浏览器接到命令访问新网址的过程",是一次 http 请求,一次浏览器地址栏不会变化(联想下,呼叫中心坐席告诉客户一个号码和帮客户转换的区别)。因为是内部接管,所以在被重定向到的页面中是可以访问到 Request、Cookie 等这些来源页面接受的参数的,就像这些参数是传递给他的,而 Redirect 则不行,因为是让浏览器去访问的。注意Transfer是内部接管,因此不能像 Redirect 那样重定向到外部网站

Shell 输入/输出重定向

匿名 (未验证) 提交于 2019-12-02 23:43:01
Linux 学习路线: 阿里云大学――开发者课堂 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。 输出重定向 重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示: command1 > file1 上面这个命令执行command1然后将输出的内容存入file1。 注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。 实例 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users): $ who > users 执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。 你可以使用 cat 命令查看文件内容: 输出重定向会覆盖文件内容,请看下面的例子: $ echo "阿里云大学:edu.aliyun.com" > users $ cat users阿里云大学:edu.aliyun.com $ 如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾,例如: $ echo "阿里云大学:edu.aliyun.com" >> users $ cat users阿里云大学:edu

HTTP常用状态码详解

匿名 (未验证) 提交于 2019-12-02 23:42:01
/*--> */ /*--> */ /*--> */ /*--> */ /*--> */ HTTP 状态码: HTTP定义遵循一条规则:所有状态码的第一个数字代表了响应的状态。 1表示消息; 2表示成功; 3表示重定向; 4表示请求错误; 5、 6表示服务器错误。如下图: 1xx: 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。 HTTP/1.0 协议中没有定义任何 1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx响应 2xx: 200 : 请求成功 202 已经接受请求,但处理尚未完成。 服务器已经创建了文档,Location 头给出了它的URL 。 3xx: 301 永久性重定向 302 暂时性重定向 304 从本地缓存读取 4xx: 400 . 例如缺少参数,参数写错等 .. DNS查询超时时会返回 400或者 500错误 401 Unauthorized !资源本身是可以访问的,但因为缺少一些凭证信息而不能访问(例如用户信息 token等) 403 Forbidden 禁止访问! 跨域问题或服务器上文件或目录的权限设置导致。 404 5xx 500 Internal Server Error : 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理. 502 Bad

flask 重定向到上一个页面(获取当前url的前一个url)

匿名 (未验证) 提交于 2019-12-02 23:40:02
flask 重定向到上一个页面(获取当前url的前一个url) 作用:传入当前页面url,重定向到前一个url 代码: from urllib.parse import urlparse, urljoin # 函数功能,传入当前url 跳转回当前url的前一个url def redirect_back(backurl, **kwargs): for target in request.args.get('next'), request.referrer: if not target: continue if is_safe_url(target): return redirect(target) return redirect(url_for(backurl, **kwargs)) def is_safe_url(target): ref_url = urlparse(request.host_url) test_url = urlparse(urljoin(request.host_url, target)) return test_url.scheme in ('http', 'https') and ref_url.netloc == test_url.netloc 用法: @app.route('/delcart/') def dfg(): print(12313)