1. 程式人生 > >java中Request和Response常用方法及舉例

java中Request和Response常用方法及舉例

Request的常用方法:

    setAttribute()              在Request域中儲存資料
    setCharacterEncoding()      設定請求引數的編碼方式,只對post請求有效
    getAttribute()              獲取域中儲存的資料
    getAttributeNames()         獲取域中所有資料,返回一個Enumeration列舉類
    getMethod()                 獲取請求方法
    getParameter()              獲取指定請求引數名稱
    getParameterNames()         獲取所有請求引數,返回一個Enumeration列舉類
    getServerName()             獲取請求的伺服器
    getServletPath()            Servlet路徑
    getRequestURI()             URI路徑
    getProtocol()               使用協議
    getContextPath()            返回上下文(專案)路徑
    getQueryString()            查詢字串
    getRemoteAddr()             使用者主機IP
    getRemotePort()             使用者使用埠號.
    getCookies()                獲取所有Cookie,返回一個Cookie陣列
    getRequestDispatcher()      獲取轉發器,引數路徑以/打頭,代表WebRoot(當前WEB專案根目錄)
    getSession()                獲取Session物件

 舉例:http
://localhost:8080/test/request.do?name=john&age=20   請求的伺服器: localhost   使用協議: HTTP1.1   請求方法: GET   請求的埠號: 8080   Context路徑: test   Servlet路徑: request.do   URI路徑: /test/request.do   查詢字串: name=john&age=20   使用者主機IP: 127.0.0.1   使用者使用埠號: ****

Response的常用方法:

    setContentType()                告知瀏覽器資料型別
    set
CharacterEncoding() 設定Response的編碼方式 setHeader() 設定訊息頭 setIntHeader() 通知瀏覽器在給定的時間後重新整理,時間以秒為單位 setDateHeader() 處理頁面快取,防止JSP或者Servlet中的輸出被瀏覽器儲存在緩衝區中。 java中一般設定為response.setDateHeader("Expires"
, 0) 與jsp中response.setDateHeader("Expires", -1)效果一致 setStatus() 設定相應狀態碼 sendError() 返回伺服器的預設錯誤網頁並顯示錯誤資訊。 response.sendError(404)返回的Content-Type:text/html sendRedirect() 重定向頁面 getOutputStream() 獲取通向瀏覽器的位元組流(同一次請求處理中,位元組流和字元流不能同時存在) getWriter() 獲取通向瀏覽器的字元流(同一次請求處理中,位元組流和字元流不能同時存在) addCookie() 新增Cookie encodeURL() 對給定的url進行編碼,以用於sendRedirect方法; 如果不需要編碼,則直接返回(未經修改的)url。 encodeRedirectURL() 都對url附加上jsessionid引數進行了處理,如果需要,則在url的 path後面附加上;jsessionid=xxx;如果不需要則直接返回傳入的url。

HttpServletResponse的encodeRedirectURL()與encodeURL()的差別?

    共同點:
            都對url附加上jsessionid引數進行了處理,如果需要,則在url的path後面附加
        上;jsessionid=xxx;如果不需要則直接返回傳入的url。
    不同點:
            encodeURL在附加jsessionid之前還對url做了判斷處理:如果url為空字串(長度為0的字串),則將
        url轉換為完整的URL(httphttps開頭的);如果url是完整的URL,但不含任何路徑(即只包含協議、主
        機名、埠,例如http://127.0.0.1),則在末尾加上根路徑符號/。也就是encodeURL如果進行了編
        碼,則返回的URL一定是完整URL而不是相對路徑;而encodeRedirectURL則不對URL本身進行處理,只專
        注於新增jsessionid引數(如果需要)。