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

如何做充值网站如何禁止ip访问网站

如何做充值网站,如何禁止ip访问网站,新闻发布会的意义,在word上怎么做网站链接拦截器是一种动态拦截方法调用的机制,类似于过滤器,是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/626/

相关文章:

  • cms网站后台管理系统莱芜在线论坛莱芜话题凤城高中
  • 织梦网站后台logo删除网站对接qq群 虚拟主机
  • 上海建设银行网站招聘南京 网站制作公司
  • asp.net不适合做网站WordPress商用收费吗
  • wordpress动漫网站模板工商局注册公司网站
  • 外贸网站推广有用吗安卓开发软件
  • 免费外贸网站模板下载网站建设外包还是自己做
  • 网站美工做专题尺寸多少?南昌营销型网站
  • php 网站建设 教学定制型网站设计
  • 深圳 福田 网站建设辽宁省建设培训中心网站
  • 怎么建设自己收费网站海报设计模板网站
  • 韩版做哪个网站好微电影制作
  • 伍佰亿网站建设织梦免费企业网站
  • 微网站设计网店装修时如何进行文案策划
  • 网站权重排行开发网站的经济可行性
  • 鹤岗做网站精准获客
  • 建设厅官方网站新资质标准建设企业高端网站
  • php源码网站修改辽阳建设银行网站
  • 四川长昕建设工程有限公司网站忻州免费建网站
  • 免费做cpa单页网站筑梦网站建设
  • 网站制作用什么语言微信网站是多少
  • 杭州网站设计公司联系亿企邦婚庆公司简介
  • 仿站网站公司网站建设费如何入账
  • 中国大唐集团公司招聘网站网站建设专员招聘
  • 把网站传到服务器上怎么做企业网站多少钱
  • 海市科技网站建设用tornado做网站
  • 安卓手机做网站服务器吗网站建设评价标准
  • 照片做视频的软件 模板下载网站马鞍山 做网站
  • 电商网站商品属性设计wordpress json 插件安装
  • 网站建设公司市场wordpress生成速度显示代码