Tomcat过滤器filter的创建与配置

1.过滤器对客户端发送的请求进行过滤,如果通过过滤器则chain.doFilter(request, response);向下一个过滤器传递或者进入请求资源的地方,如果请求失败则会重定向或者其他操作

 1 public class LoginFilter implements Filter {
 2 
 3     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 4             throws IOException, ServletException {
 5         // 对登录进行验证
 6         HttpServletRequest rq = (HttpServletRequest) request;
 7         HttpServletResponse rp = (HttpServletResponse) response;
 8         User userSession = (User) rq.getSession().getAttribute("userSession");
 9         if (null == userSession) {
10             rp.sendRedirect("/news/jsp/error.jsp");
11         } else {
12             chain.doFilter(request, response);
13         }
14     }
15 
16     public void destroy() {
17 
18     }
19 
20     public void init(FilterConfig arg0) throws ServletException {
21 
22     }
23 
24 }
View Code

2.过滤器的配置

  <filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>com.kgc.web.filter.LoginFilter</filter-class>//过滤器的类所在位置
  </filter>
  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/jsp/admin/*</url-pattern>//设置过滤器的范围 是admin文件夹下的所有文件,只要想访问admin下的资源必须先经过该过滤器
  </filter-mapping>

 

 3.过滤器的范围的几种设置方式

  • 完全匹配 /index.jsp
  • 目录匹配: /admin/*
  • 扩展名匹配: *.do
  • 全部匹配: /*

当路径对以上匹配方式都适用时范围越小优先级越高

 

转载于:https://www.cnblogs.com/MrliBlog/p/11000140.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式Tomcat中的过滤器Filter)是一种在Web应用程序请求生命周期中执行特定任务的机制。它们在服务器接收到请求后、转发到Servlet或JSP之前,以及响应发送给客户端之前或之后执行。要配置嵌入式Tomcat过滤器,你需要在`web.xml`文件中定义过滤器元素。以下是一个基本的步骤: 1. **添加过滤器元素**: 在`<web-app>`标签下,添加一个或多个`<filter>`元素。例如,定义一个名为`MyFilter`的过滤器: ```xml <filter> <filter-name>MyFilter</filter-name> <filter-class>com.example.MyFilter</filter-class> </filter> ``` 其中`<filter-name>`是你给过滤器起的名字,`<filter-class>`是你的过滤器类全名。 2. **定义过滤器配置**: 可能还需要一个`<filter-mapping>`标签来指定过滤器应该何时应用,比如只对某个URL路径生效: ```xml <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/my-pattern/*</url-pattern> </filter-mapping> ``` 这里`<url-pattern>`指定了URL路径模式。 3. **编写过滤器类**: 创建一个实现了`javax.servlet.Filter`接口的Java类,通常会在`doFilter()`方法中添加处理逻辑。 4. **初始化和销毁**: 如果需要,你可以在`init()`方法中进行初始化操作,并在`destroy()`方法中清理资源。 5. **错误处理和异常传递**: 如果过滤器抛出异常,Tomcat会默认终止当前请求。但你也可以处理这些异常并决定是否继续处理请求。 相关问题:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值