位置: 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端极客园项目前置准备(前端实战培训)

  • 腾讯视频杜比视听在哪打开(腾讯视频杜比视界)

    腾讯视频杜比视听在哪打开(腾讯视频杜比视界)

  • 电脑主机显卡插哪(电脑主机显卡插屏幕)

    电脑主机显卡插哪(电脑主机显卡插屏幕)

  • ip协议版本选哪个(ip协议类型怎么选)

    ip协议版本选哪个(ip协议类型怎么选)

  • 华为如何格式化手机(华为如何格式化储存卡)

    华为如何格式化手机(华为如何格式化储存卡)

  • 华为手机充电突然变慢几倍(华为手机充电突然变慢了怎么办)

    华为手机充电突然变慢几倍(华为手机充电突然变慢了怎么办)

  • win7图片打印预览是空白的(win7图片打印预览闪一下就变空白)

    win7图片打印预览是空白的(win7图片打印预览闪一下就变空白)

  • 微信通讯录黑名单啥意思(微信通讯录黑名单在哪里找)

    微信通讯录黑名单啥意思(微信通讯录黑名单在哪里找)

  • 手机爱奇艺头像换不了(手机爱奇艺头像怎么换)

    手机爱奇艺头像换不了(手机爱奇艺头像怎么换)

  • 抖音被别人实名认证了怎么办(抖音被别人实名认证了而且封禁了)

    抖音被别人实名认证了怎么办(抖音被别人实名认证了而且封禁了)

  • 微信回收站在哪里找(微信回收站在哪?)

    微信回收站在哪里找(微信回收站在哪?)

  • 单16g和双8g 性能差别(单根16g和双8g差距)

    单16g和双8g 性能差别(单根16g和双8g差距)

  • unsigned int数据的取值范围(unsignedint型数据的取值范围)

    unsigned int数据的取值范围(unsignedint型数据的取值范围)

  • sata1能用固态硬盘吗(sata1用固态硬盘坏的快)

    sata1能用固态硬盘吗(sata1用固态硬盘坏的快)

  • 8p手机多长(iphone 8p 多长)

    8p手机多长(iphone 8p 多长)

  • 苹果怎么取消拦截骚扰电话(苹果怎么取消拦截跳转)

    苹果怎么取消拦截骚扰电话(苹果怎么取消拦截跳转)

  • 怎么在excel中查找关键字(怎么在excel中查重复项)

    怎么在excel中查找关键字(怎么在excel中查重复项)

  • 手机显示2g是怎么回事(手机显示2g是怎么改成4g)

    手机显示2g是怎么回事(手机显示2g是怎么改成4g)

  • win10杀毒软件怎么关闭(win10 杀毒软件)

    win10杀毒软件怎么关闭(win10 杀毒软件)

  • 抖音怎么发清晰的视频(抖音怎么发清晰视频)

    抖音怎么发清晰的视频(抖音怎么发清晰视频)

  • 如何找到伪随机数规律(如何找到伪随机数种子)

    如何找到伪随机数规律(如何找到伪随机数种子)

  • 苹果怎么发imessga(苹果怎么发imessege)

    苹果怎么发imessga(苹果怎么发imessege)

  • p30pro像素是多少(华为p30pro像素是多少)

    p30pro像素是多少(华为p30pro像素是多少)

  • 微信如何返回6.9.9(微信如何返回旧版本)

    微信如何返回6.9.9(微信如何返回旧版本)

  • 索尼xperia1支持人脸支付吗

    索尼xperia1支持人脸支付吗

  • 华为nova10pro支持5G吗(华为nova10pro支持多少倍变焦)

    华为nova10pro支持5G吗(华为nova10pro支持多少倍变焦)

  • 机器学习中的隐变量/潜变量和隐藏空间/潜在空间

    机器学习中的隐变量/潜变量和隐藏空间/潜在空间

  • phpcms不支持fsockopen函数怎么办(php不支持mysql)

    phpcms不支持fsockopen函数怎么办(php不支持mysql)

  • 新建厂房装修费是否计入固定资产
  • 个人所得税的会计科目
  • 出售投资性房地产取得的收入
  • 以前年度费用退回怎么做账
  • 建筑企业异地申报个税
  • 第二季度纳税申报
  • 税控盘280抵扣报税填在
  • 2019年所得税季度增值税怎么报
  • 如何判断开专票还是普票
  • 月末计提工资金额怎么核算
  • 简易计税项目税金要计入成本吗
  • 以房屋抵顶的工程叫什么
  • 专用凭证和通用凭证的联系和区别
  • 购入资产的入账价格一般是以该项资产的什么反应
  • 流动性比率小于3说明什么
  • 公司卖出汽车怎样做账
  • 固定资产所取得的成本
  • 小规模纳税人如何计算增值税
  • 银行存款日记账和现金日记账的区别
  • 餐饮研发费用确认条件
  • 申请双软企业会查员工学历吗
  • 电子普通发票怎么开
  • 三星笔记使用攻略
  • 周转材料属于什么会计分录
  • 一般纳税人出租其2016年4月30日前取得的不动产
  • win11系统开机密码怎么修改
  • php环境配置教程Apace
  • php数组函数输出《咏雪》里有多少"片"字
  • wordpress介绍
  • iframe更改自身src
  • 销售费用属于损益类科目的收入还是费用
  • vue项目eslint配置
  • 金融资产减值损益怎么算
  • vscode调试在哪
  • 分公司?
  • 外贸企业出口退税申报流程
  • 校验码如何查询
  • 开会旅游的费用怎么算
  • 企业没有研发费用怎么做账
  • 公司购买led屏幕做到什么费用
  • 织梦如何添加浮动广告
  • python中myqr的用法
  • mysql各种索引的使用场景
  • 法人治理结构是指明确
  • 员工报销差旅费现金流量表里放在哪里
  • 报销有专票和普票,怎么出分录
  • 购进交通运输服务可以抵扣
  • 代扣缴纳税款会计分录
  • 货代是否负责损失
  • 在外地设办事处需要办什么手续
  • 房地产开发企业资质管理规定
  • mysql闪退怎么回事
  • windows2003r2安装教程
  • win8怎么没有我的电脑
  • 喝了阿胶补血口服液嗜睡
  • 如何下载苹果图书
  • 电脑操作系统win7
  • win10自带邮件怎么登录foxmail账号
  • windowsxp关闭窗口操作方法有哪些
  • wlms.exe是什么
  • win10打开或关闭
  • winxp怎么改壁纸
  • win10在哪里更改软件大小
  • Facebook Open Platform编译FAQ
  • win8 开始
  • bat for do
  • opengl画实体
  • 透视投影的作用
  • nodejss
  • 制作网页需要
  • window.open打开窗口设置背景色
  • jquerycdn
  • android4.4.2升级包
  • 自定义圆角控件
  • jquery点击方法
  • 国家河北税务局官网
  • 如何开通税务系统
  • 汽车购车发票开完票能更改名字吗?
  • 高新企业人才落户北京
  • 国税增值税申报怎么记账凭证填写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设