2021-03-07-HttpServlet总结

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作用域数据是否存在 不存在 存在

猜你喜欢

转载自blog.csdn.net/qq_41270550/article/details/113855354