在上一篇文章中講解了取得初始化配置信息,這一章我們一起學習怎麼取得其它內置對象
取得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 對象了