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

做外贸网站 用国外空间 还是 国内空间 区别胶州市网站建设

做外贸网站 用国外空间 还是 国内空间 区别,胶州市网站建设,哪个页面设计培训好,大庆免费网站建设公背景 在日常开发中,经常会有需要统一对请求做一些处理,常见的比如记录日志、权限安全控制、响应处理等。此时,ServletApi中的Filter类,就可以很方便的实现上述效果。 Filter类 是一个接口,属于 Java Servlet API 的一部…

背景

        在日常开发中,经常会有需要统一对请求做一些处理,常见的比如记录日志、权限安全控制、响应处理等。此时,ServletApi中的Filter类,就可以很方便的实现上述效果。

   Filter类 是一个接口,属于 Java Servlet API 的一部分,主要用于在 Servlet 处理请求之前或之后执行过滤任务Filter 的作用是拦截请求和响应,从而实现一些通用的功能,而无需修改 Servlet 或 JSP 的代码。

Filter源码

        从Filter的源码,可以看出:Filter是一个接口,Filter 的生命周期由三个主要方法控制。分别是init / doFilter / destory方法。

        接下来具体讲一下,这三个方法的作用:

  1. init(FilterConfig filterConfig)初始化 Filter,在 Filter 被加载时调用一次。一般用于加载资源、初始化配置信息等。(从入参FilterConfig看出,可以获得上下文、请求参数等信息

  2. doFilter(ServletRequest request, ServletResponse response, FilterChain chain):核心方法,用于处理一些具体的过滤逻辑。(可以获得并处理request, response信息

    1. 在调用 chain.doFilter(request, response) 之前,可以对请求进行预处理。

    2. 在调用 chain.doFilter(request, response) 之后,可以对响应进行后处理。

    3. 如果不想让请求继续向下传递,可以不调用 chain.doFilter(request, response)

  3. destroy():销毁 Filter,在 Filter 被卸载时调用一次。一般用于释放资源、清理等逻辑。

Filter场景 

  Filter 的核心功能是拦截请求和响应,从而实现以下功能:

  • 日志记录:记录请求的详细信息,如请求的 URL、参数、时间戳等。

  • 权限检查:验证用户是否具有访问特定资源的权限。

  • 响应修改:修改响应的内容或格式,例如添加 HTTP 响应头。

  • 资源管理:限制对某些资源的访问频率或次数。

Filter使用示例

        例如,我们可以在每次请求中,记录请求的耗时时长,并在注入TRACE_ID参数,以方便后续根据日志,进行链路追踪。

import javax.servlet.*;
import java.io.IOException;public class LoggingFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("LoggingFilter initialized");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {long startTime = System.currentTimeMillis();String traceId = request.getHeader("TRACE_ID");if (StrUtil.isBlank(traceId)) {traceId = UUID.randomUUID().toString().toLowerCase().replaceAll("-", "");}try {//设置链路IDMDC.put("TRACE_ID", traceId);response.addHeader("TRACE_ID",traceId);// 调用下一个 Filter 或 Servletchain.doFilter(request, response);}finally {MDC.remove("traceId");com.zwy.discover.mybatis.LogConfig.remove();}long endTime = System.currentTimeMillis();//打印请求耗时System.out.println("Request processed in " + (endTime - startTime) + " ms");}@Overridepublic void destroy() {System.out.println("LoggingFilter destroyed");}
}

Filter配置方式

  • 使用 web.xml 配置

<filter><filter-name>MyFilter</filter-name><filter-class>com.example.LoggingFilter</filter-class><init-param><param-name>param1</param-name><param-value>value1</param-value></init-param>
</filter>
<filter-mapping><filter-name>LoggingFilter</filter-name><!-- 拦截所有请求 --><url-pattern>/*</url-pattern> 
</filter-mapping>
  • 使用注解配置(Servlet 3.0+)

        从 Servlet 3.0 开始,可以使用 @WebFilter 注解来定义 Filter,无需在 web.xml 中配置。

@WebFilter(filterName = "LoggingFilter", urlPatterns = "/*")
public class LoggingFilter implements Filter {// Filter 方法实现
}

         

http://www.yayakq.cn/news/714913/

相关文章:

  • 广东创粤建设有限公司网站图片转短链接生成器
  • 国外有名的设计网站Apple 手机网站制作
  • 长泰网站建设网站建设运营策划方案
  • 做医疗健康类网站需要资质吗门户网登录入口
  • 软文范文200字seo网站关键词排名优化
  • 电子商务的网站案例石家庄网络公司查封
  • 网站建设案例讯息怎样换网站logo
  • wordpress圆角阴影seo系统是什么意思
  • 那个网站做港货比较好有哪些做电子商务的网站
  • 服装企业网站模版wordpress 短网址插件
  • 网站有没有做等级测评怎么查看百度网站适配代码
  • 平陆县做网站怎样提高网站的打开速度
  • 潍坊哪家做网站做的最好网站建设需要摊销吗
  • 石家庄住房城乡建设厅网站深圳坪山比亚迪
  • 网站建设与运营总结在互联网公司上班都做啥的
  • 自己做电影网站有没有钱赚wordpress 二级链接
  • 网站建设源码修改网站备案幕布多少钱
  • 影响网站显示度的原因优秀网站制作定制
  • 工程承包去哪个网站ps和vscode做网站
  • 网站没有域名网络公司怎样推广网站
  • 网站建设专业的室内设计联盟官网论坛
  • 北京国家建设部网站首页中国网站制作企业排行榜
  • 网站js聊天代码做二手货的网站有哪些
  • 松江洞泾网站建设云南网站开发网络公司前10
  • 一个外贸网站要多大的空间比较好京东网站建设现状分析
  • 做电脑系统的网站wordpress显示文章标题
  • 网站快照怎么做学网站开发有前途吗
  • 怎么查看网站收录建设局局长是什么级别
  • 专门做代工产品的网站免费申请账号网站
  • 阴阳师网站建设如何修改网站发布时间