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

  • opporeno4se充电器多少瓦(OPPOReno4se充电器功率)

    opporeno4se充电器多少瓦(OPPOReno4se充电器功率)

  • 魅族18s是屏幕指纹吗(魅族18s的屏幕)

    魅族18s是屏幕指纹吗(魅族18s的屏幕)

  • 淘宝如何实名制认证(淘宝怎么实名呢)

    淘宝如何实名制认证(淘宝怎么实名呢)

  • 怎样关闭微博微公益(怎样关闭微博微店)

    怎样关闭微博微公益(怎样关闭微博微店)

  • 联想指纹锁怎么设置指纹(联想指纹锁怎么恢复出厂设置)

    联想指纹锁怎么设置指纹(联想指纹锁怎么恢复出厂设置)

  • 华为p40是否有呼吸灯呢(华为p40pro有没有智能呼叫)

    华为p40是否有呼吸灯呢(华为p40pro有没有智能呼叫)

  • 如何激活win7(win7激活工具免费版)

    如何激活win7(win7激活工具免费版)

  • 手机充电摸起来麻麻的(手机充电摸起来麻麻的对身体有)

    手机充电摸起来麻麻的(手机充电摸起来麻麻的对身体有)

  • 手机格式化还能查出来东西吗(手机格式化还能被机器查出来吗)

    手机格式化还能查出来东西吗(手机格式化还能被机器查出来吗)

  • ipad pro 11微信无法免提(ipad微信无法使用)

    ipad pro 11微信无法免提(ipad微信无法使用)

  • 电脑怎么弄文件夹(电脑怎么弄文件压缩包)

    电脑怎么弄文件夹(电脑怎么弄文件压缩包)

  • 华为手机怎么关闭手机屏保(华为手机怎么关闭广告)

    华为手机怎么关闭手机屏保(华为手机怎么关闭广告)

  • 苹果6s是什么基带(苹果6s是啥型号)

    苹果6s是什么基带(苹果6s是啥型号)

  • 苹果怎么回车换行(iphone回车键换行在哪里)

    苹果怎么回车换行(iphone回车键换行在哪里)

  • 拼多多订单待确认是什么意思(拼多多订单待确认要多久)

    拼多多订单待确认是什么意思(拼多多订单待确认要多久)

  • 为什么新注册抖音没有观看量(为什么新注册抖音号没有最新特效)

    为什么新注册抖音没有观看量(为什么新注册抖音号没有最新特效)

  • wifi下载速度快打开网页慢(wifi下载速度快但是看视频卡)

    wifi下载速度快打开网页慢(wifi下载速度快但是看视频卡)

  • 为什么抖音打不开显示网络连接错误(为什么抖音打不了视频电话)

    为什么抖音打不开显示网络连接错误(为什么抖音打不了视频电话)

  • 荣耀v20拍照支持防抖吗(荣耀v20拍摄效果如何)

    荣耀v20拍照支持防抖吗(荣耀v20拍摄效果如何)

  • 勿扰模式对方什么提示(勿扰模式对方听到什么提示)

    勿扰模式对方什么提示(勿扰模式对方听到什么提示)

  • usb和usb-c区别(usbc和usbtype-c的区别)

    usb和usb-c区别(usbc和usbtype-c的区别)

  • 招行app为什么打不开(招商银行app打开无响应)

    招行app为什么打不开(招商银行app打开无响应)

  • nova5pro什么时候上市(nova5pro什么时候停产的)

    nova5pro什么时候上市(nova5pro什么时候停产的)

  • 装个路由器就有wifi吗(装上路由器就有wi-fi吗)

    装个路由器就有wifi吗(装上路由器就有wi-fi吗)

  • wxid反查微信id方法(微信号查id)

    wxid反查微信id方法(微信号查id)

  • 启用浏览器的 “TCP快速打开”(开启浏览器模式)

    启用浏览器的 “TCP快速打开”(开启浏览器模式)

  • 个人出租房屋的个人所得税税率
  • 赠与税是什么税种
  • 城建税和教育费附加怎么写分录
  • 财务管理税后利息率计算公式
  • 小规模暂估入库的账务处理
  • 忘记先抄税再申报了怎么办
  • 税收制度具体内容
  • 外币资产汇兑损益计算
  • 不随物品一起销售的包装物怎么做账?
  • 政府制定优惠政策
  • 外购材料费用可能计入
  • 事业单位服务收入包括
  • 企业融资租赁设立条件
  • 房地产开发企业预缴增值税
  • 营改增后向境外提供有偿服务是否需要缴纳增值税?
  • 城建税按实际缴纳增值税
  • 免租要怎么交税
  • 纳税主要是哪些方面
  • 私自安装路灯违法吗?
  • 产值和营业收入哪个数值大
  • 私募股权投资基金管理办法最新
  • 成品油零售加油站增值税规定
  • 合同的情势变更是什么
  • PHP:oci_statement_type()的用法_Oracle函数
  • php创建文件夹和文件
  • 固定资产前期费用计入
  • 签了购房合同贷款办不下来怎么办
  • 固定资产清理的审计目标不包括
  • yolov1网络结构图详解
  • 应付账款账户的期初贷方余额100元
  • 如果收到房租的说说
  • php的foreach
  • 跨境电商小规模运营负责那些工作
  • 线程池中的一个线程执行完一个任务后
  • 运费计入什么会计分录
  • mongodb怎么导入文件
  • 驱动开发:内核是什么
  • python 逻辑取反
  • 个体定额和不定额有什么区别
  • 当期进项加计额怎么填
  • 工业总产值和收入产值哪个大
  • 光盘盒属于什么税收分类
  • sql server 2008怎么使用sql语句
  • 小规模纳税人是什么意思
  • 跨年度冲收入,冲成本分录如何做?
  • 辞退补偿的账务处理
  • 充值卡赠送金额属于什么性质
  • 个人独资企业个税怎么交
  • 免抵税额要交税吗
  • 发票金额跟实际金额为什么不一样
  • 收到社会保险基金结算表
  • 一般纳税人混凝土税负率
  • 专业收账公司合法吗
  • 计入当期损益是不是计入三大期间费用
  • 应收帐款 发票
  • 如何使用命令查找电脑IP地址
  • windows防病毒
  • macbookair安装rosetta
  • win7系统如何查看文件扩展名
  • linux扩容inode
  • 腾讯电脑管家免费安装下载
  • win10系统字体不清晰
  • windows8运行窗口怎么打开
  • unity摄像机怎么调出来
  • jquery图片轮播视频
  • linux启动的过程
  • nodejs教学视频
  • jquery html函数
  • ASP小贴士/ASP Tips javascript tips可以当桌面
  • python如何用pi
  • 浙江省网上税务局app下载
  • 医保12333查询系统
  • 高铁票抵扣进项能抵扣吗
  • 医疗保险在手机上交不上是怎么回事
  • 如何将个税人员信息改为非正常
  • 江苏税务社保缴纳查询缴费记录
  • 开电子发票流程步骤
  • 新车缴纳车船税减免性质是什么
  • 简述纳税人与负税的区别
  • 网上预约税务局怎么弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设