Java Web 请求转发与请求重定向

Java Web 请求转发与请求重定向

请求转发

服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后菜返回给用户,各个信息资源使用请求转发机制互相转发请求,但是用户是感觉不到请求转发的。通过request.getRequestDispatcher(path).forward(arg0, arg1)实现,是一次请求,转发后对象会保存,地址栏的url不会改变。

这里写图片描述

请求重定向

客户端行为。一般用于避免用户的非正常访问。例如:用户在没用登录的情况下访问后台资源,servlet可以将该http请求重定向到登录页面,让用户登陆后再访问。通过调用response.sendRedirect(arg0)实现,从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的url会改变。

这里写图片描述

二者的原理及区别是什么?

答:Forward和Redirect代表了两种请求方式:请求转发和请求重定向。对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletRequest类的sendRedirect()方法。

对于请求转发,客户端浏览器只发出一次请求,Servlet把请求转发给Servlet、HTML、JSP或其它信息资源,由第2个信息资源响应该请求,两个信息资源共享同一个request对象。

对于请求重定向,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。它本质上是两次HTTP请求,对应两个request对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05.RDD详解

05.Spark--RDD详解 RDD详解--groupByKey--reduceByKey [MapPartitionRDD单词统计] 单词统计 import org.apache.spark.{SparkConf,SparkContext} object WordCountScala{def main(args:Array[String]):Unit{//创建spark配置对象val confnew SparkConf()conf.setAppName("W…

Mininet

首先,我折腾了两周多的东西终于弄出一点眉目了。 有以下几个内容需要学习记忆一下。 1.虚拟机,弄不出来共享文件夹,就用U盘吧,贼快还不用安装配置各种东西,virtualbox和VMware都支持。 2.ubantu安装软件中途失败&#…

docker --- 使用docker-compose.yml生成redis,并连接redis-cli

docker.compose.yml 配置 version: 3.1 services:redis:image: redisports:- 6379:6379命令行:docker-compose up 查看: docker ps 进入redis-cli,输入以下 docker exec -it 7dc0a redis-cli -h localhost -p 6379 操作Redis数据 设置 namemarron set name marron 获取nam…

浅谈javaweb三大框架和MVC设计模式

浅谈javaweb三大框架和MVC设计模式转载自:http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序:博主以前在学javaweb的时候开始总不理解javaweb三大框架和MVC框架模式,虽然没有把两者混为一谈,但是也是很晕菜。…

win下配置nginx

1.下载:http://nginx.org/en/download.html 2.在安装目录cmd: start nginx.exe 启动nginx 3.修改默认运行端口80(nginx.conf): HTTP 数据分发 修改配置文件nginx.conf相应节点: 修改完后重启服务: nginx -s reload TCP 数据分发: nginx 1.9以上版本支持tcp转发 配置文件中增加:…

koa --- koa-bouncer验证

使用 koa-bouncer中间件对传入的数据进行验证 const bouncer require(koa-bouncer); app.use(bouncer.middleware());const val async (ctx, next) > {ctx.validateBody(name).required(要求提供用户名).isLength(6, 16, 用户名长度应该为6~16).isString().trim()next();…

fiddler2抓包数据工具使用教程

一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于…

egg --- 初始化一个egg项目基本结构说明

Egg.js体验 全局安装 // 创建项目 $ npm i egg-init -g $ egg-init egg-example --typesimple $ cd egg-example $ npm i// 启动项目 $ npm run dev $ open localhost:7000Egg.js的结构 路由(Router): 将请求URL和具体承担执行动作的Controller的关系对应控制器(Controller)…

葫芦娃

葫芦娃救爷爷 1.队名——代码那些事儿 2.团队成员 刘佳 211606320(队长)李佳 211660313周世元 211606348王浩 211606378曾丽丽 211606302陈水莲 211606303许燕婷 211606338杨小妮 2116063413.队长博客链接 -https://www.cnblogs.com/LJ-D/p/9799944.html…

webstorm遇到的问题

问题一:英译:未指定node.js的解释器。 解决方法:将webstorm配置支持node.js并自动补全 步骤: 先下载node.jsFile->Setting->输入Node.js(选中点进去)->Node imterpreter(选择node的安装…

eclipse报错: Could not generate secret

在调用微信接口时,出现一个错误: 一直以为是接口调用问题,经多方查询和尝试解决,最后找到根源: edit-->使用default就可以了。 原因: 在eclipse中运行时,把签名信息给去掉了。 转载于:https:…

koa --- [MVC实现之一]自定义路由读取规则

实现MVC分层架构 目标是创建约定大于配置、开发效率高、可维护性强的项目架构路由处理 规范 所有路由,都要放在routes文件夹中若导出路由对象,使用 动词空格路径 作为key, 值是操作方法若导出函数, 则函数返回第二条约定格式的对象 路由定义: 新建 router/index.js, 默认index…

bzoj1128 Lam-lights

题目描述 对于一个长度为n的数列p,数列中任意两个数互质。准备一个无限长的储存器。然后从p1开始,把储存器中p1倍数位置都赋值为p1,把储存器中p2倍数位置都赋值为p2,把储存器中p3倍数位置都赋值为p3。。。把储存器中pn倍数位置都赋…

koa --- [MVC实现之二]Controller层的实现

[MVC实现之一]传送门 https://blog.csdn.net/piano9425/article/details/103362966 Router层 router这一层,不做业务处理,仅仅只是将路由和路由的处理函数结合起来.路由的处理函数由Controller层实现改进目录结构如下(实际上新建了controller文件夹及其内部子文件,mar.js) …

Layui --- [Mar]给渲染后的表格加CSS样式

为什么要控制样式 使用layui生成后的表格的样式有时候,并不能满足我们的需求.因此在渲染完成后,需要自定义类对其操作 Layui表格渲染后一般会出现以下结构 分结构如下 我把使用layui的table渲染后的表格分为如下的几个dom 1.$rawTable: 初始table,即 2.$renderTable: 渲染之…

Python 框架之Flask初步了解

Python 框架之Flask初步了解 前言 ​ 在了解python web 框架之前,我们需要先了解框架实现的基本原理。首先,需要了解WSGI(Web Server Gateway Interface),借助WSGI我们就能实现用Python专注于生成HTML文档&#xff0…

koa --- [MVC实现之三]换个角度重新开始-初始化

说明 下面文章是对该系列前面2篇及项目中经验的总结,重新开始写的实现了Mar类,贯穿Router层、Controller层、Service层基本骨架的搭建 初始 使用Koa创建一个简单的服务器,一般会使用如下 const koa require(koa); const app new koa(); const Router require(koa-router…

java web 服务器环境搭建之jdk安装

Java 部署环境搭建 一 安装centos系统,安装完成后用root用户登录 二 Java 环境安装 下载jdk安装包,使用以下命令下载安装包,也可以在windows环境现在,在上传到linux机器上curl -O -L http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/…

koa --- [MVC实现之四]Router、Controller、Service的实现

说明 上一篇: [MVC实现之三]上一篇实现了,Router层、Controller层、Service层的基本原则,并且成功的通过Mar类来传递这些层级之间需要的参数.这一篇主要是通过业务层面来具体实现: Router层:监听页面的路由,并调用Controller层的路由处理函数Controller层:给Router层提供服务,…

2017-2018-2 20179317 《网络攻防技术》第七周学习心得体会

教材学习内容总结 课本第七章主要围绕windows操作系统安全攻防技术进行讲述,教材中主要涉及的攻击内容如下: Windows操作系统的基本结构 运行于处理器特权模式的操作系统内核运行在处理器非特权模式的用户空间代码采用宏内核模式来进行构架 Windows操作系…