位置: IT常识 - 正文

WEB核心【请求转发(阶段重点)】第六章(web主要的请求方式有几种)

编辑:rootadmin
WEB核心【请求转发(阶段重点)】第六章

目录

1:请求转发【阶段重点】

1.1:语法格式及转发使用

1.2:request域对象

1.3:小结:请求转发间做数据传递

1.4:请求转发访问受保护目录


1:请求转发【阶段重点】1.1:语法格式及转发使用

推荐整理分享WEB核心【请求转发(阶段重点)】第六章(web主要的请求方式有几种),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:web主要的请求方式有几种,http请求webservice,http请求webservice,web请求及响应过程,web核心是什么,web请求类型,web请求的完整过程是怎样的?,web请求类型,内容如对您有帮助,希望把文章链接给更多的朋友!

格式:forward:/要跳转的程序或者页面

forward:/index.html        跳转到项目根目录的index.html页面

forward:/demo/index.html      跳转到项目demo目录的index.html页面

forward:/d1?method = run1 跳转到项目d1程序的run1方法

入门案例:

web.xml:注册一个servlet程序

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>Demo1Servlet</servlet-name> <servlet-class>com.czxy.demo1.servlet.Demo1Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Demo1Servlet</servlet-name> <url-pattern>/d1</url-pattern> </servlet-mapping></web-app>

Demo1Servlet:

public class Demo1Servlet extends BaseServlet { //访问run1方法时,run1方法在控制台打印run1,并且将程序跳转到 //01.html上 //注意:forward中的第一个/,代表项目的根目录,项目的根目录从当前项目的web目录开始 public String run1(){ System.out.println("run1"); return "forward:/01.html"; }}

小结:

forward:/资源路径

forward中的第一个/,代表项目的根目录,项目的根目录从当前项目的web目录开始

Servlet之间的跳转:

//访问run2,在控制台打印run2,将程序跳转到d1?method=run3,run3方法打印run3public String run2(){ System.out.println("run2"); return "forward:/d1?method=run3";}public String run3(){ System.out.println("run3"); return null;//禁止进行递归跳转}

 注意:请求转发不会修改地址栏路径,用户不知道服务器进行过跳转操作。

Servlet之间的跳转,传递参数

Person:  name   age

public class Person implements Serializable { private String id; private String name; private String age; //get/set/无参/有参/toString 自行创建}

Servlet

//访问run4,控制台打印run4,将程序跳转到d1?method=run5,传递name=xiaozhang&age=18,run5方法打印person数据public String run4(){ System.out.println("run4"); return "forward:/d1?method=run5&name=张三&age=18";}public String run5(){ Person person = toBean(Person.class); System.out.println(person); return null;}

 当前传递中文参数没有乱码风险,原因是:

 

post请求传递参数,并再次传递参数 

 run6.html

<form method="post" action="/day04_1/d1"> <input type="hidden" name="method" value="run6"/> 姓名:<input type="text" name="name" value="张三"/><br/> 年龄:<input type="text" name="age" value="18"/><br/> <input type="submit"/></form>

Demo1Servlet

//浏览器将post请求参数传递过来,请求转发到run7,并将person数据带给run7public String run6() throws ServletException, IOException { Person person = toBean(Person.class); System.out.println(person); //下面的注释语句,就是请求转发的完整代码 //getRequest().getRequestDispatcher("/d1?method=run7").forward(getRequest(),getResponse()); return "forward:/d1?method=run7";}public String run7(){ Person person = toBean(Person.class); System.out.println("run7"+person); return null;}

小结:

由ServletA请求转发到ServletB过程中,使用的是同一个请求信息(行、头、体)

WEB核心【请求转发(阶段重点)】第六章(web主要的请求方式有几种)

ServletA可以将请求数据请求转发到ServletB

扩展:若在请求转发中,请求参数需要发生变化:

//浏览器将post请求参数传递过来,请求转发到run7,并将person数据带给run7public String run6() throws ServletException, IOException { Person person = toBean(Person.class); System.out.println(person); //下面的注释语句,就是请求转发的完整代码 //getRequest().getRequestDispatcher("/d1?method=run7").forward(getRequest(),getResponse()); return "forward:/d1?method=run7&name=李四";}public String run7(){ Person person = toBean(Person.class); System.out.println("run7"+person); return null;}

请求转发过程中,请求体没有发生改变。

请求参数获取中,优先获取请求行,再获取请求体(新请求行参数覆盖了原来的请求参数)

1.2:request域对象

域对象:

相当于一个Map集合,在指定范围内可以进行数据传递和共享

ServletContext

HttpSession

HttpServletRequest---- 作用范围:请求转发之间

PageContext

run8.html

<form method="post" action="/day04_1/d1"> <input type="hidden" name="method" value="run8"/> 姓名:<input type="text" name="name" value="张三"/><br/> 年龄:<input type="text" name="age" value="18"/><br/> <input type="submit"/></form>

 Demo1Servlet

public String run8(){ getRequest().setAttribute("k1","v1"); return "forward:/d1?method=run9";}public String run9(){ System.out.println(toBean(Person.class));//请求参数 System.out.println(getRequest().getAttribute("k1"));//request作用域 System.out.println(getRequest().getAttribute("k2"));//request作用域 return null;}

1.3:小结:请求转发间做数据传递

目标: 熟练进行资源之间的内部跳转

①:在转发时,?参数列表形式进行拼接:

格式:return "forward:/资源路径?k1=v1&k2=v2";

优先级较高,会覆盖原来的同名参数

注意:该形式只能转发 字符串数据

②:在转发前,向request作用域设置键值对。

格式:getRequest().setAttribute("k",v);//value值Object

注意:该形式相当于转发间的map集合,可以转发一切数据

1.4:请求转发访问受保护目录

WEB-INF是受保护目录,里面的资源,浏览器不能直接访问

WEB-INF访问方式就是通过请求转发 跳转进来:

public String run10(){ //请求转发到web-inf里 p3.png return "forward:/WEB-INF/p3.png";}

请求转发:

return "forward:/WEB-INF/资源路径";

最后:        如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧!         愿我们在未来的日子里。熠熠生辉!!!
本文链接地址:https://www.jiuchutong.com/zhishi/299658.html 转载请保留说明!

上一篇:图片的美白与美化(图片美白ps)

下一篇:前端实战|React18项目启动——pc端极客园项目前置准备(前端实战培训)

  • qq智能降噪怎么关(qq智能降噪怎么开)

    qq智能降噪怎么关(qq智能降噪怎么开)

  • 酷狗认领作品是什么(酷狗认领作品是啥意思)

    酷狗认领作品是什么(酷狗认领作品是啥意思)

  • 抖音怎么把视频横过来(抖音怎么把视频放慢速度)

    抖音怎么把视频横过来(抖音怎么把视频放慢速度)

  • 苹果手机看着视频自己黑屏什么原因(苹果手机看着视频自己锁屏什么原因)

    苹果手机看着视频自己黑屏什么原因(苹果手机看着视频自己锁屏什么原因)

  • 手机直播发烫怎么解决(手机直播发热严重)

    手机直播发烫怎么解决(手机直播发热严重)

  • ipad第一次要把电用完吗(ipad第一次要把电用光吗)

    ipad第一次要把电用完吗(ipad第一次要把电用光吗)

  • 正在注销关不了机怎么回事(正在注销很久)

    正在注销关不了机怎么回事(正在注销很久)

  • 开启免打扰模式别人打电话什么样(怎么开启免打扰模式)

    开启免打扰模式别人打电话什么样(怎么开启免打扰模式)

  • 华为如何召唤siri(华为如何召唤语音)

    华为如何召唤siri(华为如何召唤语音)

  • 爱奇艺登录为什么老掉线(爱奇艺登录为什么会失效)

    爱奇艺登录为什么老掉线(爱奇艺登录为什么会失效)

  • 抖音极速版没有苹果版本吗(抖音极速版没有赚钱入口)

    抖音极速版没有苹果版本吗(抖音极速版没有赚钱入口)

  • 微信只能发信息不能收信息怎么回事(微信只能发信息不能打电话怎么回事)

    微信只能发信息不能收信息怎么回事(微信只能发信息不能打电话怎么回事)

  • ipad在线是什么意思啊(ipad在线是什么型号)

    ipad在线是什么意思啊(ipad在线是什么型号)

  • 苹果手机和平板充电器通用吗(苹果手机和平板怎么取消同步来电)

    苹果手机和平板充电器通用吗(苹果手机和平板怎么取消同步来电)

  • 小米手机开空调在哪开(小米手机开空调万能遥控器)

    小米手机开空调在哪开(小米手机开空调万能遥控器)

  • 无线蓝牙耳机怎么切歌(无线蓝牙耳机怎么充电)

    无线蓝牙耳机怎么切歌(无线蓝牙耳机怎么充电)

  • 优酷怎么下载视频到mp4格式(优酷怎么下载视频到相册)

    优酷怎么下载视频到mp4格式(优酷怎么下载视频到相册)

  • 拼多多撤销投诉在哪里(拼多多撤销投诉物流怎么撤销)

    拼多多撤销投诉在哪里(拼多多撤销投诉物流怎么撤销)

  • 华为上面状态栏图标消失(华为上面的状态栏)

    华为上面状态栏图标消失(华为上面的状态栏)

  • 如何取消作业帮自动续费(如何取消作业帮会员续费)

    如何取消作业帮自动续费(如何取消作业帮会员续费)

  • iphone8支持5g吗(iphone8支持5ghz频段吗)

    iphone8支持5g吗(iphone8支持5ghz频段吗)

  • 智能手机有什么特点(智能手机有什么缺点)

    智能手机有什么特点(智能手机有什么缺点)

  • 苹果电脑字体文件夹位置(苹果电脑字体文件怎么拖出来)

    苹果电脑字体文件夹位置(苹果电脑字体文件怎么拖出来)

  • 最华丽的大中华区苹果商店(美丽的大中华)

    最华丽的大中华区苹果商店(美丽的大中华)

  • unapp微信小程序转发分享、携带参数(小程序unload)

    unapp微信小程序转发分享、携带参数(小程序unload)

  • 帝国cms数据库如何批量替换字段值(帝国cms数据库如何使用)

    帝国cms数据库如何批量替换字段值(帝国cms数据库如何使用)

  • phpcms后台登录验证码显示不出来(phpcms v9用户手册)

    phpcms后台登录验证码显示不出来(phpcms v9用户手册)

  • 首涂二十五套苹果CMSV10带后台和会员中心破解无加密——OK源码破解(首涂第二十一套模板)

    首涂二十五套苹果CMSV10带后台和会员中心破解无加密——OK源码破解(首涂第二十一套模板)

  • 织梦(dedecms)程序如何在后台添加新用户注册功能方法(织梦森林官网)

    织梦(dedecms)程序如何在后台添加新用户注册功能方法(织梦森林官网)

  • 税务会计账务处理
  • 9月份扣什么税?
  • 物业收电费有问题找谁解决
  • 收到单位借款如何处理
  • 信用减值损失是什么类科目
  • 货物和运费一起开票怎么开
  • 企业购买的雇主责任险
  • 贸易类公司做产品代理账务如何处理
  • 现金日记账划线更正法
  • 短期筹资方式有没有股票
  • 业务招待费记账凭证摘要
  • 打官司赢了再付费叫什么
  • 工业企业购买电机会计分录
  • 企业收到跨年度的政府补贴款,是否计入当年企业所得税
  • 漏提折旧可以所得税扣除吗
  • 年终奖缴税将有大变化
  • 以前年度企业所得税申报表怎么查
  • 如何查询以前申诉进度
  • 企业所得税的账载金额和实际发生额
  • 分期收款什么时候交税
  • 计提坏账准备的会计分录
  • 法人往公户打款是实收资本还是借款
  • 应收账款记账凭证如何填写
  • 园林绿化工程公司电话
  • 冲销货款应怎么记账
  • win10任务栏快捷图标不见了
  • win11怎么录屏游戏
  • vue 高德地图 窗体
  • mt-mon.exe
  • php字符串函数大全
  • 费用发票开的是跨年的账务处理
  • 筹建期间费用计入什么
  • php常用的魔术方法有哪些
  • 文化事业2021
  • 加里西亚省
  • tensorflow2安装
  • bert获取中文词向量
  • 基于matlab的随机森林回归和交叉验证
  • split 文件分割
  • php zmq
  • vue开发教程
  • 印花税账务处理会计分录
  • 公司出售房子怎么交税
  • 发票未报销可以退税吗
  • Price Comparison Script
  • 采购商品没有进账怎么做账
  • 普票要盖发票的章子吗
  • SQL2005 provider: 命名管道提供程序 error: 40 无法打开到 SQL Server 的连接
  • mysql数据类型和java对应
  • 应收应付票据包括什么
  • 海关双抬头进口增值税发票如何抵扣
  • 员工外面有自己的公司
  • 产品的包装费属于什么科目?
  • 房屋租赁合同印花税怎么计算
  • 新公司的注册
  • 小额零星支出是什么意思
  • 跨年退货怎么处理账务
  • 纳税申报财务报表怎么撤销
  • win8.1 开机进桌面
  • solaris如何关闭usb接口
  • centos7光盘挂载方法
  • [下载转存] 经验本题库源文件下载转存 秒结
  • 优化计算
  • win1020h2版本要更新多久
  • ExtJS 2.0实用简明教程 之Border区域布局
  • 链接符怎么删除
  • 批处理怎么操作
  • js如何获取cookie的值
  • python快捷键大全
  • js clearInterval()方法的定义和用法
  • 表单验证jquery
  • PYTHON使用缩进来体现代码之间的逻辑关系
  • shape form的区别
  • react navigate
  • 置顶快手作品怎么弄
  • 增值税申报表如何填报
  • 税控盘开票资料怎么导出几年前的开票信息
  • 郑州房产契税缴纳
  • 网上增值税发票验旧
  • 苹果关税多少钱一个
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设