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

网站建站怎么报价做网站和平台多少钱

网站建站怎么报价,做网站和平台多少钱,网站建设和网页设计是不是一样,富阳建设局网站首页使用场景 5. 使用场景总结 如果你需要跨越整个应用的全局处理(例如日志记录、跨域处理、请求限制等),过滤器 是一个很好的选择,因为它可以在 Servlet 层 拦截所有 HTTP 请求,且 不局限于 Spring MVC。 如果你只关心 S…

使用场景
5. 使用场景总结
如果你需要跨越整个应用的全局处理(例如日志记录、跨域处理、请求限制等),过滤器 是一个很好的选择,因为它可以在 Servlet 层 拦截所有 HTTP 请求,且 不局限于 Spring MVC。

如果你只关心 Spring MVC 层的请求处理(例如,身份验证、权限控制、请求参数校验、视图渲染等),那么 拦截器 是更合适的工具。它可以直接与控制器交互,便于处理特定的业务逻辑。

1.过滤器

Spring 过滤器的实现

Java web 应用程序 中,过滤器(Filter) 是一种用于 拦截和处理 HTTP 请求和响应的机制,它通常用于 全局 的请求预处理、响应后处理以及对请求的日志、身份验证、权限控制等功能。

Spring Boot 中的 过滤器拦截器 有类似的功能,但它们作用于不同的层次:

  • 过滤器(Filter):位于 Servlet 容器的请求处理链中,适用于所有的请求和响应,能处理所有 HTTP 请求(包括静态资源)。
  • 拦截器(Interceptor):位于 Spring MVC 层,通常用于在控制器方法执行之前或之后进行处理。

过滤器的生命周期和作用

  • 生命周期:在请求到达 Servlet 容器之前和响应返回给客户端之前执行。
  • 作用:通常用于处理一些跨切面的问题,例如:请求日志记录、请求权限验证、字符编码处理、跨域设置、静态资源过滤等。

Filter 接口的主要方法

Filter 接口定义了以下三个方法:

1. init(FilterConfig filterConfig)

  • 初始化方法,在过滤器实例化时调用,只会调用一次。你可以在这里进行一些初始化配置。

2. doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

  • 这是过滤器的核心方法,所有的过滤逻辑都应该在这里实现。
  • FilterChain 参数用于将请求传递给下一个过滤器或目标资源(如 Servlet)。你必须调用 chain.doFilter(request, response),否则请求会被阻塞。

3. destroy()

  • 释放资源的方法,在过滤器被销毁时调用。通常在这里进行资源的清理工作。

简单的过滤器实现

假设我们需要创建一个简单的过滤器来记录每个请求的开始时间和结束时间。

1. 实现 Filter 接口

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;public class MyLoggingFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化方法,通常可以用来读取配置System.out.println("MyLoggingFilter initialized.");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// 记录请求开始时间long startTime = System.currentTimeMillis();System.out.println("Request started at: " + startTime);// 将请求传递给下一个过滤器或目标 Servletchain.doFilter(request, response);// 记录请求结束时间long endTime = System.currentTimeMillis();System.out.println("Request ended at: " + endTime);// 计算请求处理时间System.out.println("Request processing time: " + (endTime - startTime) + "ms");}@Overridepublic void destroy() {// 清理资源System.out.println("MyLoggingFilter destroyed.");}
}

2.1 注册过滤器

你可以实现 FilterRegistrationBean,并将过滤器添加到 Spring 容器中。

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class WebConfig {@Beanpublic FilterRegistrationBean<MyLoggingFilter> loggingFilter() {FilterRegistrationBean<MyLoggingFilter> registrationBean = new FilterRegistrationBean<>();// 将自定义的过滤器添加到 Spring 容器registrationBean.setFilter(new MyLoggingFilter());// 设置拦截的 URL 路径registrationBean.addUrlPatterns("/api/*");  // 拦截所有以 /api/ 开头的请求// 设置过滤器的顺序,数值越小越早执行registrationBean.setOrder(1);return registrationBean;}
}

2.2 两者区别

特性过滤器 (Filter)拦截器 (Interceptor)
位置Servlet 层Spring MVC 层
作用范围用于处理 HTTP 请求和响应,适用于所有 Servlet 和 JSP用于处理 Spring MVC 的请求和响应
生命周期由 Servlet 容器管理由 Spring 容器管理
常见用途记录日志、处理跨域、编码处理、认证、权限控制、静态资源过滤认证、权限控制、模型数据处理、视图渲染等
访问对象只能访问 HttpServletRequestHttpServletResponse可以访问 Spring MVC 的 ModelAndView
http://www.dtcms.com/wzjs/806430.html

相关文章:

  • 国内flask做的网站哪个网站做公司业务广告效果好
  • 个人备案 做网站大型服务器多少钱一台
  • 做网站和服务器的大小有关吗网站店铺的图片怎么做的
  • 低价网站建设qq邮箱官网登录入口
  • 淮南网站网站建设相册 wordpress
  • 给人做网站多少钱会所网站模板
  • 包头企业网站建设公司上海建设工程标准与造价信息网站
  • 做网站底部不显示中文怎么回事做热血钓鱼网站
  • 网站策划与设计网站建设公司 枫子伽叩
  • 乐安网站建设网站建设合同怎么写
  • 小说阅读网站建设杭州网站建设商业
  • 建设个人银行网站石家庄全网seo
  • 书画网站源码惠州做网络推广的
  • 成都软件网站开发网络平台营销的特点
  • 访问不了服务器的网站网站后台管理系统模板 html
  • 国内做服装的网站有哪些做医药商城网站的公司
  • 企业网站公司单位有哪些网站建设价格差异多少
  • 上海龙雨建设工程有限公司网站建设银行招聘官方网站
  • 景洪网站建设网站做弹窗广告吗
  • 自己服务器可以做网站6617网址导航彩票网站大全
  • 网站提交入口大全wordpress发布模块支持5.x
  • 网站开发方案模板好的网站建设方案
  • 阿里云可以建设网站吗用js做简单的网站页面
  • 公司网站如何在百度上能搜索到做计算机项目的网站
  • 网站中新颖的功能怎么自建一个网站
  • 教你如何建设网站阿里去wordpress标签导航
  • 梅州建站联系方式做音乐网站首页要求
  • html5网站app开发wordpress站点app开发
  • 宁波静态网站建设免费网络软件
  • 做任务网站排行榜提供网站建设找哪家公司好