jsp网站开发 pdf,网页设计尺寸分辨率,wap网站 手机网站,增城网站公司电话Spring MVC拦截器是在请求到达处理器前或返回客户端前执行的组件#xff0c;它可以用于拦截和处理请求#xff0c;实现一些通用的功能。 Spring MVC拦截器可以实现的功能包括#xff1a;
登录验证#xff1a;拦截所有请求#xff0c;检查用户是否已登录#xff0c;未登录…Spring MVC拦截器是在请求到达处理器前或返回客户端前执行的组件它可以用于拦截和处理请求实现一些通用的功能。 Spring MVC拦截器可以实现的功能包括
登录验证拦截所有请求检查用户是否已登录未登录则跳转到登录页面。权限验证拦截请求检查用户是否拥有访问权限没有权限则跳转到错误页面。日志记录记录请求的参数、处理时间等信息用于分析和排查问题。数据预处理对请求参数进行一些预处理比如格式化日期、转换数据类型等。异常处理拦截处理过程中出现的异常进行统一的异常处理。
要使用Spring MVC拦截器需要实现HandlerInterceptor接口并注册到Spring的上下文中。拦截器可以通过配置匹配的URL路径、排除的URL路径等条件来决定对哪些请求进行拦截。
拦截器的执行顺序由配置的顺序决定可以通过实现Ordered接口来指定拦截器的顺序。在拦截器的preHandle方法中可以根据需要进行请求的拦截或处理在postHandle方法中可以对处理结果做一些处理在afterCompletion方法中可以进行一些清理工作。
拦截器是Spring MVC框架提供的一种灵活、可扩展的机制可以在请求处理的各个阶段进行拦截和处理。它可以帮助我们实现一些通用的功能代码重用性高提高了开发效率。
拦截器 SpringMVC 过滤器 javaWeb
拦截器使用1.创建拦截器类 2.添加拦截器 多个拦截器先声明的优先级高
public class MyInterceptor implements HandlerInterceptor {//执行handler之前 调用的拦截方法 如登录保护 权限处理等Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(request:request response:response handlerhandler);return true;}//执行handler之后 触发的方法 如铭感词汇检查等Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(MyInterceptor.postHandle);}//整体处理完毕后 触发的方法Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(MyInterceptor.afterCompletion);}
}Overridepublic void addInterceptors(InterceptorRegistry registry) {//拦截全部请求registry.addInterceptor(new MyInterceptor());}//方案2.指定地址拦截registry.addInterceptor(new MyInterceptor()).addPathPatterns(/user/data); // 模糊地址/user/* //*代表任意一层 **代表任意多层在Spring MVC中我们可以使用JSR 303Bean Validation注解来进行参数校验。JSR 303定义了一组标准的注解可以用于对Java Bean的属性进行验证。 常用的JSR 303注解包括 NotNull表示属性不能为null。 NotEmpty表示字符串不能为空集合不能为空。 NotBlank表示字符串不能为空且长度必须大于0。 Size表示属性的大小必须在指定的范围内。 Min表示属性的最小值。 Max表示属性的最大值。 Pattern表示属性必须匹配指定的正则表达式。 Email表示属性必须是一个有效的电子邮件地址。
导入依赖 dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion8.0.0.Final/version/dependencydependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator-annotation-processor/artifactIdversion8.0.0.Final/version/dependency步骤1.在实体类中添加注解
public class User1 {NotBlankprivate String name; //不为空Length(min6)private String password; //长度大于6位Min(1)private int age; //1Emailprivate String email; //邮箱格式Pastprivate Date birthday; //过去时间
}2.handler(Validated 实体类 实体类对象)
RestController
RequestMapping(user1)
public class UserController1 {PostMapping(register)public Object register(Validated RequestBody User1 user1, BindingResult result){//BindingResult 获取错误绑定错误不会直接返回if(result.hasErrors()){Map datanew HashMap();data.put(code,400);data.put(msg,参数错误);return data;}return user1;}
}