Request和Response
来源:互联网 发布:雷蛇淘宝假的 编辑:程序博客网 时间:2024/06/01 09:12
简介:Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。
一,Request
Request代表请求对象,其中封装了对请求中具有请求行、请求头、实体内容的操作的方法,通过这个对象提供的方法,可以获得客户端请求
的所有信息。
的所有信息。
1. 作为容器
2. 获得客户端信息
3. 获得客户端请求头
4. 获得客户端请求参数(客户端提交的数据)
5.request接收表单提交中文参数乱码问题解决
(1)get方式提交表单:
对于以get方式传输的数据,request即使设置了以指定的编码接收数据也是无效的(至于为什么无效我也没有弄明白),默认的还是使用ISO8859-1这个字符编码来接收数据,客户端以UTF-8的编码传输数据到服务器端,而服务器端的request对象使用的是ISO8859-1这个字符编码来接收数据,服务器和客户端沟通的编码不一致因此才会产生中文乱码的。
解决办法:
1) 在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题。
String name = request.getParameter("name");//接收数据
name =new String(name.getBytes("ISO8859-1"), "UTF-8") ;//获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题
2) server.xml中配置
URIEncoding=utf-8
(2)post方式提交表单:
之所以会产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收。
5.request接收表单提交中文参数乱码问题解决
(1)get方式提交表单:
对于以get方式传输的数据,request即使设置了以指定的编码接收数据也是无效的(至于为什么无效我也没有弄明白),默认的还是使用ISO8859-1这个字符编码来接收数据,客户端以UTF-8的编码传输数据到服务器端,而服务器端的request对象使用的是ISO8859-1这个字符编码来接收数据,服务器和客户端沟通的编码不一致因此才会产生中文乱码的。
解决办法:
1) 在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题。
String name = request.getParameter("name");//接收数据
name =new String(name.getBytes("ISO8859-1"), "UTF-8") ;//获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题
2) server.xml中配置
URIEncoding=utf-8
(2)post方式提交表单:
之所以会产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收。
request.setCharacterEncoding("UTF-8");
6.Request对象实现请求转发
二,Response
Response代表响应,于是响应消息中的状态码、响应头、实体内容都可以由它进行操作
1. 向客户端(浏览器)发送数据的相关方法
getOutputStream()
getWriter()
getOutputStream()
getWriter()
2.向客户端(浏览器)发送响应头的相关方法
3.向客户端(浏览器)发送响应状态码的相关方法--setStatus()
实例代码:
它们的区别:
其实从字面上我们就可以知道他们俩的区别在于一个是请求(request),而另一个是响应(response),servlet作为服务端,请求便是来自浏览器的请求,响应便是服务器对浏览器的响应。在你想获取浏览器请求的数据时,我们就要用request,而在我们要向浏览器响应数据或页面时,我们就要用到response。
request 是请求的载体,它附带着,请求的参数,ip,cookie,表单,字符编码,或者上传文件。
你可以通过request去获得你所需要的信息。
response是响应的载体,你可以设置,表头,报文,响应文件类型,字符编码,response,自带一个输出流,当你需要将一个页面或者一个文件传到客户端时,你可以通过这个流来进行操作
你可以通过request去获得你所需要的信息。
response是响应的载体,你可以设置,表头,报文,响应文件类型,字符编码,response,自带一个输出流,当你需要将一个页面或者一个文件传到客户端时,你可以通过这个流来进行操作
阅读全文
0 0
- Request和Response对象
- Response和Request
- Request和Response对象
- request和response对象
- Request和Response
- response和request类
- C# Response 和 Request
- response和request
- Request和Response
- Request和Response详解
- Request和Response对象
- request和response学习
- request 和 response
- request和response
- Request和Response
- Request和Response
- Request和Response
- Request和Response
- 一个在pc上显示手机屏幕的小工具droid
- 用git commit提交版本时没有加-m,会进入vim,如何写入提交说明然后退出
- BinaryFormatter序列化与反序列化(C#)
- 关于代码一些优化
- System类详解-3 volatile关键字 shutdownhooks 字符串连接符(+)问题
- Request和Response
- OpenGL学习一:点与线
- 【视频】经历五个双11,逼死50个设计师,今年没人肯干,怎么办?
- golang访问mongodb
- Java读书笔记——01 环境配置
- SourcTree导入ssh private key
- Windows 7平台基于Hadoop hdfs的中文分词统计和排序
- 项目总结(6) 关于安卓和苹果系统的区分,关于弹性布局的样式和字间距的样式
- Eclipse下Tomcat启动超时报错