01 09Servlet與內置對象

實際上學習完JSP以及編寫過代碼開發之後會發現真正常用的內置對象:requestsessionapplicationresponseconfig。但是請一定要記住Servlet裏面不會包含pageContext內置對象,因爲這個對象只能夠在JSP裏面使用。

首先在Servlet中的doGet()doPost()方法參數上已經提供了HttpServletRequest、HttpServletResponse兩個對象,所以現在就已經有了request與response對象。

1、config對象
如果想要取得config內置對象,可以直接利用HttpServlet中定義的方法完成。
(1)取得config對象:public ServletCOnfig getServletConfig()

@SuppressWarnings("serial")
public class LifeServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("[LifeServlet] " + super.getServletConfig().getInitParameter("data"));
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doGet(request, response);
	}
}

但是對於config內置對象,實際上有一個init()方法也可以取得,只不過一般很少使用init()方法操作。

2、application對象
application對象很少會直接使用,往往都使用getServletContext()方法代替,所以在HttpServlet類裏面定義有一個方法:public ServletContext getServletContext()

@SuppressWarnings("serial")
public class LifeServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("[LifeServlet] " + super.getServletContext().getRealPath("/"));
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doGet(request, response);
	}
}

3、session對象
session是HttpSession接口的對象,並且session使用到了Cookie的機制,只有HttpServletRequest接口裏面纔可以接收Cookie,所以Session對象的取得依靠的是HttpServletRequest接口裏面定義的方法:
(1)取得Session:public HttpSession getSession()

@SuppressWarnings("serial")
public class LifeServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		System.out.println("[LifeServlet] " + session.getId());
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doGet(request, response);
	}
}

也就是說現在已經可以在Servlet中使用各個常用的內置對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章