请求顺序不同:请求先到达过滤器再到拦截器
所属不同:过滤器是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基本概念:
- 切面(Aspect):切面是一个模块化的横切关注点。它包含一个或多个通知(Advice)和一个切入点(Pointcut)。
- 通知(Advice):通知定义了切面在特定的连接点(Join Point)上要执行的动作。通知类型包括:
- 前置通知(Before Advice):在方法调用之前执行。
- 后置通知(After Advice):在方法调用之后执行,无论方法是否抛出异常。
- 返回通知(After Returning Advice):在方法成功返回之后执行。
- 异常通知(After Throwing Advice):在方法抛出异常之后执行。
- 环绕通知(Around Advice):在方法调用之前和之后执行,可以控制方法的执行流程。
- 切点(Pointcut):切入点定义了通知应该在哪些连接点上应用。连接点是程序执行过程中的某个点,如方法调用、异常抛出等。
实现AOP的方式:注解配置以及XML文件配置,我们一般使用注解配置
注解配置步骤:
- 定义切面:使用 注解标记一个类为切面。
- 定义通知:使用 、、、 和 注解定义通知。
- 定义切入点:使用 注解定义切入点。
例子:
@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)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/34097.html