Tomcat的常用內置對象 1.request內置對象 所謂內置對象就是容器已經創建好了的對象,如果收到一個用戶的請求就會自動創建一個對象來處理客戶端發送的一些信息,這個內置對象就是request。類型是javax.servlet.http.HttpServletRequest。 request內置 ...
Tomcat的常用內置對象
1.request內置對象
所謂內置對象就是容器已經創建好了的對象,如果收到一個用戶的請求就會自動創建一個對象來處理客戶端發送的一些信息,這個內置對象就是request。類型是javax.servlet.http.HttpServletRequest。
request內置對象包含了用戶發送的一些信息,我們可以使用對應的成員方法進行操作,下麵舉一些常見的方法。
1 System.out.println("瀏覽器信息:"+req.getHeader("User-Agent")); 2 System.out.println("額外路徑:"+req.getPathInfo()); 3 System.out.println("請求上下文路徑:"+req.getContentType()); 4 System.out.println("傳遞的參數:"+req.getQueryString()); 5 System.out.println("uri地址:"+req.getRequestURI()); 6 System.out.println("url地址:"+req.getRequestURL()); 7 System.out.println("servlet映射路徑:"+req.getServerName()); 8 System.out.println("項目的真實路徑:"+req.getRealPath("/")); 9 System.out.println("主機名:"+req.getLocalName());
2.response內置對象
response內置對象則是伺服器產生的信息數據,需要返回給客戶端時所用的內置對象。類型是javax.servlet.http.HttpServletResponse。常用方法有:
1 void addCookie(Cookie cookie)給客戶端添加一個Cookie對象,以保存客戶端的信息 2 void addDateHeader(String name,long value) 添加一個日期類型的HTTP首部信息,覆蓋同名的HTTP首部 3 void addIntHeader(String name,int value) 添加一個整型的HTTP首部,並覆蓋舊的HTTP首部 4 String encodeRedirectURL(String url)對使用的URL進行編譯 5 String encodeURL(String url)封裝URL並返回到客戶端,實現URL重寫 6 void flushBuffer() 清空緩衝區 7 int getCharacterEncoding() 取得字元編碼類型 8 String getContentType() 取得MIME類型 9 Locale getLocale() 取得本地化信息 10 ServletOutputStream getOutputStream() 返回一個二進位輸出位元組流 11 PrintWriter getWriter() 返回一個輸出字元流 12 void reset() 重設response對象 13 void resetBuffer()重設緩衝區 14 void sendError(int sc) 向客戶端發送HTTP狀態碼的出錯信息 15 void sendRedirect() 重定向客戶的請求到指定頁面 16 void setBufferSize(int size) 設置緩衝區的大小為size 17 void setCharacterEncoding(String encoding) 設置字元編碼類型為encoding 18 void setContentLength(int length)設置響應數據的大小為size 19 void setContentType(String type) 設置MIME類型 20 void setDateHeader(String s1,long l) 設置日期類型的HTPP首部信息 21 void setLocale(Locale locale) 設置本地化為locale 22 void setStatus(int status) 設置狀態碼為status
這裡簡單說一下cookie。
cookie是客戶端與服務端第一次建立連接時,就會自動創建的一個存儲一些這個伺服器端發送給客戶的信息,方便後續訪問使用。cookie是伺服器端產生,保存在客戶端,預設生命周期是關閉瀏覽器,也可以自定義生命周期。
3.session內置對象
session內置對象主要是用來保存用戶信息的,就算客戶端多次跳轉,只要session保存的用戶屬性存在,就不用進行頻繁的驗證用戶信息了。
session內置對象類型是javax.servlet.http.HttSession。常見的方法有
1 void setAttribute(String name,Object value) 以鍵值對的方式保存數據 2 Object getAttribute(String name)獲取指定鍵的值數據 3 void removeValue(String name)刪除指定鍵值對數據 4 boolean isNew()判斷當前用戶是否是第一次訪問 5 void invalidate()銷毀session一般用來實現用戶註銷
4.config內置對象
config內置對象主要是用來獲取配置文件中的初始化參數,config內置對象類型是javax.servlet.ServletConfig。
配置文件web.xml
<!-- 在容器中配置出路徑對應的servlet --> <servlet> <!-- 配置名稱--> <servlet-name>empServlet</servlet-name> <!-- 配置指定的路徑,對應的servlet實現類的文件所在位置 --> <servlet-class>com.testmvc.pro.empServlet.EmpServlet</servlet-class> <init-param> <param-name>name</param-name> <param-value>smith</param-value> </init-param> </servlet>
測試代碼:
public void config(HttpServletRequest req,HttpServletResponse resp){ //取得Config內置對象 ServletConfig config = super.getServletConfig(); //取得初始化參數 String initName = config.getInitParameter("name"); System.out.println(initName); }
5.application內置對象
application內置對象是一個表示在伺服器範圍的內置對象,該對象是多個用戶共用的內置對象,比如說要監聽當前用戶的人數,就需要用到改對象。
application內置對象的類型是javax.servlet.ServletContext。
application內置對象最大的特點是保存在該對象中的屬性,就算你關閉了瀏覽器,也依舊有效,用其他瀏覽器也能訪問到保存在application對象中的屬性。