0
我有這樣一個servlet:訪問servlet的init參數從過濾器
@WebServlet("https://stackoverflow.com/a/path")
@WebInitParam(name="name", value="name_value")
public class MyServlet extends HttpServlet {
//...
在這個servlet我已經把一個過濾器:
@WebFilter(dispatcherTypes = { DispatcherType.REQUEST }, urlPatterns = { "https://stackoverflow.com/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()方法從servlet執行之前的doFilter()。 所以任何人都可以在這個問題上點亮我?爲什麼initParameter「name」爲空,如果它設置爲一個值?
謝謝!
並可以從過濾器訪問我的servlet的ServletConfig? – artaxerxe 2011-12-20 11:45:13
我不這麼認爲,也許是更好的選擇使用過濾器初始參數,然後servlet init參數。 – designerrr 2011-12-20 12:04:53