| 物件 | 時間範圍 | 空間範圍 | 典型用途 |
|---|---|---|---|
HttpServletRequest |
單次請求-回應(含 forward) | 發起請求的客戶端 | 請求參數、暫存資料傳遞 |
HttpServletResponse |
單次請求-回應 | 發起請求的客戶端 | 回應輸出、Header 設定 |
HttpSession |
用戶會話期間(瀏覽器關閉/逾時失效) | 同一用戶 | 購物車、登入狀態、用戶偏好 |
ServletConfig |
Servlet 實例化後 ~ 銷毀 | 僅該 Servlet 內部 | 單一 Servlet 專屬初始化參數(如附件儲存路徑) |
ServletContext |
Web 應用啟動 ~ 關閉/重載 | 全應用所有元件 | 全域配置(字符集、資料庫連線資訊、共用常數) |
<web-app>
<init-param>
<param-name>charset</param-name>
<param-value>GB2312</param-value>
</init-param>
</web-app>
父元素為 <web-app>,屬 Servlet 2.3+ 標準語法。
<servlet>
<servlet-name>GetAtt</servlet-name>
<servlet-class>mail.GetAttServlet</servlet-class>
<init-param>
<param-name>absPath</param-name>
<param-value>/usr/mail/ax/axman/Maildir/</param-value>
</init-param>
</servlet>
父元素為 <servlet>,僅對應 Servlet 類可存取。
// ServletConfig
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
String absPath = config.getInitParameter("absPath");
}
// ServletContext
ServletContext context = config.getServletContext();
String charset = context.getInitParameter("charset");
application 內建物件 → ServletContextconfig 內建物件 → ServletConfig(但 JSP 編譯後的 Servlet 通常不在 web.xml 註冊,故較少用)ServletContext(避免硬編碼)ServletConfig