当前位置:网站首页 > R语言数据分析 > 正文

spring wang(spring 网关 转发referer)



请求顺序不同:请求先到达过滤器再到拦截器

所属不同:过滤器是JavaWeb的,拦截器是Spring的

200:成功

301:重定向,表示资源已永久移动到新的位置,客户端应该更新书签或链接

302:转发,表示资源暂时从不同的 URI 响应,客户端不应该更改书签或链接

400:客户端请求的语法错误,服务器无法理解(400往上的基本上都是客户端的问题,跟url和里面参数有关)

404:服务器无法根据客户端的请求找到资源(网页)。一般来说就是url写的不对或者url里面参数有问题

500:服务器内部报错,无法完成请求(500往上的基本上都是服务器的问题,就跟我们后端编写的代码有关了)

客户端第一次向服务端发送请求的时候,服务器在自己内部生成一个session对象,并产生一个cookie,cookie里携带了一个JSESSIONID,session里保存了一个与JSESSIONID有关的id用于下次请求再来的时候识别,接下来把cookie给到客户端,客户端下次再发送请求的时候就会把cookie携带过去,然后用cookie里存的JSESSIONID与session里的id进行关联对比;以此来判断是否同一用户

注意cookie是服务器生成的然后传给客户端的

存储位置:存储在客户端

存储内容:只能存储字符串

存储大小:大小有限制,只能存储4kb

安全性:不安全,可能会有CSRF攻击的风险

生命周期:cookie可以主动设置生命周期。还可以通过浏览器工具清除

Cookie的最佳实践:使用Cookie保存少量的不重要的数据,比如:浏览记录,用户名

HttpSession对象是由服务端创建的对象,占据服务器的一小块

存储位置: session服务端创建的,保存在服务端,占用服务端内存

存储内容:对象,存啥都可以

存储大小:无限制,取决于服务器内存

安全性:相较于cookie更加安全

生命周期:从创建开始计时如在30min内没有访问session,那么session生命周期就被销毁。

IOC是一个容器,Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系通过 IoC,对象之间的依赖关系由容器在运行时动态地注入,而不是由程序代码静态地指定。这种方式提高了代码的灵活性和可测试性并且将代码解耦

IOC的实现方式:XML配置、注解配置

AOP基本概念:

  1. 切面(Aspect):切面是一个模块化的横切关注点。它包含一个或多个通知(Advice)和一个切入点(Pointcut)。
  2. 通知(Advice):通知定义了切面在特定的连接点(Join Point)上要执行的动作。通知类型包括:
    • 前置通知(Before Advice):在方法调用之前执行。
    • 后置通知(After Advice):在方法调用之后执行,无论方法是否抛出异常。
    • 返回通知(After Returning Advice):在方法成功返回之后执行。
    • 异常通知(After Throwing Advice):在方法抛出异常之后执行。
    • 环绕通知(Around Advice):在方法调用之前和之后执行,可以控制方法的执行流程。
  3. 切点(Pointcut):切入点定义了通知应该在哪些连接点上应用。连接点是程序执行过程中的某个点,如方法调用、异常抛出等。

实现AOP的方式:注解配置以及XML文件配置,我们一般使用注解配置

注解配置步骤

  1. 定义切面:使用  注解标记一个类为切面。
  2. 定义通知:使用 、、、 和  注解定义通知。
  3. 定义切入点:使用  注解定义切入点。

例子:

 
  

 @Pointcut("@annotation(cn.by.wms.annotation.PageX)")

这一段的意思是

  • 匹配所有返回类型: 表示返回类型可以是任意类型。
  • 匹配  包下的所有类: 表示包名为  的所有类。
  • 匹配所有方法名: 表示方法名可以是任意名称。
  • 匹配任意参数列表: 表示方法可以有任意数量和类型的参数。
 
  

原子性(A):即不可分割性,事务要么全部被执行,要么就全部不被执行。

一致性(C):事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还是5000,这就是事务的一致性。

隔离性(I):即一个事务执行之前和执行之后都必须处于一致性状态。

持久性(D):事务一旦结束,数据就持久到数据库

对应两种设计模式:责任链模式以及适配器模式

  • 第一步:发起请求到前端控制器(DispatcherServlet)
  • 第二步:前端控制器请求处理器映射器HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)
  • 第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为一个执行链(HandlerExecutionChain)对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略
  • 第四步:前端控制器调用处理器适配器去执行Handler
  • 第五步:处理器适配器HandlerAdapter将会根据适配的结果去执行Handler
  • 第六步:Handler执行完成给适配器返回ModelAndView
  • 第七步:处理器适配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)
  • 第八步:前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可
  • 第九步:视图解析器向前端控制器返回View
  • 第十步:前端控制器进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)
  • 第十一步:前端控制器向用户响应结果

详细执行流程:

Listener、Filter、Servlet

约定大于配置

开箱即用

内置tomcat

bean的定义--实例化--属性注入--初始化--使用--销毁

构造方法注入

setter方法注入

属性注入(Autowired和Resources)

注入方式不同:Autowired根据类型注入,而Resources先根据名称注入,如果找不到就根据类型注入

来源不同:@Autowired属于Spring,@Resource属于Java

重定向:两次请求,第一次请求到原始 URL,第二次请求到新的 URL

重定向特点:客户端发起两次请求,浏览器地址栏发生变化,用户有感知,可以访问不同服务器上的资源

转发:一次请求,服务器内部处理转发

转发特点:一次请求,浏览器地址栏不变,用户无感知,不能访问不同服务器的资源

到此这篇spring wang(spring 网关 转发referer)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • airplus是什么品牌耳机(airplus02是什么牌子耳机)2025-06-27 11:27:04
  • lvremove命令(lvcreate命令)2025-06-27 11:27:04
  • tree size 安卓(安卓treeview)2025-06-27 11:27:04
  • codetop题库(codeforces题库)2025-06-27 11:27:04
  • zipentry类 读取乱码(zipoutputstream 乱码)2025-06-27 11:27:04
  • red hat证书(red hat证书什么样子)2025-06-27 11:27:04
  • dred怎么读(dred怎么读英语)2025-06-27 11:27:04
  • rbac权限系统设计(权限系统设计方案)2025-06-27 11:27:04
  • airplay投屏怎么设置(airplayer投屏教程)2025-06-27 11:27:04
  • swagger2 配置(swagger2使用教程)2025-06-27 11:27:04
  • 全屏图片