05-request,response
1. HttpServlet中 request 请求对象
1.1 操作请求行
request.getMethod() 获取请求方式
request.getRequestURI() 获取请求路径
request.getQueryString() 获取请求路径上的参数,仅限于GET
1.2 操作请求头
request.getHeader(String name) 根据请求头名称获取值,如 User-Agent
1.3 操作请求参数
request.getParameter() 获取指定参数名称的值
request.getParameterValues() 获取指定参数名称的一组值
request.getParameterMap() 返回此请求的参数的 java.util.Map
request.getParameterNames() 获取所有的参数名称
1 |
|
1.4 操作请求中文乱码
1 |
|
1.5 操作请求数据 - form表单
@WebServlet(name = “任意名字”, urlPatterns = “/资源路径”)
<!–默认提交方式为 GET,同时可省略,POST不可省略–>
<form method=”post” action=”/projname/资源路径”>…</form>
1.6 页面跳转之一:请求转发
原理:
客户浏览器发送http请求
>> web服务器接收
此请求 >> 服务器内部完成
请求处理和转发动作 >> 将目标资源响应
给客户
特点:
- 转发是
服务器
行为 - 转发是浏览器只做了
1
次访问请求 - 转发浏览器
地址不变
- 转发两次跳转之间的
信息不会丢失
(request生命周期内可传递数据) - 转发只能将请求转发给
同一个web项目内的资源
1 |
|
2. HttpServlet中 response 响应对象
2.1 操作响应行
response.setStatus() 操作响应状态码,如200,302
response.sendError() 操作响应错误码,如404
2.2 操作响应头
response.setHeader() 覆盖原有响应头的值
response.addHeader() 在原有的响应头的基础上添加新值(Cookie)
2.3 操作响应正文
response.getWriter().println(“响应正文内容”) 返回可将字符文本发送到客户端的 java.io.PrintWriter 对象
2.4 操作响应中文乱码
1 |
|
2.5 定时跳转
1 |
|
2.6 页面跳转之二:重定向
原理:
客户浏览器发送http请求
>> web服务器回复响应状态码302
+响应头location
给浏览器 >> 浏览器收到302则自动再发送1个http请求
(url+location) >> 服务器根据新请求的url寻找资源响应
给浏览器
特点:
- 重定向是
客户端
行为 - 重定向是浏览器做了至少
2
次的访问请求 - 重定向浏览器
地址改变
- 重定向两次跳转之间传输的
信息会丢失
(request生命周期为单次请求) - 重定向可以定向到
任何web资源
(当前站点/外部站点)
1 |
|
● 重定向中不能使用 request域对象,因为1次请求响应后该对象便销毁;
● 转发中可以使用 request域对象,因为转发只有1次请求,在域对象生命周期内。