HttpServletRequest
- 用于用户请求的封装,封装了Http协议里面大部分方法
- 生命周期只在一次请求有效
- 实现ServletRequest接口
- 常用方法
方法 |
说明 |
getParameter(String s) |
根据name得到请求参数 |
getParameterNames() |
得到所有的请求参数名称,返回是个枚举类型 |
getParameterMap() |
得到所有请求参数,返回的是个map |
getServletPath() |
得到Servlet请求路径 |
getContextPath() |
得到上下文路径 |
getRequestDispatcher(String s) |
转发到某个页面 |
getAttribute(String s) |
返回指定属性的属性值 |
setCharacterEncoding(String s) |
设置请求域中的编码 |
setAttribute(String s, Object obj) |
获取指定属性的值 |
getCookies() |
得到cookie数组 |
getSession() |
如果当前有session就返回,没有就新创建一个session,该方法等价于req.getSession(true) |
getSession(boolean create) |
如果当前request中的HttpSession 为null,当create为true,就创建一个新的Session,否则返回null |
HttpServletResponse
- 用于用户响应的封装
- 生命周期只在一次响应有效
- 实现ServletResponse接口
方法 |
说明 |
setContentType(String s) |
设置响应类型及编码 |
setCharacterEncoding(String s) |
设置响应数据的编码 |
sendRedirect(String s) |
重定向到某个页面 |
getWriter() |
打印输出流 |
addHeader(String s, String s1) |
添加响应头,addHeader(“refresh”,“3”):3s刷新一次,addHeader(“pragma”,“no-cache”):通知客户端不要缓存数据 |
addCookie(Cookie cookie) |
添加Cookie |
页面n秒刷新一次
页面n秒跳转到某个页面:resp.setHeader("refresh", "2;url=/index.html");
状态码
- 一般4xx开头的都是客户端错误,5xx开头都是服务端错误
状态码 |
意义 |
说明 |
200 |
正常显示 |
正常返回页面 |
403 |
服务器权限拒绝 |
没有足够的权限去访问服务器资源 |
404 |
找不到url请求路径 |
访问路径不存在,一般是拼写错误或者工程名不对 |
500 |
服务端内部错误 |
一般是服务端内部编写的代码有问题 |
重定向和转发的区别
区别 |
重定向 |
转发 |
所属对象 |
HttpServletResponse |
RequestDispatcher |
调用方法 |
sendRedirect(String s) |
forward(ServletRequest req, ServletResponse resp) |
请求次数 |
浏览器请求两次 |
浏览器请求一次 |
地址栏 |
显示二次请求地址 |
显示最初地址 |
使用范围 |
可以转发到任何Web资源 |
只能在当前Web应用转发 |
/代表的意思 |
代表站点的根目录 |
代表当前应用的根目录 |
req作用域数据是否存在 |
不存在 |
存在 |