在java web 工程中跳过过滤器

项目中有多个工程通过HTTP请求的方式通信的需求。其中一个工程配置了单点登录功能,会拦截所有的请求,检验session值。通过后台进行的通信没有发送session值,就会被拦截下来。于是上网找了相关资料,如何让一些请求跳过单点的过滤器。大致意思是,配置一个过滤器,对有指定前缀的请求进行过滤,过滤处理时让其断掉后续过滤器链,直接转发给Servlet进行处理。
综合起来整理了一下代码。
参考网址1:http://88250.b3log.org/how-to-skip-filters-in-java
参考网址2:http://www.blogjava.net/youngturk/archive/2013/07/12/401496.html


一、创建一个Filter接口的实现类。

public class AlarmFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;

        String servletPath = request.getServletPath();
        System.out.println("进入过滤");
        request.getRequestDispatcher(servletPath).forward(request, response);


	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

}

二、配置web.xml,在所有的过滤器之前添加一下过滤器配置

	<filter>
	   <filter-name>AlarmFilter</filter-name>
	   <filter-class>
	    xjgz.by.scity.listener.AlarmFilter
	   </filter-class>
	</filter>
	<filter-mapping>
	   <filter-name>AlarmFilter</filter-name>
	   <url-pattern>/Alaram/*</url-pattern>
	</filter-mapping>

三、提供访问的接口配置注解

@Controller
@RequestMapping("/Alaram")


综上所述,“http://IP:port/项目名/Alaram/sendAlaramNo.do”这样的请求会被“AlarmFilter”过滤,然后直接转发给Servlet。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值