request和response简介
文章目录
- 一、request和response介绍
- 二、request对象
- 1. 获取请求参数
- 2.请求转发
- 3.域对象
- 三、response对象
- 1.向客户端发送数据
- 2.实现重定向
一、request和response介绍
request是代表Http请求信息的对象,其中封装了浏览器向服务器发送的请求信息,将request传递给service方法,在处理请求的过程中,可以通过request对象获取请求相关的信息。
response对象是代表Http响应信息的对象,其中将会封装服务器向浏览器做出的响应信息,将response传递给service方法,在处理请求的过程中,如果有任何数据要发送给浏览器,可以通过response获取流进行发送。
response.getWriter();
response.getOutputStream();
二、request对象
1. 获取请求参数
(1)什么是请求参数?
通过浏览器向服务器发送请求时,在请求中可以携带一些数据,这些数据就称之为请求参数,例如:http://localhost/day10/RequestDemo1?user=张三&like=篮球&like=足球&age=18
(2)如何获取请求参数
request.getParameter(String paramName);
-- 通过请求参数的名字,获取对应的参数值。返回值是一个字符串。
request.getParameterValues(String paramName);
-- 通过请求参数的名字,获取对应的所有参数值组成的数组。
因此,以后获取单值的参数时,推荐使用getParameter方法。
如果获取的多值的参数(即一个参数名对应多个参数值),推荐使用getParameterValues方法
//获取请求参数(user和like)
String user = request.getParameter("user");
System.out.println("user="+user);String like = request.getParameter("like");
System.out.println("like="+like);String[] likes = request.getParameterValues("like");
System.out.println( "likes="+ Arrays.toString( likes ) );
2.请求转发
(1)请求转发是服务器内部资源的一种跳转方式,即当浏览器发送请求访问服务器中的某一个资源时,该资源将请求转交给另外一个资源进行处理的过程,就叫做请求转发。请求转发和重定向都是资源的跳转方式,但是跳转的过程有所不同。
(2)请求转发的特点:
- 请求转发前后是一次请求、一次响应。
- 请求转发前后,浏览器地址栏地址不会发生变化(转发是服务器内部的跳转,浏览器看不到)。
- 请求转发前后的request对象是同一个(因为请求只有一次,服务器根据一次请求,只会创建一个request对象,转发前后都需要request,所以只能在转发时,将request对象传递给转发后的那个资源)。
- 请求转发只能在同一个web应用内部中的两个资源之间进行转发。即转发前后的两个资源必须属于同一个web应用。
3.域对象
(1)request在实现转发时,通过request.setAttribute方法和request.getAttribute方法带数据到目的地时,就是通过request对象中的map集合带数据,这个request对象上的map集合以及request对象所在的范围即称之为是一个域对象。如果一个对象具备可以被访问的范围,通过这个对象上的map集合可以在整个范围内实现数据的共享。这样的对象就叫做域对象。在request对象上提供了往域对象中存数据的方法以及取数据的方法:
request.setAttribute(String attrName, Object attrValue);
-- 将属性存入request域中(request对象的map集合里),其中属性名只能是字符串,属性值可以是任意类型。
request.getAttribute(String attrName)
-- 根据属性名从request域中获取对应的属性值。返回值是一个Object。
(2)equest域对象所具备的三大特征:
生命周期:一次请求开始时,会创建代表请求的request对象,在一次请求结束时(响应已完成),会销毁request对象。
作用范围:一次请求范围内(由于请求转发前后是一次请求,所以在请求转发前后可以通过request域带数据到目的地:如果是重定向,由于重定向前后是两次请求,request对象也不是同一个,因此在重定向前后不能通过request域带数据。)
主要功能:带数据到目的地。
三、response对象
1.向客户端发送数据
PrintWriter response.getWriter() – 字符流
ServletOuptputStream response.getOutputStream() – 字节流
PrintWriter out = response.getWriter();
out.write(“hello…”);
2.实现重定向
(1)重定向的特点:
- 重定向前后是两次请求,两次响应
- 重定向前后,浏览器的地址栏地址会发生变化。(因为两次请求都是通过浏览器发起,浏览器知道这个跳转的过程,因此地址栏地址会变化)
- 重定向前后的request对象不是同一个(因为重定向前后是两次请求,服务器根据两次请求会创建两个不同的request对象及response对象)
- 重定向前后的两个资源可以是来自不同的web应用,甚至可以是来自不同的服务器。(进行跳转的两个资源之间没有限制)
request和response简介相关推荐
- Servlet第三篇【request和response简介、response的常见应用】
response.request对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象.和代表响应的response对象 既然request对象代表ht ...
- request和response一览
1.HTTP SERVLETRESPONSE简介 set heade set int head set data head add haed add int head add int head 字节流 ...
- 通过Filter给Request、Response加点料
一.简介 使用过 ASP.NET 的同学都知道,Filter 是一个非常中的概念,是项目开发过程中也是经常使用的.今天我们就来讲讲,通过Filter给 Request.Response 加点料.通过 ...
- SpringMvc4中获取request、response对象的方法
springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...
- 简单了解request与response
本文对 request. response 简单描述,未涉及到具体的浏览器缓存.重定向.请求转发等代码部分. 一.Web服务器,浏览器,代理服务器 在看 response.request 对象之前,先 ...
- request 和response
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...
- Struts2中action获取request、response、session的方式
2019独角兽企业重金招聘Python工程师标准>>> 第一种方式,非IoC(Spring中的控制反转)方式: package com.action; import java.uti ...
- Spring MVC中处理Request和Response的策略
前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 作者:码农小胖哥, 图文编辑:xj 来源:https://mp.weixin.qq.com/s/3eFygsiVl8dC2nRy8_8n5 ...
- request、response 中文乱码问题与解决方式
request.response 中文乱码问题与解决方式 request乱码指的是:浏览器向服务器发送的请求参数中包含中文字符,服务器获取到的请求参数的值是乱码: response乱码指的是:服务器向 ...
最新文章
- windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
- 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)
- [转载]另眼看待变量间多重共线性
- 体验共享——技术实现瓶颈与突破
- SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)
- C++ STL容器vector篇(五) vector容器常用初始化操作总结(一维/二维)
- 【Step1】【二分图匹配】poj 1274-The Perfect Stall
- 零基础学习java------day1------计算机基础以及java的一些简单了解
- 个人信用报告,有这五种方式可查!
- ubuntu18.04 安装 QQ
- angularJs监控页面加载完毕
- 基于JavaSwing+MySQL实现的超市商品管理系统
- 关于NVIDIA G-SYNC,你应该知道的一切
- 《区块链技术与应用》学习笔记10——ETH数据结构
- java opencv磨皮算法_美肤磨皮算法OpenCV3实现
- 十六进制颜色码对照表
- 阿里云盘——多电脑实时同步文件的实现
- 人工智能第五章知识总结
- 学习Linux命令(51)
- AppCrawler 使用中遇到问题的问题及解决