Я использую Tomcat 6, который использует Servlet 2.5. Существует метод, предоставляемый в Servlet 3.0 в API ServletRequest
, который предоставляет дескриптор объекта ServletContext
, связанного с ServletRequest
. Есть ли способ получить объект ServletContext
из ServletRequest
при использовании Servlet 2.5 API?
Как получить сервлет-контекст из ServletRequest в Servlet 2.5?
Ответ 1
Вы можете получить его HttpSession#getServletContext()
.
ServletContext context = request.getSession().getServletContext();
Это может, однако, необоснованно создавать сеанс, когда это нежелательно.
Но когда вы уже сидите в экземпляре класса HttpServlet
, просто используйте унаследованный GenericServlet#getServletContext()
.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = getServletContext();
// ...
}
Или, когда вы уже сидите в экземпляре интерфейса Filter
, просто используйте FilterConfig#getServletContext()
.
private FilterConfig config;
@Override
public void init(FilterConfig config) {
this.config = config;
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
ServletContext context = config.getServletContext();
// ...
}