- 博客(8)
- 收藏
- 关注
原创 Redis、Spring/SpringMVC、JVM、微服务(Spring Boot/Spring Cloud )(面试题)
对于POST请求,主要在客户端设置表单编码,并在后端设置请求体编码。对于GET请求,主要对URL中的参数进行URL编码,后端在解析参数时通常不需要额外设置编码。确保整个请求-响应过程中使用的编码一致,是避免中文乱码的关键3、请描述 Spring MVC 的主要组件?:前端控制器,负责接收请求、调用其他组件处理请求并响应结果,相当于转发器和中央控制器。:处理器映射器,根据请求的URL查找对应的处理器(Handler)。:处理器适配器,负责按照特定规则去执行Handler。
2024-05-15 11:42:40 822
原创 IoC容器在Web环境中的启动
在 web.xml 中,已经配置了 ContextLoaderListener,它是 Spring 提供的类,是为在 Web 容器 中建立 IoC 容器 服务的,它实现了 ServletContextListener 接口,这个接口是在 Servlet API 中定义的,提供了与 Servlet 生命周期 结合的回调,比如上下文初始化 contextInitialized()方法 和 上下文销毁 contextDestroyed()方法。具体说来,这个启动过程是和 Web 容器 的启动过程集成在一起的。
2024-03-25 17:14:52 1408 1
原创 servlet-api源码赏析
Servlet(Server Applet)是 J2EE 的内容之一,由 Java 编写的服务器端小程序。它是 web 请求的入口,主要功能在于交互式地(Request 和 Response)浏览和修改数据,生成动态 Web 内容。Servlet 运行于支持 Servlet 的 WEB 容器中,如 Tomcat。从实现上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议 的 Web 服务器。
2024-03-25 17:10:40 745 1
原创 基于Netty的客户端开发
相对于服务端,Netty 客户端 的创建更加复杂,除了要考虑线程模型、异步连接、客户端连接超时等因素外,还需要对连接过程中的各种异常进行考虑。本章将对 Netty 客户端 创建的关键流程和源码进行分析,以期读者能够了解客户端创建的细节。
2024-03-25 17:04:29 520 1
原创 基于Netty的服务端开发
服务器处于 listen 状态 时,收到客户端 syn 过程(connect) 时在未完成队列中创建一个新的条目,然后用三次握手的第二个过程,即服务器的 syn 响应客户端,此条目在第三个过程到达前 (客户端对服务器 syn 的 ack) 一直保留在未完成连接队列中,如果三次握手完成,该条目将从未完成连接队列搬到已完成连接队列尾部。从调度层面看,也不存在从 EventLoop 线程 中再启动其他类型的线程用于异步执行另外的任务,这样就避免了多线程并发操作和锁竞争,提升了 IO 线程 的处理和调度性能。
2024-03-25 17:00:40 482 1
原创 Shiro&SpringSecurity(面试题 )
Spring Security 是一个基于 Spring 框架的安全框架,提供了完整的安全解决方案,包括认证、授权、攻击防护等功能。其核心功能包括认证:指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。授权:指的是验证某个用户是否有权限执行某个操作攻击防护:指的是防止伪造身份攻击防护:提供了多种防护机制,如跨站点请求伪造(CSRF)防护、注入攻击防护等。会话管理:提供了会话管理机制,如令牌管理、并发控制等。监视与管理:提供了监视与管理机制,如访问日志记录、审计等。
2024-03-25 14:16:56 654 1
原创 Spring框架
AOP的全称是Aspect Oriented Programming,中文含义为面向切面编程,是相对面向对象而言的。切面是横切面的意思,切开的切口就是切面,即AOP是把对象或固定的流程“切开’,找到其中的公共行为,并将其进行提取统一处理的一种思想。AOP可以认为是对OOP的一种补充。这种横向式的编程方式更容易处理不同对象、不同模块之间的共同业务,如访问控制、事务管理、性能检测等。
2024-03-23 15:14:06 1417 1
原创 三层架构:搭建项目框架
SpringBoot引入了起步依赖的概念,它预先定义好了一组常用的库和配置,开发者只需要在项目的pom.xml或build.gradle文件中添加相应的起步依赖,就可以快速引入所需的库和配置。与全自动化的ORM框架(如Hibernate)相比,MyBatis需要开发者编写SQL语句,因此它提供了更大的灵活性,但同时也需要开发者对SQL有一定的了解。SpringBoot提供了许多预定义的起步依赖,这些起步依赖包含了一组常用的库和配置,使得开发者可以快速引入所需的依赖。
2024-03-23 10:55:14 1803
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人