实际上学习完JSP以及编写过代码开发之后会发现真正常用的内置对象:request
、session
、application
、response
、config
。但是请一定要记住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中使用各个常用的内置对象。