在上一篇文章中講解了取得初始化配置信息,這一章我們一起學習怎麼取得其它內置對象
取得HttpSession實例
在Servlet程序中要想取得看一個Session對象,則可以通過HttpServletRequest接口完成,在此接口中提供了以下的操作方法
1. public HttpSession getSession()
2. public HttpSession getSession(boolean create)
Servlet本身提供的只是request和response兩個對象,所以如果要想取得session對象,則只能依靠request對象,因為session屬於HTTP協議的范疇,而且在每次發送請求的時候,服務器都會自動為客戶端設置一個Cookie,所以,很自然的,session中要使用了Cookie的機制,但是Cookie又只能通過request取得,那麼自然session也就只能通過request取得了。
一個實例取得Session對象
package ServletDemo; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*; public class HttpSession extends HttpServlet { //繼承HttpServlet public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ //處理服務 javax.servlet.http.HttpSession ses=req.getSession();//取得session對象 System.out.println("session id:"+ses.getId());//取得session id ses.setAttribute("username","趙玉強");//設置屬性 System.out.println("username屬性內容:"+ses.getAttribute("username")); } public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ //處理POST請求 this.doGet(req, resp); //調用doGet()方法 } }
之後進行web.xml文件的配置
<servlet> <servlet-name>session</servlet-name> <servlet-class>ServletDemo.HttpSession</servlet-class> </servlet> <servlet-mapping> <servlet-name>session</servlet-name> <url-pattern>/HttpSessionTest</url-pattern> </servlet-mapping>
此時可以取得了session 對象了