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); | 添加響應頭信息 |