首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

Servlet 獲取內置對象完全指南:Session、Application 與配置上下文

     編輯:關於JSP

Servlet 本身僅直接提供 HttpServletRequest 和 HttpServletResponse,其他內置對象需通過這兩個核心對象間接獲取。本文重點講解 Session、ServletContext 等關鍵對象的獲取方式。

獲取 HttpSession

Session 屬於 HTTP 協議範疇,依賴 Cookie 機制(請求頭攜帶 JSESSIONID),因此只能通過 Request 獲取:

// 獲取或創建 Session
HttpSession session = req.getSession(); 
// 或指定不自動創建
HttpSession session = req.getSession(false);

實例:Session 操作

package ServletDemo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class SessionServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        HttpSession session = req.getSession();
        System.out.println("Session ID: " + session.getId());
        session.setAttribute("username", "趙玉強");
        System.out.println("Username: " + session.getAttribute("username"));
    }
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

獲取 ServletContext(Application)

代表整個 Web 應用的上下文,可通過以下方式獲取:

  • getServletContext()(GenericServlet 繼承方法)
  • req.getServletContext()
  • session.getServletContext()

常用於全局配置讀取、資源路徑解析、應用級數據共享。

web.xml 配置

<servlet>
  <servlet-name>session</servlet-name>
  <servlet-class>ServletDemo.SessionServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>session</servlet-name>
  <url-pattern>/HttpSessionTest</url-pattern>
</servlet-mapping>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved