servlet之request和response報頭處理

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;

/**
 * Created by leo on 17-7-14.
 */
@WebServlet("/RequestServlet")
public class RequestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        Enumeration headerNames = request.getHeaderNames();

        while (headerNames.hasMoreElements()){
            String paramName = (String) headerNames.nextElement();
            out.println("<tr><td>" + paramName + "</td>\n");
            String paramValue = request.getHeader(paramName);
            out.println("<td>" + paramValue + "</td></tr><br/>");
        }

        out.println("<br/>the follow is about response:<br/>");

        // 設置刷新自動加載時間爲 5 秒
        response.setIntHeader("Refresh", 5);

        Calendar cal = Calendar.getInstance();
        Date time = cal.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String nowTime = format.format(time);
        out.println("the current time is " + nowTime);
    }
}
/*
request 擁有的方法如下:
1	Cookie[] getCookies()
返回一個數組,包含客戶端發送該請求的所有的 Cookie 對象。
2	Enumeration getAttributeNames()
返回一個枚舉,包含提供給該請求可用的屬性名稱。
3	Enumeration getHeaderNames()
返回一個枚舉,包含在該請求中包含的所有的頭名。
4	Enumeration getParameterNames()
返回一個 String 對象的枚舉,包含在該請求中包含的參數的名稱。
5	HttpSession getSession()
返回與該請求關聯的當前 session 會話,或者如果請求沒有 session 會話,則創建一個。
6	HttpSession getSession(boolean create)
返回與該請求關聯的當前 HttpSession,或者如果沒有當前會話,且創建是真的,則返回一個新的 session 會話。
7	Locale getLocale()
基於 Accept-Language 頭,返回客戶端接受內容的首選的區域設置。
8	Object getAttribute(String name)
以對象形式返回已命名屬性的值,如果沒有給定名稱的屬性存在,則返回 null。
9	ServletInputStream getInputStream()
使用 ServletInputStream,以二進制數據形式檢索請求的主體。
10	String getAuthType()
返回用於保護 Servlet 的身份驗證方案的名稱,例如,"BASIC" 或 "SSL",如果JSP沒有受到保護則返回 null。
11	String getCharacterEncoding()
返回請求主體中使用的字符編碼的名稱。
12	String getContentType()
返回請求主體的 MIME 類型,如果不知道類型則返回 null。
13	String getContextPath()
返回指示請求上下文的請求 URI 部分。
14	String getHeader(String name)
以字符串形式返回指定的請求頭的值。
15	String getMethod()
返回請求的 HTTP 方法的名稱,例如,GET、POST 或 PUT。
16	String getParameter(String name)
以字符串形式返回請求參數的值,或者如果參數不存在則返回 null。
17	String getPathInfo()
當請求發出時,返回與客戶端發送的 URL 相關的任何額外的路徑信息。
18	String getProtocol()
返回請求協議的名稱和版本。
19	String getQueryString()
返回包含在路徑後的請求 URL 中的查詢字符串。
20	String getRemoteAddr()
返回發送請求的客戶端的互聯網協議(IP)地址。
21	String getRemoteHost()
返回發送請求的客戶端的完全限定名稱。
22	String getRemoteUser()
如果用戶已通過身份驗證,則返回發出請求的登錄用戶,或者如果用戶未通過身份驗證,則返回 null。
23	String getRequestURI()
從協議名稱直到 HTTP 請求的第一行的查詢字符串中,返回該請求的 URL 的一部分。
24	String getRequestedSessionId()
返回由客戶端指定的 session 會話 ID。
25	String getServletPath()
返回調用 JSP 的請求的 URL 的一部分。
26	String[] getParameterValues(String name)
返回一個字符串對象的數組,包含所有給定的請求參數的值,如果參數不存在則返回 null。
27	boolean isSecure()
返回一個布爾值,指示請求是否使用安全通道,如 HTTPS。
28	int getContentLength()
以字節爲單位返回請求主體的長度,並提供輸入流,或者如果長度未知則返回 -1。
29	int getIntHeader(String name)
返回指定的請求頭的值爲一個 int 值。
30	int getServerPort()
返回接收到這個請求的端口號。
31	int getParameterMap()
將參數封裝成 Map 類型。


response:
1	String encodeRedirectURL(String url)
爲 sendRedirect 方法中使用的指定的 URL 進行編碼,或者如果編碼不是必需的,則返回 URL 未改變。
2	String encodeURL(String url)
對包含 session 會話 ID 的指定 URL 進行編碼,或者如果編碼不是必需的,則返回 URL 未改變。
3	boolean containsHeader(String name)
返回一個布爾值,指示是否已經設置已命名的響應報頭。
4	boolean isCommitted()
返回一個布爾值,指示響應是否已經提交。
5	void addCookie(Cookie cookie)
把指定的 cookie 添加到響應。
6	void addDateHeader(String name, long date)
添加一個帶有給定的名稱和日期值的響應報頭。
7	void addHeader(String name, String value)
添加一個帶有給定的名稱和值的響應報頭。
8	void addIntHeader(String name, int value)
添加一個帶有給定的名稱和整數值的響應報頭。
9	void flushBuffer()
強制任何在緩衝區中的內容被寫入到客戶端。
10	void reset()
清除緩衝區中存在的任何數據,包括狀態碼和頭。
11	void resetBuffer()
清除響應中基礎緩衝區的內容,不清除狀態碼和頭。
12	void sendError(int sc)
使用指定的狀態碼發送錯誤響應到客戶端,並清除緩衝區。
13	void sendError(int sc, String msg)
使用指定的狀態發送錯誤響應到客戶端。
14	void sendRedirect(String location)
使用指定的重定向位置 URL 發送臨時重定向響應到客戶端。
15	void setBufferSize(int size)
爲響應主體設置首選的緩衝區大小。
16	void setCharacterEncoding(String charset)
設置被髮送到客戶端的響應的字符編碼(MIME 字符集)例如,UTF-8。
17	void setContentLength(int len)
設置在 HTTP Servlet 響應中的內容主體的長度,該方法設置 HTTP Content-Length 頭。
18	void setContentType(String type)
如果響應還未被提交,設置被髮送到客戶端的響應的內容類型。
19	void setDateHeader(String name, long date)
設置一個帶有給定的名稱和日期值的響應報頭。
20	void setHeader(String name, String value)
設置一個帶有給定的名稱和值的響應報頭。
21	void setIntHeader(String name, int value)
設置一個帶有給定的名稱和整數值的響應報頭。
22	void setLocale(Locale loc)
如果響應還未被提交,設置響應的區域。
23	void setStatus(int sc)
爲該響應設置狀態碼。
 */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章