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

  • 共享相簿 别人可以看到我的相册吗(共享相簿别人能看见我里面的照片吗)

    共享相簿 别人可以看到我的相册吗(共享相簿别人能看见我里面的照片吗)

  • 华为p40pro可以支持三指截屏吗(华为p40pro可以支持65w)

    华为p40pro可以支持三指截屏吗(华为p40pro可以支持65w)

  • 手机微信语音功能在哪里打开(手机微信语音功能用不了怎么回事)

    手机微信语音功能在哪里打开(手机微信语音功能用不了怎么回事)

  • qq彩签别人能看到吗(qq彩签别人可以看到吗)

    qq彩签别人能看到吗(qq彩签别人可以看到吗)

  • ug10.0安装后打不开(ug10.0安装后打不开-68)

    ug10.0安装后打不开(ug10.0安装后打不开-68)

  • 清除单元格内容按什么键(清除单元格内容快捷键是什么)

    清除单元格内容按什么键(清除单元格内容快捷键是什么)

  • livelog是什么文件(live是什么文件啊)

    livelog是什么文件(live是什么文件啊)

  • 图形化用户接口的英文缩写是(图形化的用户界面)

    图形化用户接口的英文缩写是(图形化的用户界面)

  • 苹果11跑分多少

    苹果11跑分多少

  • 百兆路由器支持200兆宽带吗(百兆路由器支持多少兆)

    百兆路由器支持200兆宽带吗(百兆路由器支持多少兆)

  • 主板pci插槽什么用(主板pci插槽什么意思啊)

    主板pci插槽什么用(主板pci插槽什么意思啊)

  • 苹果11截屏怎么设置(苹果11截屏怎么截屏)

    苹果11截屏怎么设置(苹果11截屏怎么截屏)

  • 美版无锁是水货吗(美版无锁区别)

    美版无锁是水货吗(美版无锁区别)

  • 苹果手机电池老化会出现什么情况(苹果手机电池老化充不进去电怎么办)

    苹果手机电池老化会出现什么情况(苹果手机电池老化充不进去电怎么办)

  • 计算机地址可以写成什么格式(计算机地址可以用数字表示称为什么)

    计算机地址可以写成什么格式(计算机地址可以用数字表示称为什么)

  • 华为mate30还是京东方屏幕吗(华为mate 30和)

    华为mate30还是京东方屏幕吗(华为mate 30和)

  • vivo手机出厂密码多少(vivo手机出厂设置密码是多少)

    vivo手机出厂密码多少(vivo手机出厂设置密码是多少)

  • vivo怎么用otg下载歌(vivo怎么用OTG下歌)

    vivo怎么用otg下载歌(vivo怎么用OTG下歌)

  • 华为云空间照片怎么看(华为云空间照片怎么恢复到相册里)

    华为云空间照片怎么看(华为云空间照片怎么恢复到相册里)

  • 华为手机允许安装未知软件的设置在哪(华为手机允许安装未知应用权限在哪里设置)

    华为手机允许安装未知软件的设置在哪(华为手机允许安装未知应用权限在哪里设置)

  • 京东评价不能删除吗(京东评价能不能删掉)

    京东评价不能删除吗(京东评价能不能删掉)

  • 苹果11pro怎么看是不是国行(苹果11pro怎么看流量使用情况)

    苹果11pro怎么看是不是国行(苹果11pro怎么看流量使用情况)

  • 三星note9上市时间(三星note9刚出来的价格)

    三星note9上市时间(三星note9刚出来的价格)

  • excel优秀支持率怎么算(Excel优秀支持率排名怎么算)

    excel优秀支持率怎么算(Excel优秀支持率排名怎么算)

  • 番茄社区怎么看直播(番茄社区从哪里看直播)

    番茄社区怎么看直播(番茄社区从哪里看直播)

  • 爱奇艺自媒体怎么申请(爱奇艺自媒体怎么注册)

    爱奇艺自媒体怎么申请(爱奇艺自媒体怎么注册)

  • 爱奇艺影视会员怎么退订(爱奇艺影视会员可以登陆几个电视?)

    爱奇艺影视会员怎么退订(爱奇艺影视会员可以登陆几个电视?)

  • 如何打印word文档(如何打印word文档中隐藏的内容)

    如何打印word文档(如何打印word文档中隐藏的内容)

  • 在win7中,右键没有新建文本文档选项该怎么办?(win7 右键 没反应怎么办)

    在win7中,右键没有新建文本文档选项该怎么办?(win7 右键 没反应怎么办)

  • 腾讯电脑管家网页广告过滤应该怎么弄?(腾讯电脑管家网址多少)

    腾讯电脑管家网页广告过滤应该怎么弄?(腾讯电脑管家网址多少)

  • 织梦CMS地图sitemap.html更改路径和模板(织梦cms怎么样)

    织梦CMS地图sitemap.html更改路径和模板(织梦cms怎么样)

  • Mybatis 入门实战(1)--简介(mybatis入门菜鸟教程)

    Mybatis 入门实战(1)--简介(mybatis入门菜鸟教程)

  • 新公司如何申报城市建设税
  • 从价计税消费税计算公式
  • 进口关税怎么做分录
  • 研发费用加计扣除是什么意思啊
  • 应收账款可以挂其他应收款吗
  • 软件即征即退的发票怎么开
  • 交通补贴税前扣除标准
  • 租赁负债的计量
  • 电子发票手动导出的发票在哪里
  • 领备用金时会计怎么做分录
  • 转让长期股权投资交什么税
  • 生产共同费用每个月都有摊销吗?
  • 公司注销后如何申请强制执行
  • 税务局会限制每月交税吗
  • 投资收益所得税税前扣除
  • 广告制作税收编码怎么填
  • 企业取得的不征税收入需要在几年内花出去
  • 降温费和取暖费标准
  • 对公账户管理费怎么收
  • 工程建设劳务费怎么算
  • 车辆保险抵扣会计分录
  • 财务计提个人缴纳社保部分怎么记账?
  • 什么收入不需要交税0税
  • 未完工产品成本计算公式
  • win7防火墙设置不了
  • win10系统电脑怎么连接wifi
  • 已认证未付款可以退款吗
  • 财务部门产生的费用入什么?
  • 固定资产减值损失属于什么科目
  • php foreach二维数组
  • 发票开具的常见错误
  • spring boot 接受参数
  • 红字增值税专用发票信息表怎么填
  • 林木业折旧年限
  • php 上传文件
  • php自动化脚本
  • 办理组织机构代码证需要什么材料
  • Vue3入门笔记----登录功能
  • 法人借钱给公司,公司可以直接转给法人吗
  • 24张图攻克border-image
  • 小规模纳税人的企业所得税怎么算
  • 制作费开票属于什么编码类型
  • 建筑公司内账收什么费用
  • 税收类型增值税有哪些
  • 工会经费多久缴纳一次
  • 名为股权转让实为房地产转让
  • 以前年度损益调整是什么意思
  • 单位保险柜里都放些什么
  • 个税速算扣除数2023
  • 股东以固定资产出资
  • 营改增账务处理实例
  • 企业商业汇票到期款项存入银行
  • 研发费用凭证附件
  • 小规模纳税人每个季度超过了30万怎么办
  • 环保局罚款记什么科目
  • MySQL slave_net_timeout参数解决的一个集群问题案例
  • Winxp系统打不开浏览器
  • linux git教程
  • linux系统垃圾怎么清理
  • ora01804怎么解决windows
  • 如何设置windows启动密码
  • mac的dns怎么设置最快
  • windows7开机启动
  • hookproxy.dll
  • linux u盘 readonly
  • 微软开始推送win10
  • linux系统硬盘分区类型
  • 安卓sdk目录下用来存放各种版本sdk的目录是
  • Android自定义控件高级进阶与精彩实例
  • Unity3D游戏开发培训课程大纲
  • jQuery实现表格文本框淡入更改值后淡出效果
  • 基于专业性的家校双向互动,需要家长的学校教育参与
  • python发送短信到手机
  • jquery.js插件
  • 加油站怎么收税
  • 国家税务网上办税
  • 北京国税地税合并
  • 一般纳税人服务费是几个点
  • 五四新文化运动究竟新在哪里
  • 深圳车牌注销需要车辆到场吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设