【Javaweb】Servlet八 | 请求转发的代码实现【详解】
请求的转发
什么是请求的转发?
请求转发是指,服务器收到请求时,从一次资源转到另一个资源的操作叫做请求转发。

部分代码
// 获取请求的参数(办事的材料)查看
String username=req.getParameter("username");
System.out.println("在Servlet1(柜台1)中查看参数(材料)"+username);
// 给材料 盖一个章,并传递到servlet2(柜台2)去查看
req.setAttribute("key1","柜台1的章");
// 问路,servlet2(柜台2)怎么走
/*
* 请求转发必须以斜杠打头, / 斜杠表示地址为:http://ip:port/工程名/ ,映射到idea代码的web目录
**/
RequestDispatcher requestDispatcher=req.getRequestDispatcher("/Servlet2"); // 走向servlet2(柜台2)
requestDispatcher.forward(req,resp);
// 获取请求的参数(办事的材料)查看
String username=req.getParameter("username");
System.out.println("在Servlet2(柜台2)中查看参数(材料)"+username); // 查看 柜台1 是否有盖章
Object key1=req.getAttribute("key1");
System.out.println("柜台1是否有章"+key1);
// 处理自己的业务
System.out.println("Servlet2 处理自己的业务");
实现功能

也可以直接用网址传值


请求转发的特点
1、浏览器地址栏没有变化
2、请求转发虽然访问了两个资源,但这是一次请求
3、他们共享Request域中的数据
requestDispatcher.forward(req,resp);//这句代码接收
4、可以转发到WEB-INF目录下(转发可以实现,但浏览器不可以实现)
/*
* 请求转发必须以斜杠打头, / 斜杠表示地址为:http://ip:port/工程名/ ,映射到idea代码的web目录
**/
RequestDispatcher requestDispatcher=req.getRequestDispatcher("/WEB-INF/form.html");
5、是否可以访问工程以外的资源————
【相当于直接在 http://ip:port/ 后面加地址,所以访问不到 】
【Javaweb】Servlet八 | 请求转发的代码实现【详解】的更多相关文章
- javaWeb中request请求转发和response重定向
1.访问资源 运用forward方法只能重定向到同一个Web应用程序中的一个资源. 而sendRedirect方法可以让你重定向到任何URL. 2.request.get Forward代码中的&q ...
- JAVA记录-Servlet RequestDispatcher请求转发
RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...
- 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...
- PHP扩展代码结构详解
PHP扩展代码结构详解: 这个是继:使用ext_skel和phpize构建php5扩展 内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/manual/ ...
- 【iOS 使用github上传代码】详解
[iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...
- Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- fiddler请求报文的headers属性详解
fiddler请求报文的headers属性详解 headers的属性包含以下几部分. (1)Cache头域 在Cache头域中,通常会出现以下属性. 1. Cache-Control 用来指定Resp ...
- Netty学习——服务器端代码和客户端代码 原理详解
服务器端代码和客户端代码 原理详解:(用到的API) 0.Socket 连接服务器端的套接字 1.TcompactProtocol 协议层2.TFrameTransport 传输层3.THsh ...
- led指示灯电路图大全(八款led指示灯电路设计原理图详解)
led指示灯电路图大全(八款led指示灯电路设计原理图详解) led指示灯电路图(一) 图1所示电路中只有两个元件,R选用1/6--1/8W碳膜电阻或金属膜电阻,阻值在1--300K之间. Ne为氖泡 ...
随机推荐
- [django]路由变量与正则表达式
示例: urlpatterns = [ path('detail.<int:id>.html', detailView, name='detail'), ] 路由变量的类型 示例路由配置了 ...
- 【python笔记】高阶函数map、filter、reduce
前言 map().reduce().filter()是python的三个高阶函数.所谓高阶函数,指的是将函数作为参数并返回函数作为结果的函数.下面代码的sing_ready只是一个简单高阶函数示例: ...
- servlet系列:简介和基本使用以及工作流程
目录 一.简介 二.Servlet实现 三.基本使用 1.引入pom依赖 2.实现Servlet规范,重写service方法 3.配置web.xml 4.配置Tomcat 6.运行 四.Servlet ...
- 为何 Linus 一个人就能写出这么强的系统,中国却做不出来?
前言 知乎上有一个提问:为何 Linus 一个人就能写出这么强的系统,中国却做不出来? ↓↓↓ 今天,我们就这个话题,一起来做个讨论. 不知道大家是怎么看这个问题的?是美国人更聪明吗,所以才能写出这么 ...
- 10款Visual Studio实用插件
前言 俗话说的好工欲善其事必先利其器,安装一些Visual Studio实用插件对自己日常的开发和工作效率能够大大的提升,避免996从选一款好的IDE实用插件开始.以下是我认为比较实用的Visual ...
- Vue源码学习(五):<templete>渲染第四步,生成虚拟dom并将其转换为真实dom
好家伙, 前情提要: 在上一篇我们已经成功将ast语法树转换为渲染函数 现在我们继续 1.项目目录 代码已开源https://github.com/Fattiger4399/analytic ...
- Solution Set -「ABC 197」
「ABC 197A」Rotate Link. 略. #include<bits/stdc++.h> using namespace std; int main(){ char a,b,c; ...
- CSS 多行文本超链接下划线动效
先看效果 乍一看,是不是感觉很简单,仔细一瞅发现事情好像没有那么简单. 如果十分钟还没想出怎么实现,那就把简历上的"精通css"改成"了解css"-- 大部分人 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇
1.简介 上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.划取字段操作 划取字段操 ...
- 【vulnhub】——DC-9靶机
[vulnhub]--DC-9靶机 1. 主机发现 扫描kali主机C段(Kali和DC-9主机在同一个网关下): 发现主机为192.168.108.146,进行详细端口扫描: 可以看到靶机开了一个s ...