HttpServletRequest和HttpServletResponse
一个Http请求对象,一个Http响应对象。
HttpServletRequest
HttpServletRequest,见名知义,就能知道它是通过HTTP协议请求Servlet的对象,它封装了HTTP请求携带的所有信息。
当客户端请求服务器上web应用的某个Servlet时,请求参数和请求的信息就会全部被封装到该对象中,我们使用该对象就能获取这些信息。
通俗讲,就是客户端来请求Servlet,总要带点东西呗[/调皮],这个东西就是请求对象HttpServletRequest,这个请求对象仅限于http请求,它有一个父类ServletRequest,ServletRequest就能代表各种协议的请求。
ServletRequest的常用方法有:
方法 | 作用 |
---|---|
public Object getAttribute(String name); | 获取该请求域中存储的指定属性值 |
public Enumeration getAttributeNames(); | 获取该请求域中所有的属性名 |
public String getCharacterEncoding(); | 返回该请求对象指定的编码,若未指定,返回null |
public void setCharacterEncoding(String env) throws UnsupportedEncodingException; | 为该请求设置指定的编码方式 |
public int getContentLength(); | 获取请求正文的长度,如果长度超过int类型的最大值,返回-1 |
public long getContentLengthLong(); | 获取请求正文的长度,超过long类型的最大值就返回-1 |
public String getParameter(String name); | 获取该请求中指定的参数值,返回字符串 |
public Enumeration getParameterNames(); | 获取该请求中所有的参数名 |
public String[] getParameterValues(String name); | 获取该请求中指定参数名的值,返回数组类型 |
public Map<String, String[]> getParameterMap(); | 获取该请求中所有的参数和值,返回map集合 |
public void setAttribute(String name, Object o); | 在该请求域中设置名为name,值为o的属性 |
public void removeAttribute(String name); | 移除该请求域中指定的属性 |
public RequestDispatcher getRequestDispatcher(String path); | 获取该请求转发到指定路径的转发器对象 |
HttpServletRequest的常用方法有:
方法 | 作用 |
---|---|
public Cookie[] getCookies(); | 获取请求中携带的所有Cookie数据,没有就返回null |
public String getHeader(String name); | 获取指定的请求头携带的信息 |
public Enumeration getHeaderNames(); | 获取该请求中所有的请求头 |
public String getMethod(); | 获取该请求的客户端请求方式 |
public String getContextPath(); | 返回请求URI中指示请求上下文的部分,请求路径除开前面的协议主机和端口,之后的部分 |
public String getRequestURI(); | 返回整个请求的URL,包括协议,主机名和端口 |
public HttpSession getSession(boolean create); | 获取与当前请求关联的session,如果没有与之关联的session而且传入参数为true时,它就会创建一个session并返回,如果没有与之关联的session并且传入参数为false,就返回null。 |
public HttpSession getSession(); | 获取一个与当前请求关联的session对象,如果不存在就创建一个并返回 |
public Collection getParts() throws IOException, ServletException; | 获取此请求的所有Part组件,前提是该请求的类型为multipart / form-data |
public Part getPart(String name) throws IOException, ServletException; | 获取该请求中指定名字的Part,该请求的类型为multipart / form-data |
HttpServletResponse
HttpServletResponse,同理,它就是通过HTTP协议请求Servlet只后响应给客户端的对象,它封装了Servlet响应给客户端的信息。
通俗来讲,在Http请求的前提下,Servlet收到客户端的请求之后,不能把客户端“晾”着吧,Servlet在处理完客户端的请求之后,就需要”回礼“给客户端,在这里就是说的响应对象。
HttpServletResponse也有个父类叫ServletResponse,ServletResponse就是响应各种协议的对象。
ServletResponse的常用方法:
方法 | 作用 |
---|---|
public String getCharacterEncoding(); | 获取响应对象的编码 |
public ServletOutputStream getOutputStream() throws IOException; | 获取响应的ServletOutputStream对象 |
public PrintWriter getWriter() throws IOException; | 获取响应的PrintWriter对象 |
public void setCharacterEncoding(String charset); | 设置响应的编码 |
HttpServletResponse的常用方法:
方法 | 作用 |
---|---|
public void addCookie(Cookie cookie); | 向响应中写入cookie |
public boolean containsHeader(String name); | 判断响应中是否包含某个响应头 |
public void sendRedirect(String location) throws IOException; | 响应给客户端,让客户端重定向到location |
public void setHeader(String name, String value); | 设置响应头信息 |
public void addHeader(String name, String value); | 添加响应头信息 |