Response&Request
(一)
Response
对象的概述
一、什么是
Response
我们开发的软件是
B/S
结构的软件,是可以通过浏览器访问服务器的软件
。
从浏览器输入一个地址,访问服务器的这个过程称为请求。服务器接收到请求
,
需要进行处理,处理以后,还需要将处理结果发回浏览器端显示,这个过程称
为响应
(二)
Response
对象的
API
一、
Response
关于响应行的方法
setStatus(int sc)
设置响应的状态码
200
成功
302
重定向
304
查找本地缓存
404
请求资源不存在
500
服务器内部错误
二、
Response
关于响应头的方法
setDateHeader(String name, long date)
setHeader(String name, String value)
setIntHeader(String name, int value)
set
开头的方法用于设置:针对一个
key
对应一个
value
的情况
举例:原头信息
Content-Type:text/html
调用
setHeader("Content-Type","text/html");
最终结果:
Content-Type:text/html
三、
Response
关于响应体的方法
getOutputStream()
将二进制字节发送到客户端
getWriter()
将字符文本发送到客户端
用于向浏览器端输出内容
四、
Response
其他的
API
addCookie(Cookie cookie)
服务器向浏览器回写
Cookie
的方法
sendRedirect(String location)
重定向的方法
setContentType(String type)
设置浏览器打开页面时候采用的字符集
setCharacterEncoding(String charset)
设置响应字符流的缓冲区的字符集
五、
Response
对象的
API
的代码演示
(
1
)设置状态码
(
2
)完成重定向
1
)重定向:是
302
状态码和
Location
响应头结合使用的效果
2
)实际开发中可以使用
response.sendRedirect("/web01/ResponseDemo2");
替换重定向那两句的写法
3
)完成定时刷新效果
六、
页面定时跳转的扩展
(
1
)使用
JS
完成读秒的效果
三)
Response
对象响应的中文乱码处理
一、使用字节流响应中文
1
、编写代码
2
、向页面输出中文是否会有乱码?不一定!
3
、原因:其实这个乱码的产生,与中文转成字节数组,以及浏览器的打开
方式(打开的时候采用的默认字符集)有关
4
、
解决:将中文转成字节数组的时候,和浏览器默认打开的时候采用的字
符集一致即可
二、使用字符流响应中文
1
、编写代码
2
、向页面输出中文是否会有乱码?一定乱码
3
、原因:字符流是有缓冲区的,
Response
获得字符流,老外设计默认的缓
冲区编码是
ISO-8859-1
,这个字符集不支持中文
4
、解决:设置
Response
获得字符流缓冲区的编码,和设置浏览器默认打
开时采用的字符集一致即可
(四)
Request
对象的概述及
API
的介绍
一、
Request
对象的概述
什么是
Request
对象
我们开发的软件都是
B/S
架构的软件,从浏览器向服务器提交一些数据
时,将这些数据内容进行封装,封装成一个请求对象,即
Request
对象
二、
Request
对象的
API
1
、获得客户端的信息
getMethod()
获得请求的方式
getQueryString()
获得查询字符串的(即请求路径后的提交参数字符
串)
getRequestURI()
获得请求路径的
URI
getRequestURL()
获得请求路径的
URL
getRemoteAddr()
获得客户端的
IP
地址
2
、获得请求头的方法
getHeader
获得一个
Key
对应一个
Va
l
ue
的请求头
getHeaders
获得一个
Key
对应多个
Va
l
ue
的请求头
3
、获得请求参数的方法
getParameter
获得提交的参数(一个
name
对应一个
v
a
l
ue
)
getParameterVa
l
ues
获得提交的参数(一个
name
对应多个
v
a
l
ue
)
getParameterMap()
获得提交的参数,将提交的参数
名
称和对应的
值
存
入到一个
Map
集合中
4
、
Request
作
为
域
对象存
取
数据的方法
setAttribute
向
Request
域
中存数据
getAttribute
从
Request
域
中
取
数据
remo
v
eAttribute
从
Request
域
中
移除
数据
三、
Request
对象的
API
的代码演示
1
、
Request
对象获
取
客户端信息
2
、
Request
获得请求头的信息
四、
Request
对象接收
表单
请求参数
1
、编写一个
静
态页面
2
、接收请求参数
3
、
Request
对象接收
表单
请求参数的中文乱码处理
POST
方式接收中文
GE
T
方式接收中文