加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在servlet中获取过滤器init参数

发布时间:2020-12-15 08:30:50 所属栏目:Java 来源:网络整理
导读:我有一个看起来像这样的过滤器: filter filter-nameTestFilter/filter-name filter-classorg.TestFilter/filter-class init-param param-nametimeout/param-name param-value30/param-value /init-param /filter 因为我们正在谈论ServletFilter和Servlets.
我有一个看起来像这样的过滤器:

<filter>
      <filter-name>TestFilter</filter-name>
      <filter-class>org.TestFilter</filter-class>
      <init-param>
         <param-name>timeout</param-name>
         <param-value>30</param-value>
      </init-param>
   </filter>

因为我们正在谈论ServletFilter和Servlets.本质上,我已经在我的servlet中并执行了doFilter的第一部分.所以容器必须知道init参数.我没有权限更改Filter类.

是否可以在给定HttpServletRequest对象的情况下获取init-parameter值?

我能想到的唯一解决方案是将web.xml作为资源读取并尝试手动查找值.但感觉有更好的解决方案.

解决方法

你为什么要在你的servlet中开始使用它? Filter参数属于filter.你的选择是:

>将所述参数移动到上下文init参数;您将能够从过滤器和servlet访问它.
>在你的过滤器的doFilter方法中设置一个带参数值的属性(请求),让servlet读取它.

上下文参数示例.

web.xml中:

<context-param>
    <param-name>param1</param-name>
    <param-value>value</param-value>
  </context-param>

你的代码:

String paramValue = getServletContext().getInitParameter("param1");

并且过滤器可以使用以下方法访问相同的参数值:

String paramValue = filterConfig.getServletContext().getInitParameter("param1");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读