我有一个看起来像这样的过滤器:
TestFilter
org.TestFilter
timeout
30
因为我们正在谈论ServletFilter和Servlets.本质上,我已经在我的servlet中并执行了doFilter的第一部分.所以容器必须知道init参数.我没有权限更改Filter类.
是否可以在给定HttpServletRequest对象的情况下获取init-parameter值?
我能想到的唯一解决方案是将web.xml作为资源读取并尝试手动查找值.但感觉有更好的解决方案.
解决方法:
你为什么要在你的servlet中开始使用它? Filter参数属于filter.你的选择是:
>将所述参数移动到上下文init参数;您将能够从过滤器和servlet访问它.
>在你的过滤器的doFilter方法中设置一个带参数值的属性(请求),让servlet读取它.
上下文参数示例.
web.xml中:
param1
value
你的代码:
String paramValue = getServletContext().getInitParameter("param1");
并且过滤器可以使用以下方法访问相同的参数值:
String paramValue = filterConfig.getServletContext().getInitParameter("param1");
标签:java,init-parameters
来源: https://codeday.me/bug/20190730/1584149.html