Web——Request转发和Response重定向

• Request请求转发

	○ 请求转发§ 请求转发(forward):一种在服务器内部的资源跳转方式§ ○ 实现方式:§ request.getRequestDispatcher("资源B路径").forward(request,response);○ 请求转发资源间共享数据:使用Request对象§ void setAttribute(String name,Object object)存储数据到request域中§ Object getAttribute(String name)根据key,获取值§ void removeAttribute(String name)根据key,删除键值对○ 请求转发的特点:§ 浏览器地址栏路径不发生变化§ 只能转发到当前服务器的内部资源§ 一次请求,可以再转发的资源间使用request共享数据
@WebServlet("/req5")
public class RequestDemo5 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5....");//存储数据void setAttribute(String name, Object object)request.setAttribute("msg", "hello");//请求转发request.getRequestDispatcher("/req6").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/req6")
public class RequestDemo6 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo6...");//删除数据//request.removeAttribute("msg");//获取数据Object getAttribute(String name)Object msg = request.getAttribute("msg");System.out.println(msg);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
执行过程:
运行tomcat

在这里插入图片描述

	点击链接

在这里插入图片描述

输入url 按回车

在这里插入图片描述

在这里插入图片描述

• Response

• Response设置响应数据功能介绍○ 响应数据分为3个部分:§ 响应行:HTTP/1.1 200 OK□ Voids etStatus(intsc)设置响应状态码§ 响应头:Content-Type:text/html□ Void setHeader(String name,String value):设置响应头键值对§ 响应体:<html><head></head><body></body></html>PrintWritergetWriter()获取字符输出流ServletOutputStreamgetOutputStream()获取字节输出流
• Response完成重定向○ 重定向(Redirect):一种资源跳转方式○ 实现方式§ void setStatus(int sc)□ response.setStatus(302);§ void setHeader(String name,String value)□ response.setHeader("location","/request-demo/resp2");○ 简化实现重定向的方式§ response.sendRedirect("/request-demo/resp2");○ 重定向的特点§ 浏览器地址栏路径发生改变§ 可以重定向到任意位置的资源(服务器内部、外部均可)§ 两次请求,不能在多个资源使用request共享数据○ 路径问题□ 浏览器使用:需要加虚拟目录(项目访问路径)□ 服务端使用:不需要加虚拟目录
@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp1...");//重定向//1.设置响应状态码 void setStatus(int sc)/*response.setStatus(302);//2.设置响应头 void setHeader(String name, String value)response.setHeader("location", "/request-demo/resp2");*///简化方式完成重定向//动态获取虚拟目录String contextPath = request.getContextPath();response.sendRedirect(contextPath + "/resp2");
//        response.sendRedirect("https://www.itcast.cn");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/resp2")
public class ResponseDemo2 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp2...");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
执行过程	:
启动tomcat,如果已经启动则重运行即可

在这里插入图片描述

点击链接

在这里插入图片描述

输入url,按回车

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

if else if语句格式_闲话Python之条件语句IF

我发现好像哪里都会有if&#xff0c;下面就来聊聊Python当中if的常见用法。最简单的格式就是&#xff0c;只有一个if&#xff0c;比如下面这个&#xff1a;my_deposit代码中的my_deposit50000等效于my_depositmy_deposit50000his_deposit-50000则等效于his_deposithis_deposit-…

delphi下实现ribbon界面的方法(一)

delphi下实现ribbon界面的方法&#xff08;一&#xff09; office 2007和2010是现在大多数人经常使用的办公软件&#xff0c;几乎每天都在使用。因此&#xff0c;在软件中如果使用类office的界面样式&#xff0c;客户用着非常习惯&#xff0c;而且学习曲线低&#xff0c;office…

Boost库之function的使用

http://www.cnblogs.com/hujian/archive/2009/06/04/1495813.html Boost库的function是一组函数对象包装类的模板&#xff0c;实现了一个泛型的回调机制。Boost库的function与函数指针相比&#xff0c;优点在于它允许用户在目标的实现上拥有更大的弹性&#xff0c;即目标既可以…

Web笔记——Filter过滤器

○ 概念&#xff1a;Filter表示过滤器&#xff0c;是JavaWeb三大组件(Servlet、Filter、Listener)之一。 ○ 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 ○ 过滤器一般完成一些通用的操作&#xff0c;比如&#xff1a;权限控制、统一编码处理、敏感…

mysql修改语句_序言:MySQL与Navicat安装Tips

一、数据库相关的基础知识1.1 数据分析师主要集中在select高效查找上&#xff0c;纯粹的底层运维就不需要太关注&#xff1b;1.2 数据库与表类比sheet是表&#xff0c;整个Excel文件是一个数据库&#xff1b;1.3 行与列1.4 主键&#xff08;人的身份证&#xff09;表的主键不做…

java office文件加水印_永中Office与统一操作系统UOS完成适配,开辟高效智能办公新领域...

近日&#xff0c;永中Office办公软件完成了与统一操作系统UOS的适配工作&#xff0c;此次成功适配表明信息技术应用创新操作系统与办公软件兼容性能优良、运行稳定&#xff0c;大幅提升用户在信创计算机上的办公体验&#xff0c;可为政企提供安全可靠的IT环境。永中Office是由永…

ContentType的类型

早上做了下载的功能&#xff0c;涉及到ContentType的类型&#xff0c;特地上网查了下&#xff0c;收集了这些类型  ".*""application/octet-stream"  ".001""application/x-001"  ".301""application/x-301"…

c3p0依赖导入失败问题

今天在学习c3p0的时侯&#xff0c;导入依赖后变红然后去maven仓库[&#xff08;https://mvnrepository.com/artifact/com.mchange/c3p0&#xff09;]中找&#xff0c;发现是groupId的问题。 更改后正常

open函数中O_CLOEXEC标志的开关

Linux中&#xff0c;文件描述符有一个属性&#xff1a;CLOEXEC&#xff0c;即 当调用exec&#xff08;&#xff09;函数成功后&#xff0c;文件描述符会自动关闭。在以往的内核版本&#xff08;2.6.23以前&#xff09;中&#xff0c;需要调用 fcntl(fd, F_SETFD, FD_CLOEXEC) 来…

c++ char*初始化_C开发实战-深入理解指针

Visual Studio 2019 解决方案的多项目应用在讲述变量&#xff0c;数据类型&#xff0c;运算符和表达式以及程序流程控制&#xff0c;数组&#xff0c;函数的相关内容&#xff0c;所有的代码都放在解决方案c-core的c-core-foundational项目下。如果你有其他编程语言经验&#xf…

java游戏服务器面试_我做游戏开发这八年

点击上方“CSDN学院精品课”&#xff0c;选择“置顶公众号”CSDN学院精品课 IT人的职业提升平台作者 | kakashi8841简述这篇文章并不是想教会大家如何开发游戏&#xff0c;更不能教大家如何成为技术总监。而是分享我一路做开发的一些经历或心得体验。与编程擦肩而过2004年&…

vb.net 与 c# 的switch ... case ...的一个重要区别

vb.net 与 c# 的switch ... case ...的一个重要区别 与vb.net中case可以写比较表达式>,<,等&#xff0c;但在c# &#xff08;3.0及以下&#xff0c;不知道以后会不会加上&#xff09;中就没有这样的功能 看以下vb.net代码&#xff0c;确是c#的switch case没有的 [vb] vie…

SSM(Spring、SpringMVC、MyBatis)框架笔记——Spring入门

一、Spring简介 Spring是分层的Java SE/EE应用full-stack 轻量级开源框架&#xff0c; 以IoC&#xff08;Inverse Of Control&#xff1a;反转控制&#xff09;和AOP&#xff08;Aspect Oriented Programming&#xff1a;面向切面编程&#xff09;为内核。提供了展现层SpringM…

c++ 字符串拼接_字符串拼接新姿势:StringJoiner

来自&#xff1a;Hollis(微信号&#xff1a;hollischuang)在为什么阿里巴巴不建议在for循环中使用””进行字符串拼接一文中&#xff0c;我们介绍了几种Java中字符串拼接的方式&#xff0c;以及优缺点。其中还有一个重要的拼接方式我没有介绍&#xff0c;那就是Java 8中提供的S…

html5 内嵌网页_如何分析并优化网页的性能?新梦想软件测试

一个网站的网页是好是坏&#xff0c;往往是体现在速度和高度两个方面&#xff0c;速度是网页所展示出来的时间&#xff0c;能否为浏览用户节约时间。高度则是一个网站网页本身的质量&#xff0c;能否为浏览用户带来真正的好体验。然而看似简单的两个点&#xff0c;但是背后要实…

A20 文件系统预装APK

1. 将需要预装的apk放入 android4.2/device/softwinner/wing-common/apk/ 或者 android4.2/device/softwinner/wing-common/preinstallapk/ 路径下 2. 如果apk有依赖的so文件&#xff0c;需要将so文件放入 android4.2/device/softwinner/wing-common/apklib/ 路径下。…

怎么修改file文件框的无文件提示_使用LativeLink时,DO文件编制步骤

大侠好&#xff0c;欢迎来到FPGA技术江湖&#xff0c;江湖偌大&#xff0c;相见即是缘分。大侠可以关注FPGA技术江湖&#xff0c;在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源&#xff0c;或者一起煮酒言欢。今天和大侠简单聊聊使用LativeLink时&#xff0c;…

Spring笔记——数据源配置

常见的数据源&#xff08;连接池&#xff09;包括&#xff1a;DBCP、C3P0、BoneCP、Druid等接下来以C3P0为例讲述一下spring配置数据源的过程数据源的开发步骤 ①导入数据源的坐标和数据库驱动坐标 ②设置数据源的基本连接数据&#xff0c;将其放入jdbc.properties文件中 ③app…

间歇性掉帧卡顿_电脑卡顿问题靠它解决,我只能帮你到这儿了

因为不可抗力的原因&#xff0c;我们都要在家里呆上一段时间&#xff0c;在这期间之中如果电脑出现问题可是一件非常糟心的事情&#xff0c;因为没有人会去给你上门维修&#xff0c;线下门店又关门大吉&#xff0c;一切只能靠自己。抢救一下电脑最常见的问题就是卡顿&#xff0…

Boost智能指针——shared_ptr

boost::scoped_ptr虽然简单易用&#xff0c;但它不能共享所有权的特性却大大限制了其使用范围&#xff0c;而boost::shared_ptr可以解决这一局限。顾名思义&#xff0c;boost::shared_ptr是可以共享所有权的智能指针&#xff0c;首先让我们通过一个例子看看它的基本用法&#x…