小程序 企业网站成都高端网站建设

web/2025/10/5 14:01:09/文章来源:
小程序 企业网站,成都高端网站建设,jquery timelinr wordpress,网站建设与管理就业去向* 1、编写一个拦截器实现HandlerInterceptor接口 * 2、拦截器注册到容器中#xff08;实现WebMvcConfigurer的addInterceptors#xff09; * 3、指定拦截规则【如果是拦截所有#xff0c;静态资源也会被拦截】 这段代码定义了一个 LoginInterceptor 类#xff0c;它实现了…   * 1、编写一个拦截器实现HandlerInterceptor接口 * 2、拦截器注册到容器中实现WebMvcConfigurer的addInterceptors * 3、指定拦截规则【如果是拦截所有静态资源也会被拦截】 这段代码定义了一个 LoginInterceptor 类它实现了 HandlerInterceptor 接口用于在 Spring MVC 中进行拦截器的操作。拦截器可以用来在请求的处理流程中执行特定的逻辑比如权限检查、日志记录等。下面是对这段代码的注释和解释 javaimport org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.method.HandlerInterceptor; Slf4j // 通过 Lombok 注解自动创建 Logger 实例public class LoginInterceptor implements HandlerInterceptor { /**     * 目标方法执行之前调用的拦截器逻辑     * param request HTTP 请求对象     * param response HTTP 响应对象     * param handler 处理器例如 Controller 中的方法     * return 如果返回 true则请求继续执行如果返回 false则请求中断不再执行后续的拦截器或处理器     * throws Exception 可能抛出的异常     */    Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {        // 获取请求的 URI        String requestURI request.getRequestURI();        // 使用 SLF4J 记录拦截的请求路径        log.info(preHandle拦截的请求路径是{}, requestURI); // 登录检查逻辑        // 通过 request 获取当前会话的 HttpSession 对象        HttpSession session request.getSession(); // 从 session 中获取名为 loginUser 的属性用于验证用户是否已登录        Object loginUser session.getAttribute(loginUser); // 如果用户已登录即 loginUser 不为空则放行请求        if (loginUser ! null) {            return true;        } // 如果用户未登录则拦截请求        // 将错误消息 请先登录 存储在 request 属性中以便在登录页面显示        request.setAttribute(msg, 请先登录);        // 转发到登录页面这里使用了 request.getRequestDispatcher(/) 来获取登录页面的请求分发器        request.getRequestDispatcher(/).forward(request, response);        // 返回 false 表示请求被拦截不会继续执行后续的拦截器或处理器        return false;    }} 解释 1. Slf4j 是 Lombok 库提供的一个注解它可以自动生成一个名为 log 的 Logger 实例用于记录日志。这样你就可以直接使用 log.info() 等方法来记录日志而不需要手动创建 Logger 对象。 2. preHandle 方法是 HandlerInterceptor 接口中的一个方法它在控制器方法handler执行之前被调用。这个方法的返回值决定了请求是否继续执行。如果返回 true则请求继续向下执行如果返回 false则请求被拦截不会执行后续的拦截器或控制器方法。 3. 在 preHandle 方法中首先记录了当前请求的 URI。然后通过 request.getSession() 获取当前会话的 HttpSession 对象并尝试从会话中获取名为 loginUser 的属性这个属性通常用于存储用户的登录状态。 4. 如果用户已经登录loginUser 不为空则方法返回 true请求继续执行。 5. 如果用户未登录loginUser 为空则在请求属性中设置一条消息并转发到登录页面。这里使用 request.getRequestDispatcher(/).forward() 方法来实现请求的转发。 6. 最后方法返回 false表示请求被拦截不会继续执行后续的拦截器或控制器方法。   代码行 request.getRequestDispatcher(/).forward(request, response); 是 Java Servlet API 中的一部分用于在当前请求的上下文中转发请求到另一个资源。这行代码通常用于拦截器或 Servlet 中当你想要将用户的请求从当前路径重定向到另一个路径时。 让我们分解这行代码 - request.getRequestDispatcher这是 HttpServletRequest 对象的一个方法它创建一个 RequestDispatcher 对象。RequestDispatcher 是用于转发请求到其他资源的接口。调用 request.getRequestDispatcher 时你需要传入一个路径这个路径是相对于当前请求的路径的。 - /这是传递给 request.getRequestDispatcher 方法的路径。在这个例子中/ 表示应用程序的根路径。这意味着请求将被转发到应用程序的首页或登录页面具体取决于应用程序的配置。 - .forward(request, response)这是 RequestDispatcher 对象的一个方法它将请求和响应对象作为参数。此方法将请求和响应对象传递给目标资源这样目标资源就可以生成响应内容并将其发送回客户端。 在上下文中request.getRequestDispatcher(/).forward(request, response); 这行代码的作用是 1. 获取一个能够转发请求到应用程序根路径的 RequestDispatcher 对象。 2. 使用这个 RequestDispatcher 将当前的请求和响应对象转发到根路径。 3. 由于请求被转发控制器中 preHandle 方法之后的代码不会被执行。 4. 用户的浏览器会收到一个转发到新页面的响应通常是登录页面用户可以在该页面进行登录操作。 这种转发是服务器端的用户不会感知到 URL 的变化除非他们查看浏览器的地址栏。这与重定向redirect不同重定向是通过发送一个新的响应给客户端告诉浏览器去请求一个新的 URL。   Override public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns(/**) //所有请求都被拦截包括静态资源.excludePathPatterns(/,/login,/css/**,/fonts/**,/images/**,/js/**,/aa/**); //放行的请求这段代码是 Spring Boot 应用中配置拦截器的一个典型例子。InterceptorRegistry 是 Spring MVC 提供的一个接口用于注册拦截器HandlerInterceptor并配置它们的拦截规则。java Override public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()) // 注册自定义的拦截器.addPathPatterns(/**) // 设置拦截器拦截所有请求包括静态资源.excludePathPatterns(/, /login, /css/**, /fonts/**, /images/**,/js/**, /aa/**) // 设置不拦截的请求路径 } 解释1. Override 注解表明该方法是对父类或接口中方法的重写。2. public void addInterceptors(InterceptorRegistry registry) 是一个方法它接收一个 InterceptorRegistry 类型的参数。这个方法通常在配置类中实现并且使用 Override 注解标记因为它重写了 WebMvcConfigurer 接口中的 addInterceptors 方法。3. registry.addInterceptor(new LoginInterceptor()) 这行代码将一个名为 LoginInterceptor 的拦截器添加到 Spring MVC 的拦截器链中。LoginInterceptor 是一个自定义的拦截器类它可能包含一些逻辑比如检查用户是否登录、记录日志等。4. .addPathPatterns(/**) 指定拦截器应该拦截的请求路径。/** 是一个 Ant 风格的路径模式表示匹配所有的请求路径。这意味着 LoginInterceptor 将对所有的请求进行拦截包括对静态资源的请求。5. .excludePathPatterns 方法用于指定拦截器不应对哪些请求路径进行拦截。在这个例子中它排除了以下几个路径- /应用的根路径通常是首页。- /login登录页面的路径。- /css/**所有 /css 目录下的请求包括子目录。- /fonts/**所有 /fonts 目录下的请求。- /images/**所有 /images 目录下的请求。- /js/**所有 /js 目录下的请求。- /aa/**所有 /aa 目录下的请求。通过这种方式你可以灵活地控制拦截器的行为确保它们只对需要进行特定处理的请求进行拦截而不影响对静态资源和其他不需要拦截的请求的访问。这是一种常见的做法用于确保安全性和性能的最佳实践例如通过拦截器实现用户身份验证和授权。#spring.mvc.static-path-pattern/static/**是一个 Spring Boot 的配置属性用于定义静态资源的映射路径。这个配置通常位于 application.properties 或 application.yml 配置文件中。在 Spring Boot 应用中静态资源如 HTML、CSS、JavaScript 文件等通常由内置的 Tomcat 或其他嵌入式服务器提供。spring.mvc.static-path-pattern 属性指定了应用中哪些请求应该被视为静态资源请求并告诉 Spring Boot 从哪里提供这些资源。这里的配置表示- static这是一个占位符表示静态资源的根目录。 - /**这是一个 Ant 风格的路径模式表示匹配 /static/ 路径下的所有子路径。换句话说这个配置告诉 Spring Boot 将所有以 /static/ 开头的请求映射为静态资源请求。例如如果你有一个位于 /static/css/style.css 的 CSS 文件你可以通过 /static/css/style.css 的 URL 来访问它。如果你的静态资源位于类路径classpath的 /static 目录下这个配置就会自动生效。如果你希望使用不同的目录或路径模式你可以修改这个属性的值。例如如果你想要从 /resources/static 目录提供静态资源并希望它们可以通过 /static/** 路径模式访问你可以这样配置properties spring.mvc.static-path-pattern/static/** 请注意当使用 # 符号时它通常表示这是一个注释但在这个上下文中它可能是配置文件中的一个注释掉的行或者是在文档中用来说明的一个示例。在实际的 application.properties 文件中你应该去掉 # 符号以激活这个配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设淘宝客网站源码怎么弄app制作开发公司前十名

1.点击New Project 2.创建项目名称为helloweb ,jdk版本这里使用8,更高版本也不影响工程创建 点击create 3.新建的工程是空的,点击File-> Project Structure 4.点击Modules 5.点击加号,然后键盘输入web可以搜索到web模块&…

网站 规划wordpress 文章 字体大小

1.关闭稻壳模板: 1.1. 启动wps(注意不要乱击稻壳模板,点了就找不到右键菜单了) 1.2. 在稻壳模板选项卡右击:选不再默认展示 2.关闭托盘中wps云盘图标:右击云盘图标/同步与设置: 2.1.关闭云文档同步 2.2.窗口选桌面应用…

高级设计网站虚拟主机评测

https://leetcode.cn/problems/c32eOV/ 我们使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则fast 指针最终将再次与slow 指针在环中相遇。 stru…

设计 p网站免费进入电影网站人人网入口

校园快递代取系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园快递代取系统就是在这样的大环境下诞生,其可以帮助管理者在短…

怎么把网站扒下来室内设计网站模板

HR-saas中台管理项目开发完整教程(附代码资料)主要内容讲述:vuex基础-介绍,vuex基础-初始化功能,vuex基础-state,vuex基础-mutations,vuex基础-actions,vuex基础-getters。项目课设计,人力资源的环境搭建vue-element-admin的了解和…

南通市网站做食品研发都有哪些网站

文章目录 前言1、dedup()去重并排序2、traverse()拆分嵌套数组3、filter()数据筛选4、groupby()分组运算5、select()遍历结果集6、sort()数据排序 总结 前言 在 Python 的数据处理方面经常会用到一些比较常用的数据处理方式,比如pandas、numpy等等。 今天介绍的这…

做一视频网站多少钱旅游宣传推广方案

前言 JS模块打包器是一种工具,它可以将多个JS文件或模块合并成一个或多个输出文件,以便在浏览器或其他环境中使用。 JS模块打包器的作用有: 优化代码:通过压缩、混淆、删除无用代码等方式,减少代码的体积和复杂度&…

网站建设服务怎么样网页网站开发大概多少钱

最近被问到一个问题,如何计算一个由3个0和3个1组成的序列的所有组合情况,处理这个问题我没有找到特别恰当的函数(如果有能直接做的函数欢迎评论告知),所以采用比较接近需求的perms函数来解决这个问题 首先看perms函数…

在线浏览器网页版入口网站如何优化关键词排名

生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮…

价格低网站关键词优化网站推广

前言 最近工作过程中需要设定邮件服务器,其中涉及到dns服务器的设定。 整理并且记录自己的理解。 种类 A、CNAME、MX、NS、TXT、SPF 下面挨个介绍一下。 A记录/AAAA记录 IPv4: 示例:ns1.exmaple.com. IN A 198.51.100.2解释&#xff1a…

网站备案是指什么中国室内设计大奖赛

目录 1. 类的引入 2. 类的定义 4. 类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6.类的实例化 7.类对象模型 8. this指针 8.1 this指针的引出 8.2 this指针的特性 8.3 C语言和C实现栈的对比 9.类的六个默认成员函数 10,构造函数 10.1…

网站开发 activex电商网站界面规范

[Java教程]js循环的总结02016-10-07 15:00:14js原生的循环有两种&#xff0c;一般的for循环和for...in循环。还有一种常用jQuery.each()循环。一. js原生循环a. for循环&#xff0c;代码如下&#xff1a;var myArray [1,2,3];for (var i 0; i < myArray.length; i) {conso…

网站可以做什么哪个网站的品牌特卖做的好

1.写文章&#xff0c;多发表个人见解&#xff0c;增加个人思考机会&#xff1b; 2.大量看书&#xff0c;自学&#xff0c;但一定要选好书&#xff1b;3.多和圈里高手交流&#xff0c;听君一席话&#xff0c;胜读十年书&#xff0c;遇到不懂的多请教&#xff1b;4.建立个人文件管…

iis 网站关闭西安做视频网站公司

应用场景&#xff1a; 在form表单内&#xff0c;动态生成一个数组类型的一组数据&#xff0c;要求对生成的每一组数据内容进行表单验证。例如动态添加人员&#xff0c;并对每个人的人员的信息输入框进行表单验证。 解决思路&#xff1a; 把rules的验证规则循环写在element ui的…

常州天狼网站建设用ip地址做网站地址有危险

目录 1. 变量和数据类型2. 函数3. 类4. 异常处理5. 泛型6. 变量声明和类型推断&#xff1a;7. 函数定义&#xff1a;8. 类定义和实例化&#xff1a;9. 接口定义&#xff1a;10. 抽象类定义&#xff1a;11. 混合类型列表&#xff1a;12. Flutter 中的 UI 组件&#xff1a;13.Dar…

网站的构成北京网络营销咨询公司

当我们训练好一个网络模型后必不可少的就是对模型跑前向&#xff0c;看模型的实际性能如何。python绝对是最简单的环境&#xff0c;所以本文写一个python版本的前向测试。 import os import cv2 import sys import caffe import glob import argparse from PIL import Image im…

昆山网站建设价格网站制作相关知识

转载&#xff1a;百度安全验证 一、TCP/IP 1. 定义 TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;是一组用于互联网的通信协议&#xff0c;由美国国防部高级研究计划署&#xff08;ARPA&#xff09;在20世纪70年代开发&#xff0c;被广泛…

网站源码如何保存网站建设公司企业模板

摘要&#xff1a;本文作者为Paydirt创始人Tristan Gamilis&#xff0c;他在文中分享了如何面对创业过程中的失败。作为一个创业者&#xff0c;开始的时候并非全才&#xff0c;很多知识都是经历了创业中的失败&#xff0c;摸爬滚打之后才学会的。所以&#xff0c;我们在创业过程…

如何让百度搜到我的网站1688域名网站

在当今数字化时代&#xff0c;个人数据的安全与隐私保护显得尤为重要。为了满足用户对数据信息的安全需求&#xff0c;我们推出Codigger分布式操作系统&#xff0c;它提供了一个运行私有应用程序的平台&#xff0c;旨在为用户提供一个安全、稳定、高效的私人应用运行环境。Codi…

大连 响应式网站网站建站网站哪家好

本节我们通过日志详细讨论 instance 的 snapshot 操作。 有时候操作系统损坏得很严重&#xff0c;通过 Rescue 操作无法修复&#xff0c;那么我们就得考虑通过备份恢复了。当然前提是我们之前对instance做过备份。 Nova 备份的操作叫 Snapshot&#xff0c;其工作原理是对 insta…