当前位置: 首页 > article >正文

java filter mapping_Java可以从filter-mapping内部的url-pattern中排除一些具体的url吗?...

小编典典

标准Servlet API不支持此功能。你可能想要为此使用改写URL过滤器(例如Tuckey的过滤器)(与Apache HTTPD的过滤器非常相似mod_rewrite),或者doFilter()在Filter侦听的方法中添加一个检查/*。

String path = ((HttpServletRequest) request).getRequestURI();

if (path.startsWith("/specialpath/")) {

chain.doFilter(request, response); // Just continue chain.

} else {

// Do your business stuff here for all paths other than /specialpath.

}

如有必要,可以将要忽略的路径指定为init-param过滤器的,以便web.xml无论如何都可以对其进行控制。你可以按以下方式在过滤器中获取它:

private String pathToBeIgnored;

public void init(FilterConfig config) {

pathToBeIgnored = config.getInitParameter("pathToBeIgnored");

}

如果过滤器是第三方API的一部分,因此你无法对其进行修改,则将其映射到更具体的url-pattern,例如/otherfilterpath/*,创建一个新过滤器,/*并转发到与第三方过滤器匹配的路径。

String path = ((HttpServletRequest) request).getRequestURI();

if (path.startsWith("/specialpath/")) {

chain.doFilter(request, response); // Just continue chain.

} else {

request.getRequestDispatcher("/otherfilterpath" + path).forward(request, response);

}

为避免此过滤器在无限循环中调用自身,你需要让其REQUEST仅在(第三方)过滤器上侦听(调度)FORWARD。

2020-03-11

http://www.lryc.cn/news/2416717.html

相关文章:

  • 数据库SQL入门教程
  • Ubuntu 安装教程
  • VB.NET水晶报表Crystal Reports学习(开发环境安装+程序示例+报表示例+客户端运行环境)
  • physxloader.dll x86_physxloader.dll
  • 关于0.99999999和1的问题
  • 性能测试工具Oprofile
  • Butterworth滤波器设计:构建高保真音频信号处理的利器
  • android superuser.apk 管理root权限原理分析
  • .NET Framework 4.0_网络编程——请求数据
  • ruby入门之基本语法
  • 如何将html文件转为txt文件格式,如何把html改为txt格式
  • Windows路径操作API函数学习
  • JSP中Session的使用
  • CSS常用汇总
  • 使用云服务器搭建Linux环境
  • 单点登录SSO(一)
  • linux-存储管理2,pv、vg、lv
  • 启动应用程序出现taskkill.exe找不到问题解决
  • 单纯形法和对偶单纯形法
  • 上网行为管理|它的作用是什么?上网行为管理排行榜
  • Virtools脚本语言(VSL)教程 - 值、类型与变量
  • BITLOCKER 硬盘 参数错误 问题处理 两例
  • 怎么在阿里妈妈投放广告?--人人有责-- .
  • UC/OS II 任务管理(4)之任务创建
  • [发布] QQGame 连连看辅助工具(限制功能版)
  • Java基础——多线程详解!!!!
  • IsValidDateTime、IsValidDate、IsValidTime、IsValidDateDay ... 判断时间是否合法
  • 中文同义词近义词库 vs 词向量
  • LightSwitch:小试一下微软开发框架LightSwitch
  • RDP协议之USB重定向虚拟通道