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

有源码搭建网站难不难营销推广是一种什么的促销方式

有源码搭建网站难不难,营销推广是一种什么的促销方式,诸城网站建设费用,wordpress迁移后栏目打开404目录 一、拦截器的作用1.1 请求处理前的拦截1.2 请求处理后的拦截1.3 请求完成后的拦截 二、创建拦截器2.1 实现 HandlerInterceptor 接口2.2 注册拦截器 三、拦截器的使用场景3.1 权限校验3.2 日志记录3.3 性能监控 四、总结 在 Spring 框架中,拦截器( …

目录

    • 一、拦截器的作用
      • 1.1 请求处理前的拦截
      • 1.2 请求处理后的拦截
      • 1.3 请求完成后的拦截
    • 二、创建拦截器
      • 2.1 实现 `HandlerInterceptor` 接口
      • 2.2 注册拦截器
    • 三、拦截器的使用场景
      • 3.1 权限校验
      • 3.2 日志记录
      • 3.3 性能监控
    • 四、总结

在 Spring 框架中,拦截器( HandlerInterceptor)是一种强大的机制,用于在请求处理之前、之后以及请求完成之后执行代码。拦截器可以用于实现诸如权限校验、日志记录、性能监控等功能。本文将详细介绍 Spring 拦截器的使用方法,并提供具体的代码示例。

一、拦截器的作用

1.1 请求处理前的拦截

在请求到达控制器方法之前,拦截器可以执行一些前置操作,例如校验用户是否登录、记录请求时间等。

1.2 请求处理后的拦截

在控制器方法执行完毕后,拦截器可以执行一些后置操作,例如修改响应内容、记录处理时间等。

1.3 请求完成后的拦截

在请求完全处理完毕后,拦截器可以执行一些清理操作,例如释放资源、记录日志等。

二、创建拦截器

2.1 实现 HandlerInterceptor 接口

创建一个类实现 HandlerInterceptor 接口,并重写其方法。

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyInterceptor implements HandlerInterceptor {// 在请求处理之前执行@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle: 请求处理之前");// 返回 true 表示继续执行后续的拦截器或控制器方法,返回 false 表示中断执行return true;}// 在请求处理之后执行@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle: 请求处理之后");}// 在请求完成之后执行@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion: 请求完成之后");}
}

2.2 注册拦截器

在 Spring 配置中注册创建的拦截器。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate MyInterceptor myInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(myInterceptor).addPathPatterns("/**") // 指定拦截的路径.excludePathPatterns("/static/**", "/error"); // 指定不拦截的路径}
}

三、拦截器的使用场景

3.1 权限校验

在用户请求到达控制器之前,校验用户是否有权限访问该资源。

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {Object user = request.getSession().getAttribute("user");if (user == null) {// 如果用户未登录,重定向到登录页面response.sendRedirect(request.getContextPath() + "/login");return false;}return true;
}

3.2 日志记录

记录请求的详细信息,包括请求时间、请求路径、响应时间等。

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {long startTime = System.currentTimeMillis();request.setAttribute("startTime", startTime);return true;
}@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {long startTime = (Long) request.getAttribute("startTime");long endTime = System.currentTimeMillis();System.out.println("请求路径:" + request.getRequestURI() + ",处理时间:" + (endTime - startTime) + "ms");
}

3.3 性能监控

对请求的处理时间进行监控,分析系统的性能瓶颈。

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {long startTime = System.currentTimeMillis();request.setAttribute("startTime", startTime);return true;
}@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {long startTime = (Long) request.getAttribute("startTime");long endTime = System.currentTimeMillis();long responseTime = endTime - startTime;System.out.println("请求路径:" + request.getRequestURI() + ",响应时间:" + responseTime + "ms");// 根据响应时间进行性能分析和警告
}

四、总结

通过实现 HandlerInterceptor 接口并重写其方法,我们可以创建自定义的拦截器。然后在 Spring 配置中注册拦截器并指定其拦截路径,就可以在请求的各个阶段执行自定义逻辑。拦截器在权限校验、日志记录、性能监控等场景中有着广泛的应用。希望本文的示例和讲解能够帮助你更好地理解和使用 Spring 拦截器。


文章转载自:

http://qVt6s3c6.zLgrr.cn
http://bfftLmE1.zLgrr.cn
http://s7oB1bBx.zLgrr.cn
http://L1vJEJoD.zLgrr.cn
http://7TepBbN9.zLgrr.cn
http://MwfTHBXi.zLgrr.cn
http://OB6v76Qu.zLgrr.cn
http://GVrBPam5.zLgrr.cn
http://sq81NBlQ.zLgrr.cn
http://Zo2La73x.zLgrr.cn
http://SUnocT3E.zLgrr.cn
http://seABWR4v.zLgrr.cn
http://pQCBXjYG.zLgrr.cn
http://a3TFzDDB.zLgrr.cn
http://uzzdNihI.zLgrr.cn
http://HTvSQl0l.zLgrr.cn
http://5SOljj52.zLgrr.cn
http://idJh5k3J.zLgrr.cn
http://qKmhqszi.zLgrr.cn
http://yI6O7rIV.zLgrr.cn
http://u9On1pxz.zLgrr.cn
http://ZhXyFMB9.zLgrr.cn
http://6nUmsJ0I.zLgrr.cn
http://hj5vVHNi.zLgrr.cn
http://VcGAe5UQ.zLgrr.cn
http://jiEghdUy.zLgrr.cn
http://YZAF9rGl.zLgrr.cn
http://ypA9HMm2.zLgrr.cn
http://nVkMnV61.zLgrr.cn
http://zTp2PmAL.zLgrr.cn
http://www.dtcms.com/wzjs/708533.html

相关文章:

  • 杨和网站开发网页设计实训报告代码
  • 青岛网站搭建公司哪家好冒险岛2做乐谱网站
  • 邮件服务商什么是优化网站
  • 国家免费培训网站中国互联网协会官网
  • 网站布局设计工具邢台网站设计哪家好
  • 有做挂名法人和股东的网站吗网站建设zrhskj
  • 广州网站建设公司哪家服务好flash 网站开发教程
  • 维恩图在线制作网站凡科网做网站要钱吗
  • 外国扁平化网站wordpress资源分享网
  • 购物网站黑白wordpress小程序商城
  • 网站整改建设安全设备方案怎么建医疗网站
  • 网站建设中网站需求分析报告功能自己理解烟台门户网站
  • 山西省住房和城乡建设厅网站首页wordpress 搜索 下一个
  • 快手秒赞秒评网站推广如何快速做网站
  • 山东建设官方网站武功做网站
  • 网站空间购买时选择什么脚本语言免费行情软件app网站大全下载u288
  • 施工企业八大员.net网站如何优化
  • 郑州品牌营销网站建设外贸网站优化
  • 建设音乐网站功能定位网站营销管理培训班
  • 快速建站平台桂林景区网站建设策划方案
  • 营销型公司网站为什么做pc网站
  • 网站开发要怎么学建筑工程网上举报平台官网
  • 朝阳网站制作公司小程序注册收费吗
  • 乐陵网站优化深圳网站建设合同范本
  • 下载flash网站图片瀑布流代码wordpress
  • visual studio网站开发教程正邦设计院
  • 建网站石家庄跨境电商工具类产品的网站
  • 如何申请网站重庆网站建设夹夹虫公司
  • 梅州哪里做网站小企业网站 优帮云
  • 农业基本建设项目信息网站每天免费2小时外网加速