HttpServletRequest 和 HttpServletResponse对象

来源:互联网 发布:常见面试算法题 编辑:程序博客网 时间:2024/06/05 15:10

HttpServletRequest 和 HttpServletResponse对象


HttpServletRequest对象

HttpServletRequest对象代表客户端的请求对象,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

HttpServletRequest继承ServletRequest接口,所以应该要先分析ServletRequest接口定义方法。

ServletRequest接口

public interface ServletRequest {    //Request对象设置属性值方法相关    //保存一个属性值到request对象中,通常都使用于请求转发中    public void setAttribute(String name, Object o);//重点掌握    public Object getAttribute(String name);    public void removeAttribute(String name);    public Enumeration<String> getAttributeNames();    //Request对象获得请求参数方法相关    public String getParameter(String name);//重点掌握    public Enumeration<String> getParameterNames();    public String[] getParameterValues(String name);//注意返回的是数组类型,由于要支持复选框这种表单类型,所以应该是String数组类型    public Map<String, String[]> getParameterMap();//同上,不过这个是返回所有请求参数和值    //Request Body相关操作方法    //获得请求体(request body)的子节输入流(其实servlet对其有包装的流)    public ServletInputStream getInputStream() throws IOException; //重点掌握    //获得请求体(request body)的缓冲输入流    public BufferedReader getReader() throws IOException;//重点掌握    //备注:由于流读一次之后就会被清空,所以getInputStream和getReader不能同时使用    //获得请求体(request body)的子节数组长度    public int getContentLength();    //获得请求体(request body)的MIME类型    public String getContentType();    //获得请求体(request body)的编码类型    public String getCharacterEncoding();    //设置请求体(request body)的编码类型    public void setCharacterEncoding(String env) throws UnsupportedEncodingException;    //请求转发的关键方法    public RequestDispatcher getRequestDispatcher(String path);//重点掌握    //Servlet3.0之后的请求异步处理方法    public AsyncContext startAsync() throws IllegalStateException;//重点掌握    public AsyncContext startAsync(ServletRequest servletRequest,                                   ServletResponse servletResponse)            throws IllegalStateException;    public AsyncContext getAsyncContext();    //获得web应用上下文对象    public ServletContext getServletContext();//重点掌握    . . .还有一些获得请求服务器地址端口服务名等方法不一一列举}

HttpServletRequest接口

/***Extends the javax.servlet.ServletRequest interface*to provide request information for HTTP servlets. *The servlet container creates an HttpServletRequest*object and passes it as an argument to the servlet's service*methods*/public interface HttpServletRequest extends ServletRequest {    //获得客户端Cookie对象数组    public Cookie[] getCookies();//重点掌握    //获取Request的会话对象    public HttpSession getSession();//重点掌握    //获得客户端请求方法    public String getMethod();    //获取web项目的根路径    public String getContextPath();//重点掌握    //Returns the query string that is contained in the request URL after the path.    public String getQueryString();    //Returns the session ID specified by the client.    public String getRequestedSessionId();    //Checks whether the requested session ID is still valid.    public boolean isRequestedSessionIdValid();    //    public StringBuffer getRequestURL();    public String getServletPath();    //获得请求头信息相关方法    public String getHeader(String name);    public Enumeration<String> getHeaders(String name);    public Enumeration<String> getHeaderNames();    //Servlet3.0之后支持的文件上传功能方法    public Collection<Part> getParts() throws IOException, ServletException;//重点掌握    public Part getPart(String name) throws IOException, ServletException;//重点掌握}

HttpServletResponse对象

每一次客户端请求服务器端,服务器端会为每次请求生成对应的响应对象。HttpServletResponse对象中包含响应的数据。

ServletResponse接口

public interface ServletResponse {    //获得response对象的输出流    public ServletOutputStream getOutputStream() throws IOException;//重点掌握    //获得response对象的输出流    public PrintWriter getWriter() throws IOException;//重点掌握    //备注:getOutputStream和getWriter两个方法不能同时使用,否则会报错。    //设置响应内容的ContentType    public void setContentType(String type);//重点掌握    //设置响应内容的编码格式    public void setCharacterEncoding(String charset);}

HttpServletResponse接口

public interface HttpServletResponse extends ServletResponse {    //向客户端增加Cookie对象    public void addCookie(Cookie cookie);//重点掌握    //重定向地址    public void sendRedirect(String location) throws IOException;//重点掌握    ...还有一些设置header信息的方法没有一一举例    定义了很多状态码(1xx、2xx、3xx、4xx、5xx)可以进入看看}

总结

Request对象就是对请求信息的封装,Response对象就是对响应信息的封装。你想从客户端获得的一些信息都来自于Request对象,你想让客户端获得的一切信息都源于Response对象。

参考

http://www.cnblogs.com/xdp-gacl/p/3789624.html
http://www.cnblogs.com/xdp-gacl/p/3798347.html
https://en.wikipedia.org/wiki/Request%E2%80%93response

1 0
原创粉丝点击