У меня есть такой сервлет:
@WebServlet("/a/path")
@WebInitParam(name="name", value="name_value")
public class MyServlet extends HttpServlet {
//...
На этот сервлет я поставил фильтр:
@WebFilter(dispatcherTypes = { DispatcherType.REQUEST }, urlPatterns = { "/a/*" })
public class MyFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//...
HttpServletRequest req = (HttpServletRequest)request;
//problem comes here
System.out.println(req.getServletContext().getInitParameter("name"));
//...
}
Проблема в том, что даже если я установлю @WebInitParameter в MyServlet , программы выведут пустую строку (см. Закомментированную строку // здесь возникает проблема в MyFilter ). Я проверил и увидел, что init () метод из сервлета выполняется до doFilter () .
Так может ли кто-нибудь осветить меня по этому вопросу? Почему initParameter"имя" равно нулю, если для него установлено значение?
Спасибо!