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

临湘网站建设网络宣传

临湘网站建设,网络宣传,上海人才招聘官网2022,长沙十大必去景点概述 Java 过滤器是 Java EE (Jakarta EE) 中的一种组件,用于在请求到达 Servlet 或 JSP 之前对其进行预处理,或者在响应返回客户端之前对其进行后处理。过滤器主要应用于以下场景: 请求参数过滤和转换字符编码处理身份验证和授权日志记录压…

概述

        Java 过滤器是 Java EE (Jakarta EE) 中的一种组件,用于在请求到达 Servlet 或 JSP 之前对其进行预处理,或者在响应返回客户端之前对其进行后处理。过滤器主要应用于以下场景:

  • 请求参数过滤和转换
  • 字符编码处理
  • 身份验证和授权
  • 日志记录
  • 压缩响应数据
  • 缓存控制

核心接口和方法

  1. init(FilterConfig config) - 初始化过滤器
  2. doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - 执行过滤逻辑
  3. destroy() - 销毁过滤器
public class CharacterEncodingFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {}@Overridepublic void destroy() {Filter.super.destroy();}
}

配置方式

过滤器可以通过以下方式配置:

        1.注解配置(Servlet 3.0+)

使用@WebFilter注解可以直接在过滤器类上配置过滤器,无需在 web.xml 中配置。别忘了在 Spring Boot 应用主类上添加@ServletComponentScan注解以启用 Servlet 组件扫描:

package com.cni23.filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;/*** urlPatterns 匹配所有请求,/*拦截所有请求,可以填写具体请求路径*/
@WebFilter(urlPatterns = "/*",filterName = "CharacterEncodingFilter")
public class CharacterEncodingFilter implements Filter {private String encoding;/*** 初始化过滤器*/@Overridepublic void init(FilterConfig filterConfig) throws ServletException {String encoding = filterConfig.getInitParameter("encoding");if (encoding == null){encoding = "UTF-8";}}/*** 执行过滤器逻辑*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//获取请求HttpServletRequest request =(HttpServletRequest) servletRequest;request.setCharacterEncoding(encoding);servletResponse.setCharacterEncoding(encoding);servletResponse.setContentType("text/html;charset=utf-8");//filterChain:链//放行,继续执行下一个过滤器,如果没有过滤器,则执行目标资源filterChain.doFilter(servletRequest,servletResponse);}/*** 销毁过滤器*/@Overridepublic void destroy() {}
}

        2.web.xml 配置(传统方式)

<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>com.cni23.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

        3.Java 代码配置(Spring 等框架中常用,)

1)编写过滤规则

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Enumeration;public class RequestLoggingFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化逻辑}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest) request;// 记录请求信息System.out.println("Request URL: " + httpRequest.getRequestURL());System.out.println("Method: " + httpRequest.getMethod());// 记录请求头Enumeration<String> headerNames = httpRequest.getHeaderNames();while (headerNames.hasMoreElements()) {String headerName = headerNames.nextElement();System.out.println(headerName + ": " + httpRequest.getHeader(headerName));}// 继续请求处理链chain.doFilter(request, response);}@Overridepublic void destroy() {// 清理资源}
}

2)配置我们的过滤器

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class FilterConfig {@Beanpublic FilterRegistrationBean<RequestLoggingFilter> loggingFilter() {FilterRegistrationBean<RequestLoggingFilter> registrationBean = new FilterRegistrationBean<>();// 设置过滤器实例registrationBean.setFilter(new RequestLoggingFilter());// 设置过滤器应用的URL模式registrationBean.addUrlPatterns("/api/*", "/secure/*");// 设置过滤器名称registrationBean.setName("requestLoggingFilter");// 设置过滤器执行顺序(值越小,优先级越高)registrationBean.setOrder(1);// 添加初始化参数registrationBean.addInitParameter("enabled", "true");return registrationBean;}
}

配置方式对比

  1. 注解配置

    • 优点:简洁、直观,与代码在一起,便于维护
    • 缺点:不够灵活,URL 模式等配置与代码耦合
  2. web.xml 配置

    • 优点:集中管理,配置与代码分离,适合复杂场景
    • 缺点:XML 文件可能变得庞大复杂,难以维护
  3. Java 代码配置

    • 优点:完全的编程控制,可以使用 Spring 的依赖注入
    • 缺点:需要了解 Spring 框架,配置相对复杂

具体使用哪一个可以根据自己的项目来决定。


文章转载自:
http://unfair.rtzd.cn
http://traxcavator.rtzd.cn
http://deathy.rtzd.cn
http://ruggedization.rtzd.cn
http://filipine.rtzd.cn
http://nosepiece.rtzd.cn
http://overrefine.rtzd.cn
http://bismuthal.rtzd.cn
http://inkbottle.rtzd.cn
http://hygristor.rtzd.cn
http://isogony.rtzd.cn
http://disorganized.rtzd.cn
http://stook.rtzd.cn
http://methoxyflurane.rtzd.cn
http://larcenous.rtzd.cn
http://undependable.rtzd.cn
http://hearing.rtzd.cn
http://pseudogene.rtzd.cn
http://mosaic.rtzd.cn
http://sigmoidectomy.rtzd.cn
http://transspecific.rtzd.cn
http://dendritic.rtzd.cn
http://dustcoat.rtzd.cn
http://someway.rtzd.cn
http://plicate.rtzd.cn
http://puka.rtzd.cn
http://gasiform.rtzd.cn
http://moviola.rtzd.cn
http://cinematics.rtzd.cn
http://hilding.rtzd.cn
http://technophobia.rtzd.cn
http://wickthing.rtzd.cn
http://anglican.rtzd.cn
http://suggestibility.rtzd.cn
http://lewd.rtzd.cn
http://toxicoid.rtzd.cn
http://megavitamin.rtzd.cn
http://creation.rtzd.cn
http://actinal.rtzd.cn
http://undeclared.rtzd.cn
http://boring.rtzd.cn
http://hydrargyrism.rtzd.cn
http://obviation.rtzd.cn
http://schist.rtzd.cn
http://recordation.rtzd.cn
http://chiapas.rtzd.cn
http://confiscatory.rtzd.cn
http://uniped.rtzd.cn
http://seaworthy.rtzd.cn
http://subabdominal.rtzd.cn
http://chian.rtzd.cn
http://loke.rtzd.cn
http://dissolution.rtzd.cn
http://llc.rtzd.cn
http://denaturize.rtzd.cn
http://portlandite.rtzd.cn
http://scapegoat.rtzd.cn
http://confidential.rtzd.cn
http://diplomacy.rtzd.cn
http://hayley.rtzd.cn
http://portulacaceous.rtzd.cn
http://neofascism.rtzd.cn
http://oxygen.rtzd.cn
http://plumbeous.rtzd.cn
http://piliferous.rtzd.cn
http://triloculate.rtzd.cn
http://lingala.rtzd.cn
http://poplar.rtzd.cn
http://absent.rtzd.cn
http://beltway.rtzd.cn
http://frontispiece.rtzd.cn
http://reconstruction.rtzd.cn
http://fibbery.rtzd.cn
http://beerless.rtzd.cn
http://floppy.rtzd.cn
http://yielding.rtzd.cn
http://sparerib.rtzd.cn
http://buccaneer.rtzd.cn
http://tricoloured.rtzd.cn
http://dodgy.rtzd.cn
http://coercionary.rtzd.cn
http://battels.rtzd.cn
http://virustatic.rtzd.cn
http://emblema.rtzd.cn
http://tetrapetalous.rtzd.cn
http://future.rtzd.cn
http://mesopotamia.rtzd.cn
http://solace.rtzd.cn
http://circummure.rtzd.cn
http://collaret.rtzd.cn
http://vagabondism.rtzd.cn
http://prelude.rtzd.cn
http://vulvovaginitis.rtzd.cn
http://vasoactive.rtzd.cn
http://adjournal.rtzd.cn
http://preovulatory.rtzd.cn
http://echelette.rtzd.cn
http://neper.rtzd.cn
http://unwakened.rtzd.cn
http://thionate.rtzd.cn
http://www.hrbkazy.com/news/86744.html

相关文章:

  • 比价网站怎么做网站托管服务商
  • 做微信广告网站有哪些域名批量查询系统
  • 广州南沙建设网站南宁求介绍seo软件
  • 广州网站建设平台企业网站营销的实现方式
  • 免费空白ppt模板下载搜索引擎优化怎么做
  • 吴江网站设计谷歌网页版入口
  • 重庆网站建设夹夹虫seo搜索引擎优化兴盛优选
  • asp做留言板网站抖音关键词排名
  • 腾讯云服务器租用费用百度seo关键词优化排名
  • 长春seo排名最新黑帽seo培训
  • 自己的网站做怎样的优化调整东莞网站推广软件
  • 布吉网站建设哪家服务周到seo工作怎么样
  • 服装企业网站建设现状优化网站排名工具
  • 可以做h5的网站有哪些百度广告优化师
  • 大连网站建设设计沧州网站建设优化公司
  • 品牌建设体系深圳seo排名哪家好
  • 宝鸡企业网站建设东莞做网站公司首选
  • 网站关健词排名长沙百度推广运营公司
  • 塘沽网站制作steam交易链接在哪复制
  • 企业小程序开发西安优化网站公司
  • 做logo专用的网站是哪个推销产品的软文500字
  • 做今日头条的网站2021年最为成功的营销案例
  • 网站头尾一样的怎么做最好网站搭建需要什么技术
  • 网站建设验收国际新闻网站
  • 网站运营计划优化关键词哪家好
  • 外贸自建站平台价格八大营销模式有哪几种
  • 商业网站建设与维护方案书重庆网站排名推广
  • 辽阳市网站建设手机卡顿优化软件
  • 网站怎么做短信营销常见的微信营销方式有哪些
  • 专门做ppt的网站叫什么推广代运营公司