请求转发(request)&&请求重定向(response)
request相关API
请求行
getMethod()获取请求方式
getContextPath()获取项目访问路径
getRequestURL()获取请求URL
getRequestURI()获取请求URI
getQueryString()获取GET请求方式的请求参数
请求头
getHeader(String name)根据请求头名称获取其对应的值
请求体
注意: 浏览器发送的POST请求才有请求体
如果是纯文本数据:getReader()
如果是字节数据如文件数据:getInputStream()
response相关API
响应行
void setStatus(int sc);设置状态相应码;
响应头
void setHead(String name,String value);
响应体
通过字符,字节输出流的方式往浏览器写
PrintWriter getWriter();
ServletOutputStream getOutputStream();
请求转发
是一种在服务器内部的资源跳转方式(forward)
1.浏览器发送请求给服务器,服务器中对应的资源a接到请求
2.a处理完请求,将请求发给资源b(这步就是请求转发)
3.b处理完响应给浏览器
实现方式:req.getRequestDispatcher("资源B路径").forward(req,resp);
请求重定向
是一种资源跳转方式(redirect)
1.浏览器发送请求给资源a
2.资源a无法处理该请求,给浏览器响应一个302状态码+location访问资源b的路径
3.浏览器接到302状态码,就重新发送请求到location那个地址去访问资源b
4.资源b接受到请求,并给浏览器响应,整个过程交重定向
实现方式:
resp.setHeader("location","资源B的访问路径");
resp.setStatus(302);