请求的转发

什么是请求的转发?

请求转发是指,服务器收到请求时,从一次资源转到另一个资源的操作叫做请求转发。

部分代码

//        获取请求的参数(办事的材料)查看
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八 | 请求转发的代码实现【详解】的更多相关文章

  1. javaWeb中request请求转发和response重定向

    1.访问资源 运用forward方法只能重定向到同一个Web应用程序中的一个资源. 而sendRedirect方法可以让你重定向到任何URL.  2.request.get Forward代码中的&q ...

  2. JAVA记录-Servlet RequestDispatcher请求转发

    RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...

  3. 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权

    原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...

  4. PHP扩展代码结构详解

    PHP扩展代码结构详解: 这个是继:使用ext_skel和phpize构建php5扩展  内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/manual/ ...

  5. 【iOS 使用github上传代码】详解

    [iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...

  6. Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  7. Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  8. fiddler请求报文的headers属性详解

    fiddler请求报文的headers属性详解 headers的属性包含以下几部分. (1)Cache头域 在Cache头域中,通常会出现以下属性. 1. Cache-Control 用来指定Resp ...

  9. Netty学习——服务器端代码和客户端代码 原理详解

    服务器端代码和客户端代码 原理详解:(用到的API) 0.Socket 连接服务器端的套接字 1.TcompactProtocol   协议层2.TFrameTransport   传输层3.THsh ...

  10. led指示灯电路图大全(八款led指示灯电路设计原理图详解)

    led指示灯电路图大全(八款led指示灯电路设计原理图详解) led指示灯电路图(一) 图1所示电路中只有两个元件,R选用1/6--1/8W碳膜电阻或金属膜电阻,阻值在1--300K之间. Ne为氖泡 ...

随机推荐

  1. 线性关系和非线性关系在.net中的应用

    在数学中,线性关系和非线性关系是描述两个变量之间函数关系的两种不同类型. 线性关系是指两个变量之间可以用一条直线来表示的关系.具体来说,如果存在一个一次函数 y = kx + b,其中k和b是常数,使 ...

  2. spring多数据源动态切换的实现原理及读写分离的应用

    简介 AbstractRoutingDataSource是Spring框架中的一个抽象类,可以实现多数据源的动态切换和路由,以满足复杂的业务需求和提高系统的性能.可扩展性.灵活性. 应用场景 多租户支 ...

  3. Python实现输入三个整数x,y,z,请把这三个数由小到大输出;

    num1=input('请输入第一个数,x:') num2=input('请输入第二个数,y:') num3=input('请输入第三个数,z:') if num1>num2: # if 语句判 ...

  4. 【Unity3D】素描特效

    1 非真实渲染 ​ 法线贴图和凹凸映射中讲述了普通光照的渲染原理,实现的效果比较贴近真实世界(照相写实主义,Photorealism),非真实渲染(Non-Photorealism Rendering ...

  5. api接口怎么使用

    API接口的使用在当今的软件开发中非常普遍,它允许不同的应用程序或服务之间进行数据交换和功能交互.API接口使得开发人员能够将不同的系统或平台集成在一起,以实现更复杂的功能和应用.本文将详细介绍API ...

  6. CodeForces 1367D Task On The Board

    题意 给一个字符串\(t\),和一个长度为\(m\)的数组\(b[]\),要求构造一个字符串\(s\),\(s\)中的字符都出现在\(t\)中,对于\(s[i]\)而言,对于任意\(j\),如果有\( ...

  7. Solution -「洛谷 P3267」「JLOI 2016」「SHOI 2016」侦察守卫

    Description Link. 给你一棵树,放置守卫在某个点上面需要一定代价和一定的有效范围.让你覆盖若干指定点,求最小代价 Solution 算法标签: $\ \ \ \ \ \ \ \ \ $ ...

  8. Redis 命令工具

    --- Redis 命令工具 --- redis-server Redis 服务器启动命令 redis-cli shutdown 停止服务 redis-benchmark:性能测试工具,用于检测 Re ...

  9. 11G手动建库

    ◆◆◆11G手动建库◆设置环境变量export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.4 ...

  10. options has an unknown property ‘contentBase‘

    options has an unknown property 'contentBase' 踩坑新版webpack-dev-serve 新版的contentBase取消了替代属性是static