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

中国设计网简介索引擎优化 seo

中国设计网简介,索引擎优化 seo,如何做天猫网站,深圳网站制作培训WebFilter 是 Java Servlet 3.0 之后引入的注解(Annotation),用于定义Servlet 过滤器(Filter),避免在 web.xml 里进行繁琐的配置。 1. WebFilter 的作用 用于标记一个类是Servlet 过滤器。 通过 urlPatter…

@WebFilter 是 Java Servlet 3.0 之后引入的注解(Annotation),用于定义Servlet 过滤器(Filter),避免在 web.xml 里进行繁琐的配置。

1. @WebFilter 的作用

  • 用于标记一个类是Servlet 过滤器

  • 通过 urlPatternsvalue 指定要拦截的请求路径。

  • 过滤器可以在请求到达 Servlet 之前或返回客户端之前进行处理,如权限校验、日志记录、修改请求/响应等。

2. @WebFilter 的基本使用

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;@WebFilter("/*") // 拦截所有请求
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("过滤器初始化");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("请求进入过滤器");// 继续请求(让请求到下一个过滤器或目标 Servlet)chain.doFilter(request, response);System.out.println("响应离开过滤器");}@Overridepublic void destroy() {System.out.println("过滤器销毁");}
}

3. @WebFilter 主要参数

(1)urlPatterns / value

指定要拦截的请求路径。

@WebFilter(urlPatterns = {"/api/*", "/admin/*"})
// 或者
@WebFilter(value = {"/api/*", "/admin/*"})

(2)servletNames

指定拦截特定的 Servlet,而不是路径。

@WebFilter(servletNames = {"MyServlet"})

(3)dispatcherTypes

控制过滤器在请求的哪个阶段执行:

  • REQUEST(默认):普通请求。

  • FORWARDRequestDispatcher.forward() 转发时触发。

  • INCLUDERequestDispatcher.include() 包含时触发。

  • ERROR:错误请求时触发。

  • ASYNC:异步请

    @WebFilter(urlPatterns = "/*", dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD})
    

    求时触发。

4. 过滤器的执行顺序

  • 多个过滤器按照类名的字母顺序执行,例如:

    • AFilter 先执行,BFilter 后执行。

  • 如果要手动指定顺序,可以使用 @WebFilter 配合 @Order 注解:

@Order(1) // 优先级高,先执行
@WebFilter("/*")
public class FirstFilter implements Filter {}@Order(2) // 优先级低,后执行
@WebFilter("/*")
public class SecondFilter implements Filter {}

5. @WebFilter vs. web.xml 配置

方式优势劣势
@WebFilter代码简洁,易读不能动态修改,需要重启服务器
web.xml可动态修改,无需改代码代码较冗长,手写 XML

6. 进阶:登录拦截器示例

@WebFilter("/admin/*") // 仅拦截 /admin/ 目录
public class AuthFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;HttpSession session = req.getSession(false);if (session == null || session.getAttribute("user") == null) {res.sendRedirect("/login.jsp"); // 未登录,跳转到登录页面return;}chain.doFilter(request, response); // 继续执行}
}

 

总结

  • @WebFilter 用于定义过滤器,拦截特定 URL 或 Servlet 请求。

  • doFilter() 需要调用 chain.doFilter(request, response) 放行请求,否则会中断请求链。

  • 过滤器可以拦截请求、修改响应、实现权限控制、日志记录等功能

  • 可使用 @Order 指定多个过滤器的执行顺序。

http://www.dtcms.com/wzjs/482216.html

相关文章:

  • html5 网站布局应用教程电商培训
  • 商城网站建设需求如何制作网站链接
  • 网站备案变更 委托书黑帽seo论坛
  • 衡阳建设网站公司推广之家app下载
  • 做个网站app吗网站平台都有哪些
  • 银川网站建设网络网站系统开发
  • 电子商务网站建设的体会seo公司排名教程
  • 网站底部留言代码郑州模板网站建设
  • 网站备案需要多少钱网站数据
  • 机械网站开发百家号权重查询
  • 免费空间凡科小红书seo是什么意思
  • 河北省质监站网址seo助理
  • 中国建行官网登录首页北京网站优化经理
  • 网站建设div ass做网站一般需要多少钱
  • 设计公司网站设计方案b站视频未能成功转码
  • 网站内容如何自动关联新浪微博seo先上排名后收费
  • 自助建站 平台培训学校招生营销方案
  • 用脚手架如何搭建项目做网站广州seo网络培训课程
  • 山东潍坊网站制作公司如何给网站做推广
  • 手机做任务的网站有哪些内容今天的新闻摘抄
  • ip地址被限制不能访问网站优化大师app下载安装
  • 分析建设网站的可行性分析seo搜索引擎优化原理
  • vs 2008网站做安装包惠州网站seo排名优化
  • 做网站开票内容是什么百度官网认证免费
  • 电商网站测试方案自媒体推广渠道有哪些
  • 推特登陆 网站建设长尾关键词挖掘爱站网
  • 网站建设类公司排名百度网盘pc网页版入口
  • 类似美团的网站建设天津seo推广
  • 江西建设网官方网站友链提交入口
  • 装修网站效果图做seo需要投入的成本