热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Java中Request请求转发详解

这篇文章主要介绍了Java中Request请求转发详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

直接来,RequestDemo5代码,get请求和post请求都请求转发了,转发到RequestDemo6请求

 RequestDemo5代码

package com.lingaolu.request;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高禄
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {
 
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo5进来了......post");
 RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestDemo6");
 requestDispatcher.forward(request,response);
 }
 
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo5进来了......get");
 RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestDemo6");
 requestDispatcher.forward(request,response);
 
 }
}

RequestDemo6代码

package com.lingaolu.request;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高禄
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo6")
public class RequestDemo6 extends HttpServlet {
 
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo6进来了......post");
 }
 
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo6进来了......get");
 }
}

浏览器访问/requestDemo5接口

控制台输出

从以上结果可以看出

请求过后我们的浏览器地址还是http://localhost:8080/myRequest/requestDemo5

从浏览器的F12调试页面可以看出,转发只是一次请求,只有/requestDemo5请求,说明,可共享数据Request共享数据

我们用Postman进行post请求一下

后台输出:

可见,get请求的转发会转发到get请求,post请求的转发,会转发到post请求

我们改一下RequestDemo5的代码,转发到百度

package com.lingaolu.request;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高禄
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {
 
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo5进来了......post");
 RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestDemo6");
 requestDispatcher.forward(request,response);
 }
 
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 System.out.println("requestDemo5进来了......get");
 RequestDispatcher requestDispatcher = request.getRequestDispatcher("https://www.baidu.com/");
 requestDispatcher.forward(request,response);
 
 }
}

浏览器请求

 后台输出:

从后台输出看出,requestDemo5请求进来了,从浏览器看出,转发失败了,而且从实际转发的路径上看,因为虚拟路径,所以请求转发只能转发到当前服务器内部的资源

请求转发的特点总结:(与之对应的------重定向的详情与特点)

  • 浏览器地址栏路径不发生变化
  • 转发只是一次请求,可共享数据Request共享数据
  • 哪种请求方式只能转发到那种请求方式
  • 请求转发只能转发到当前服务器内部的资源

到此这篇关于Java中Request请求转发详解的文章就介绍到这了,更多相关Java Request请求转发内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • JMeter使用指南与性能测试实践
    本文详细介绍了JMeter的功能特点及应用场景,包括其作为开源、免费且基于Java开发的压力测试工具的优势。文章还涵盖了JMeter的安装配置过程以及如何进行简单的性能测试,旨在帮助初学者快速掌握JMeter的使用。 ... [详细]
  • Elasticsearch基础操作指南:使用Postman进行数据管理
    本文将介绍如何利用Postman工具执行基本的日志写入和数据管理操作。通过本教程,您将了解如何连接至Elasticsearch服务,创建索引,存储及检索数据。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 百度搜索结果链接提取工具 UrlGetter V1.43
    该工具专为获取百度搜索引擎的结果页面中的网址链接而设计,能够解析并转换为原始URL。通过正则表达式匹配技术,精准提取网页链接,并提供详细的使用说明和下载资源。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • HTTP中的Chunked编码与Content-Length的区别及应用场景
    本文探讨了在HTTP协议中,当使用Transfer-Encoding为chunked时为何无需设置Content-Length,以及这种编码方式的具体实现和优势。 ... [详细]
  • 本文旨在介绍一系列提升工作效率的浏览器插件和实用小工具,帮助用户在日常工作中更加便捷高效。内容由原作者授权发布。 ... [详细]
  • 本文探讨了如何在Sitecore 9环境中通过Postman使用API密钥发送请求,包括解决常见错误的方法。 ... [详细]
author-avatar
123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有