我做网站了 圆通合肥需要做网站的公司
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:15
当前位置: 首页 > news >正文
我做网站了 圆通,合肥需要做网站的公司,青海省建设厅网站备案资料,电商购物网站开发需求分析4.登录校验
4.1会话
–用户打开浏览器#xff0c;访问web服务器的资源#xff0c;会话建立#xff0c;直到有一方断开连接#xff0c;会话结束。在一次会话中可以包含多次请求和响应。
会话跟踪#xff1a;一种维护浏览器状态的方法#xff0c;服务器需要识别多次请求…4.登录校验
4.1会话
–用户打开浏览器访问web服务器的资源会话建立直到有一方断开连接会话结束。在一次会话中可以包含多次请求和响应。
会话跟踪一种维护浏览器状态的方法服务器需要识别多次请求是否来自同一个浏览器以便在同一次会话的多次请求间共享数据– cookie客服端会话跟踪技术addCookiename,valuegetCookie方法 优点HTTP协议中支持的技术 缺点移动端APP无法使用Cookie不安全用户可以自己禁用CookieCookie不能跨域。跨域区分三个维度协议IP/域名端口 Session服务端会话跟踪技术addAttributename,value,setAttribute(name,value),getAttribute(name)方法 优点存储在服务端安全 缺点服务器集群环境下无法使用SessionCookie缺点 令牌技术 优点支持PC端移动端。解决集群环境下的认证问题。减轻服务端存储压力。 缺点需要自己实现
4.2JWT令牌技术
–简洁、自包含的格式用于在通信双方以JSON数据格式安全的传输信息。由于数字签名的存在这些信息都是可靠的。
组成:
第一部分:Header(头)记录令牌类型、签名算法等。例如:[“alg”:“HS256”,“type”:WT”)
第二部分:Payload(有效载荷)携带一些自定义信息、默认信息等。例如:“id”.1“username”.Tom”
第三部分: Signature(签名)防止Token被篡改、确保安全性。将header、payload并加入指定秘钥通过指定签名算法计算而来。
*第三部分字符的由来不是Base64编码方式生成的而是前面指定的签名算法
应用场景– 登录认证
① 用户登录成功后服务端生成一个JWT令牌并传输给前端。
②前端拿到JWT令牌之后会将其存储起来之后前端的每一次请求都会将JWT令牌携带到服务端服务端会对请求进行统一拦截拦截之后先判断有没有把这个令牌带过来。
如果没有令牌就拒绝访问若有令牌但是无效仍然拒绝访问若有效则直接放心并处理对应请求
*JWT校验时使用的签名秘钥必须和生成JWT令牌时使用的秘钥是配套的编码和解析时秘钥必须相同
*如果JWT令牌解析校验时报错则说明JWT令牌被篡改或失效令牌非法
登录成功下发令牌令牌生成 登录成功后生成JWT令牌返回给前端令牌校验在请求到达服务端后对令牌进行统一拦截、校验用户登录成功后系统会自动下发JWT令牌然后在后续的每次请求中都需要在请求头header中携带到服务端请求头的名称为token值为登录时下发的JWT令牌
4.3Filter
–Filter过滤器是javaWeb三大组件Servlet、Filter、Listener之一 过滤器可以把对资源的请求拦截下来从而实现一些特殊的功能
① 想要访问服务器中的某些资源必须先经过Filter过滤器。
② 再此处进行一些操作完成之后进行放行访问对应的资源
③ 资源访问完毕最后再回到过滤器然后再给浏览器响应对应的数据 过滤器一般完成一些通用的操作比如登录校验、统一编码处理、敏感字符处理等。
如果没有过滤器我们需要在每一个接口中编写登录校验逻辑。
如果登录了放行去访问对应的信息如果没有登录直接在Filter中返回错误信息不再访问后面的请求 定义Filter定义一个类实现Filter接口并重写其所有方法
但是开发中我们一般只实现doFilter这个方法其他两个方式使用默认实现即可 配置FilterFilter类上添加WebFilter注解配置拦截资源路径。引导类上添加ServletComponentScan注解开启Servlet组件支持
执行流程当我们的过滤器拦截到请求之后我们需要完成一个非常重要的操作那就是放行
放行“就是让其去访问对应的web资源访问完过滤器之后还会回到过滤器当中执行“放行”语句后面的代码执行完毕之后再给浏览器响应数据 。
拦截路径在快速入门中配置的是 /*代表拦截所有请求
拦截路径urlPatterns含义拦截具体路径/login只访问/login路径时才会被拦截目录拦截/emps/*访问/emps下的所有资源都会被拦截拦截所有/访问所有资源都会被拦截
过滤器链一个web应用中可以配置多个过滤器多个过滤器形成了一个过滤器链。 过滤器链中的过滤器会一个一个的执行第一个放行之后会执行第二个依次推最后一个过滤器执行完后会访问对应请求。
过滤器链中最后一个过滤器放行的话会放行到web资源当中来访问web资源
访问完资源后是倒着进行的先执行最后一个过滤器再倒数第二个….
登录校验过滤器: 备注说明 用户登录成功后系统会自动下发JWT令牌然后在后续的每次请求中都需要在请求头header中携带到服务端请求头的名称为token值为登录时下发的JWT令牌。 如果检测到用户未登录则会返回如下固定错误信息。 实现思路: 获取请求url 判断请求url中是否包含login如果包含说明是登录操作放行 获取请求头中的令牌token 判断令牌是否存在如果不存在返回错误结果未登录 解析token如果解析失败返回错误结果未登录 放行
代码实现:在过滤器当中为什么要把ServletRequest类型强转成HttpServletRequest类型
在Java中ServletRequest是一个接口它是由Servlet容器提供的。HttpServletRequest接口则是ServletRequest接口的子接口它包含了一些用于HTTP协议的方法和属性。在Java Web应用程序中Servlet容器实现了ServletRequest和HttpServletRequest接口并使用HttpServletRequest实现了HTTP协议相关的逻辑。
在开发Web应用程序时Servlet容器将在每个客户端请求到达时创建一个ServletRequest对象并将其传递给请求处理器。由于具体的实现是由Servlet容器提供的并且通常是HttpServletRequest因此在编写Servlet处理器时我们通常将ServletRequest对象强制转换成HttpServletRequest对象以便能够调用提供的HTTP协议相关方法。
因此在过滤器中如果我们需要使用HttpServletRequest接口中特定的HTTP协议相关方法我们需要将ServletRequest对象强制转换成HttpServletRequest对象。这样我们才能够在处理ServletRequest对象时使用HttpServletRequest中更多的方法和属性。
4.4Interceptor - 拦截器
–是一种动态拦截方法调用调用机制类似过滤器。Spring框架中提供的用来动态拦截控制器方法的执行拦截请求的
作用 拦截请求在指定的方法调用前后根据业务需要执行预先设定的代码
拦截路径:
addPathPatterns 指定拦截哪些路径
excludePathPatterns 执行不拦截哪些不经
/:一级路径-能匹配/depts,/emps,/login,不能匹配/depts/1/:任意级路径-能匹配/depts/1/depts,/depts/1/2/depts/* :/depts下一级路径-能匹配/depts/1不能匹配/depts,/depts/1/2/depts/depts/:/depts下的任意路径-能匹配/depts,/depts/1,/depts,/depts/1/2
执行流程:① 当浏览器向Web服务器发送请求时我们所设定的过滤器会拦截到这一请求。
② 过滤器先执行放行前逻辑在此处决定是否放行
③ 放行之后进入到Spring环境中进入DispatcherServlet
在请求响应时说道tomcat服务器并不识别我们所编写的controller程序但是他是识别Servlet程序的因为tomcat是一个Servlet程序。
而在SpringWeb当中提供了一个非常核心的Servlet我们叫做DispatcherServlet前端核心控制器所以请求会先进入到DispatcherServlet请求由DispatcherServlet再传给Controller
如果设置了拦截器的话DispatcherServlet在传给Controller之前需要先被拦截器拦截住
④ 拦截器拦截到先进行preHandle决定是否放行如果放行便访问Controller层方法
⑤Controller层方法完成之后再执行postHandler方法已经afterCompletion方法
⑥返回给DispatcherServlet
⑦最终执行放行后逻辑
⑧最终给浏览器响应数据
过滤器与拦截器的区别: 接口规范不同过滤器实现Filter接口而拦截器需要实现HandlerInterceptor接口 拦截范围不同过滤器Filter会拦截所有资源而Interceptor只会拦截Spring环境中的资源过滤器拦截范围更大
登录校验拦截器实现思路:与过滤器思路一模一样 获取请求url 判断请求url中是否包含login如果包含说明是登录操作放行 获取请求头中的令牌token 判断令牌是否存在如果不存在返回错误结果未登录 解析token如果解析失败返回错误结果未登录 放行
- 上一篇: 我做的网站怎么提升排名网站转化怎么做
- 下一篇: 我做网站推广空调公司网站建设
相关文章
-
我做的网站怎么提升排名网站转化怎么做
我做的网站怎么提升排名网站转化怎么做
- 技术栈
- 2026年04月20日
-
我做的网站平台百度搜不到wordpress添加文章目录
我做的网站平台百度搜不到wordpress添加文章目录
- 技术栈
- 2026年04月20日
-
我自己做的一个网站显示证书错误四川省住房城乡建设厅网站
我自己做的一个网站显示证书错误四川省住房城乡建设厅网站
- 技术栈
- 2026年04月20日
-
我做网站推广空调公司网站建设
我做网站推广空调公司网站建设
- 技术栈
- 2026年04月20日
-
卧龙区网站建设wordpress 阿里云 漏洞
卧龙区网站建设wordpress 阿里云 漏洞
- 技术栈
- 2026年04月20日
-
乌尔禾区做网站哪里好论坛门户网站建设运营费用
乌尔禾区做网站哪里好论坛门户网站建设运营费用
- 技术栈
- 2026年04月20日
