Tomcat的常用內置對象

来源:https://www.cnblogs.com/xj619/archive/2019/04/22/10753254.html
-Advertisement-
Play Games

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對象中的屬性。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 新聞 "Ionide試驗版本" "FSharp路線圖介紹" "Blazor官方預覽" ".NET Framework 4.8發佈" ".NET Core 3 Preview 4發佈" "需要來自FSharp.Data.SqlClient用戶的反饋" "Fable.React 5發佈" "Though ...
  • 一、介面思想 建立關聯的橋梁,方便管理代碼 介面思想提現:為類拓展功能 介面類:用來定義功能的類,為繼承它的子類提供功能的。 該類的功能方法一般不需要有實現體,實現體有繼承它的子類自己去實現。 介面類:用來定義功能的類,為繼承它的子類提供功能的。 該類的功能方法一般不需要有實現體,實現體有繼承它的子 ...
  • volatile是java虛擬機提供的輕量級的同步機制 JMM(Java記憶體模型)是圍繞著併發編程中原子性、可見性、有序性這三個特征來建立的 原子性:一個操作或多個操作要麼全部執行完成且執行過程不被中斷,要麼就不執行。 可見性:當多個線程同時訪問同一個變數時,一個線程修改了這個變數的值,其他線程能夠 ...
  • 包_繼承 1.包 包(package) 用於管理程式中的類,主要用於解決類的同名問題。包可以看成目錄。 包的作用: 【1】防止命名衝突 【2】允許類組成一個單元模塊,便於管理 【3】更好的保護類、屬性和方法 1.1定義包 package用於定義包,形如:package 路徑(包名) 必須寫到源文件的 ...
  • 1.包(package) 包(package) 用於管理程式中的類,主要用於解決類的同名問題。包也可以看成一個目錄。 包的作用 [1] 防止命名衝突。 [2] 允許類組成一個單元(模塊),便於管理和維護。 [3] 更好的保護類、屬性和方法 。 1.1 如何定義包 使用package進行定義,應放在源 ...
  • LinkedBlockingQueue的實現方式? LinkedBlockingQueue是有界的還是無界的隊列? LinkedBlockingQueue相比ArrayBlockingQueue有什麼改進? ...
  • 在JDK1.8以前,介面(interface)沒有提供任何具體的實現,在《JAVA編程思想》中是這樣描述的:“interface這個關鍵字產生了一個完全抽象的類,它根本就沒有提供任何具體的實現。它允許創建者確定方法名、參數列表和返回類型,但是沒有任何方法體。介面只提供了形式,而未提供任何具體實現”。 ...
  • 星空不問趕路人,時光不負有心人,你可以脫變。 1.電腦的初步認識 2.解釋器的安裝 python2.7(2020年官方不在維護) python3.6 (官方推薦) 1.下載安裝包 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd6 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...