重定向

转发与重定向的区别

可紊 提交于 2019-12-09 23:43:34
转发时浏览器中的url地址栏不会发生改变 ,重定向时地址栏会发生改变 转发时浏览器只请求一次服务器,重定向时浏览器请求两次服务器 转发的代码: request.getRequestDispatcher("要转发的jsp页面").forward(request,response); 重定向的代码: response.sendRedirect("jsp的路径"); 注意:重定向无法通过request和response传输数据,但可用以下方法进行数据的传输 this.getServletContext().setAttribute("属性名",属性值); request.getSession().setAttribute("属性名",属性值); 来源: https://www.cnblogs.com/shouyaya/p/12014123.html

Servlet转发forward和重定向response.sendRedirect()区别

情到浓时终转凉″ 提交于 2019-12-09 21:52:36
1.两者区别 重定向是在客户端发生的,URL地址栏变化,可以定向到任何服务器的资源; 转发是发生在服务器内部的,浏览器地址栏不变化,只能转发本服务器的资源。 2.使用方法 重定向使用:response.sendRedirect(url); 转发时使用:request.getRequestDispatcher(url).forward(request,response); 3.禁用Cookie时,如何使用Session session虽然是服务器端的,但是在浏览器再次访问其他servlet时,服务器如何知道是否为同一客户端?其实,在浏览器访问session资源后,服务器会发送一个set-cookie响应,此cookie不是存在本地的,存在浏览器内部,所以说session是基于cookie的。但是当浏览器禁用所有cookie时,cookie存不进去,服务器如何分辨客户机呢? 使用URL重写,即将session产生的id设置在URL上,浏览器每次访问,都带着此后缀,所以无论是否禁用cookie,都能访问同一session资源,方法如下: 重定向URL使用 String url = response.encodeRedirectURL(url); response.sendRedirect(url); 非重定向URL使用 String url = response.encodeURL

20191209 Linux就该这么学(1-3)

 ̄綄美尐妖づ 提交于 2019-12-09 21:22:23
1. 部署虚拟环境安装 Linux 系统 RPM 是为了简化安装的复杂度,而 Yum 软件仓库是为了解决软件包之间的依赖关系。 2. 新手必须掌握的Linux命令 通常来讲,计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。 Linux 系统的内核负责完成对硬件资源的分配、调度等管理任务。 Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流 Linux 系统默认使用的终端是 Bash ( Bourne-Again SHell)解释器。 常见执行 Linux 命令的格式是这样的: 命令名称 [命令参数] [命令对象] 命令名称、命令参数、命令对象之间请用空格键分隔。 命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用 -- 与 - 作为前缀。 2.3 常用系统工作命令 1. echo [hwj@localhost ~]$ echo abc abc [hwj@localhost ~]$ echo $shell [hwj@localhost ~]$ echo $SHELL /bin/bash 2. date ##

【Python搞搞轻量Blog】第二发 Flask入门(2)

♀尐吖头ヾ 提交于 2019-12-09 17:49:20
上一篇文章 Flask入门 中创建了一个非常简单的Web应用。 但从最简单中又稍微深入的说了一下Flask 基于Werkzeug。 使用模板 (利用HTML) 如何快速利用写好的HTML呢? 第一步: 在和主应用的同级目录下,创建一个名为 templates 文件夹。 这个就是存放模板的文件夹,模板就是html文件 第二步:在templates 文件下新建一个index.html 文件 然后看下我们的主程序代码,如何去利用模板。 from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return render_template("index.html",name='Stronger') # 模板名称为 index.html if __name__ == '__main__': app.run(host='0.0.0.0',port=8080,debug=True) 第一行: 新导入了一个 render_template 函数 第六行代码: 调用render_template,传入的第一个参数是模板的文件名称,它会在主程序的同级目录下去寻找一个名为templates的文件夹,在这个文件下去寻找模板。第二个传入的参数,会在模板中显示,看上面的html代码图片

Flask 教程 第五章:用户登录

不羁岁月 提交于 2019-12-09 16:43:53
本文翻译自 The Flask Mega-Tutorial Part V: User Logins 这是Flask Mega-Tutorial系列的第五部分,我将告诉你如何创建一个用户登录子系统。 你在 第三章 中学会了如何创建用户登录表单,在 第四章 中学会了运用数据库。本章将教你如何结合这两章的主题来创建一个简单的用户登录系统。 本章的GitHub链接为: Browse , Zip , Diff . 密码哈希 在 第四章 中,用户模型设置了一个 password_hash 字段,到目前为止还没有被使用到。 这个字段的目的是保存用户密码的哈希值,并用于验证用户在登录过程中输入的密码。 密码哈希的实现是一个复杂的话题,应该由安全专家来搞定,不过,已经有数个现成的简单易用且功能完备加密库存在了。 其中一个实现密码哈希的包是 Werkzeug ,当安装Flask时,你可能会在pip的输出中看到这个包,因为它是Flask的一个核心依赖项。 所以,Werkzeug已经安装在你的虚拟环境中。 以下Python shell会话演示了如何哈希密码: 1 >>> from werkzeug.security import generate_password_hash 2 >>> hash = generate_password_hash('foobar') 3 >>> hash 4 'pbkdf2

SpringMVC——返回结果及指定视图

放肆的年华 提交于 2019-12-08 21:32:28
通过ModelAndView返回结果和指定视图 设置ModelAndView对象 , 根据view的名称 , 视图解析器跳到指定的页面 . 页面 : {视图解析器前缀} + viewName +{视图解析器后缀} <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后缀 --> <property name="suffix" value=".jsp" /> </bean> 对应的controller类 public class ControllerTest1 implements Controller { public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { //返回一个模型视图对象 ModelAndView mv = new

IO 重定向

假装没事ソ 提交于 2019-12-08 20:40:30
一、标准输入输出   对于 shell 来说,有三个基础的流,标准输入流(stdin或者stream 0),标准输出流(stdout或者stream 1),标准错误流(stderr或者stream2)。   举个例子,当我们用键盘在 shell 中执行命令的时候,可以如下图:   通常,stdout跟stderr都输出到了屏幕上,但对于Linux来说,其实是两种不同的输出。 二、输出重定向   可以用 > 大于号将stdout重定向到另一个IO,比如文件: # echo "hello" > test.log # cat test.log hello   上面的命令将stdout重定向到文件 test.log 中,此时,如果该文件不存在则创建新文件,如果存在则覆盖已有文件。事实上, > 重定向是 1> 的简写, 1> 可以更清楚的看到实际上是把stdout(stream 1)重定向。   必须注意的是,默认情况下,该重定向会覆盖已有文件,这个在有时候可能不经意间丢失重要数据。 shell 提供了选项使得我们可以禁止这种覆盖, set -o noclobber 可以打开该选项。 # cat test.log hello # set -o noclobber # echo "world" > test.log -bash: test.log: cannot overwrite

重定向次数过多

坚强是说给别人听的谎言 提交于 2019-12-08 15:07:30
1.可能出现了无限的过滤器重定向 2.放行地址写错了,/admin/login对,admin/login错,//admin对,/admin错   放行地址写错会没有准确放行,一直重定向判断是否登录了 来源: https://www.cnblogs.com/wzh1997/p/12005797.html

shell

时光毁灭记忆、已成空白 提交于 2019-12-08 09:28:30
当前目录所有目录中的文件 ls -R 显示目录和文件,目录后带/ ls -F 递归复制整个文件夹 cp -R 重命名文件 mv node.sh note.sh 硬连接会保留数据,软连接会直接无效 cp -l # 硬连接 cp -s # 软连接 创建目录 mkdir dir 查看文件内容 -n所有行号 -b带文本的行号 cat 其他查看文件的方法 more less 显示开头和结尾 可以带 -n 显示n行 head tail 显示进程 ps 实时进程控制 top 停止进程 kill 查看磁盘空间 -c 显示总用量 -h 以可读形式显示 df 对文件内容进行排序 -n 数字识别为数字 -M 按月份排序 sort file -n 查看全局变量 printenv 设置本地变量,然后导出,就可以变为全局变量 导出后不用再使用$符号 var=100 export var 删除环境变量 unset var 定义数组 myArr=(1 2 3 4) 通用显示 echo ${myArr[0]} 只能显示第一个 echo $myArr 显示所有数据 echo ${myArr[*]} unset 对数组也有效 查看别名 alias -p 创建别名 alias vim='vi' 用户操作 useradd usermod userdel 修改权限 u 表示用户 o 表示其他任何人 g 表示用户组 a

Flask 重定向问题:若没有对URL进行安全验证

时光毁灭记忆、已成空白 提交于 2019-12-07 19:41:28
一个fooo视图,一个barrr视图。通过点击视图里的链接,进行一些操作之后,返回fooo或barrr路由。 @app.route('/fooo') def fooo(): return '<h1>Fooo Page</h1><a href="%s">Do somethinggg</a>' % url_for('do_somethinggg', next=request.full_path) @app.route('/barrr') def barrr(): return '<h1>Barrr Page</h1><a href="%s">Do somethinggg</a>' % url_for('do_somethinggg', next=request.full_path) @app.route('/do_somethinggg') def do_somethinggg(): print('------do somethinggg------') print(request.referrer) # 方法一:查询request.referrer获取重定向位置 return redirect(request.referrer or url_for('hello')) # 方法二:查询参数获取重定向位置 return redirect(request.args.get('next')