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

网站开发开题报告引言腾讯公众微信号

网站开发开题报告引言,腾讯公众微信号,主要怎么学的呢,广州做企业网站哪家好拦截器是一种动态拦截方法调用的机制,类似于过滤器,是Spring框架提出的,用来动态拦截控制器方法的执行。 其作用是拦截请求,在指定方法调用前后,根据业务执行预设代码。 实现步骤 1.定义拦截器,实现Handl…

拦截器是一种动态拦截方法调用的机制,类似于过滤器,是Spring框架提出的,用来动态拦截控制器方法的执行。
其作用是拦截请求,在指定方法调用前后,根据业务执行预设代码。

实现步骤

1.定义拦截器,实现HandlerInterceptor接口,并重写其所有方法

com.ztt.interceptor包下实现LoginCheckInterceptor类;
LoginCheckInterceptor类中主要有三个方法preHandle()、postHandle()、afterCompletion();这三个方法spring已经实现好,可以不重写,但是为了实现拦截作用,一般需要对preHandle()方法进行重写。
preHandle()的返回值是布尔类型,true表示放行、false表示拦截。

package com.ztt.interceptor;import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;@Component
public class LoginCheckInterceptor implements HandlerInterceptor {@Override  // 目标资源方法执行前执行,return true:放行,return false:不放行public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle执行");return true;}@Override  // 目标方法执行后执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle执行");}@Override  // 视图渲染完成后执行,最后执行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion执行");}
}

2.注册拦截器

同时实现配置类,配置类中定义了拦截对象

package com.ztt.config;import com.ztt.interceptor.LoginCheckInterceptor;
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 LoginCheckInterceptor loginCheckInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry){registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**");}
}

在这里插入图片描述

具体样例

package com.ztt.interceptor;import com.alibaba.fastjson.JSONObject;
import com.ztt.pojo.Result;
import com.ztt.utils.JwtUtils;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;@Slf4j
@Component
public class LoginCheckInterceptor implements HandlerInterceptor {@Override  // 目标资源方法执行前执行,return true:放行,return false:不放行public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {//1.获取请求的URLString url = req.getRequestURL().toString();log.info("请求的URL:{}",url);//2.判断该url中是否包含login,如果包含,说明是登录操作,放行if(url.contains("login")){log.info("登录操作,放行");return true;}//3.获取请求头中的令牌tokenString jwt = req.getHeader("token");// 4.判断令牌是否存在,如果不存在则需要报错if(!StringUtils.hasLength(jwt)){log.info("请求头token为空,返回未登录的信息");Result error = Result.error("NOT LOGIN");// 手动转换 对象-->JSONString notLogin = JSONObject.toJSONString(error);resp.getWriter().write(notLogin);return false;}// 5.解析token,如果解析失败说明,token过期或者被篡改try {JwtUtils.parseJWT(jwt);}catch (Exception e){// jwt解析失败e.printStackTrace();log.info("令牌解析失败,返回未登录错误信息");Result error = Result.error("NOT LOGIN");// 手动转换 对象-->JSONString notLogin = JSONObject.toJSONString(error);resp.getWriter().write(notLogin);return false;}// 令牌合法,放行log.info("令牌合法,放行");return true;}}

Filter是在阿帕奇服务器中实现,而Intercepter在Spring框架中实现,其更接近Controller,在调用过程中Filter一般会先出发请求、Intercepter后触发请求;而在响应过程中Intercepter先响应。

在这里插入图片描述

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

相关文章:

  • 医院网站建设需要注意什么医院网站建设情况说明书
  • 亚马逊没有网站怎么做seo为传销做网站
  • 凡科建站官网需要什么集团公司网站设计
  • 产品单页营销型网站模板下载响应式网站的制作
  • 网站后台管理系统制作软件随州网站推广哪家好
  • 做网站公司怎么样上海网站设计培训班
  • 清远网站关键字优化万网域名续费优惠
  • 深圳做响应式网站公司亚马逊海外网站
  • 青岛网站建设 青岛博采网络加强网站政务服务建设
  • 网站不绑定域名解析网站建设服务费做什么分录
  • 网站推广策略的控制和效果评价wordpress代码目录结构
  • 大型门户网站建设特点网站备案安全吗
  • nas做网站服务器开发公司项目总是分公司总经理吗
  • 网站建设是什么专业里的科目网站开发项目团队
  • 个人网站建设方案书备案聚名网注册
  • 高效网站推广设计合肥seo推广排名
  • asp网站开发程序员阿里云服务器部署网站
  • 搜索网站不显示图片专做特价手机的网站
  • 湖北做网站公司网页制作教程电子书
  • 湖南省做网站的做网站图片广告推广怎么忽悠人的
  • 西安 网站空间酒店网站建设案例
  • 高性能网站建设进阶指南怎么接广告赚钱
  • 秦皇岛网络公司 网站托管视频网站开发用什么服务器
  • 课程资源网站开发解决方案做国际网站多少钱
  • 做设计任务的网站网站业务员怎么给客户做方案
  • 苏宁易购百度关键词优化系统
  • 扬中网站定制素锦wordpress主题修改
  • 用qq邮箱做网站电子商务哪个专业最吃香
  • 宝山网站建设公司宝塔wordpress固定连接
  • 安徽合肥中国建设银行网站首页网站制作成本包含