SSM框架
文章平均质量分 82
学习记录
超周到的程序员
【履历】目前就职于快手,大三时在腾讯实习,22年秋招收到多家大厂的录用offer:腾讯云、快手、云账户、福耀、比亚迪等,有二十余场面试经验
【技术咨询】本人可提供指导的方向:软件开发领域的多种语言的后端开发(Java、Python、Node.js、Go)、前端开发、3D游戏开发、App开发、网络爬虫、Web自动化、数据可视化
展开
-
【Apache Shiro】学习笔记:授权、会话、缓存、RememberMe
通过自定义拦截器可以扩展功能,例如:动态url-角色/权限访问控制的实现、根据 Subject 身份信息获取用户信息绑定到 Request(即设置通用数据)、验证码验证、在线用户信息的保存等Shiro 提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管 JavaSE 还是 JavaEE 环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web 的透明支持、SSO 单点登录的支持等特性。原创 2022-10-31 09:28:57 · 185 阅读 · 0 评论 -
【Apache Shiro】学习笔记:功能、架构、集成Spring、认证
Apache Shiro 是 Java 的一个安全(权限)框架,可以完成:认证、授权、加密、会话管理、与Web 集成、缓存等功能。原创 2022-10-31 09:28:07 · 152 阅读 · 0 评论 -
Spring MVC:文件上传和下载
文章目录文件上传文件下载文件上传1、导入主要依赖<!--文件上传--><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version></dependency><!--servlet-api导入高版本的-原创 2021-04-10 22:10:25 · 485 阅读 · 4 评论 -
【Spring MVC:拦截器】 介绍,简例,登陆权限拦截
文章目录拦截器一、介绍二、自定义拦截器测试拦截器一、介绍二、自定义拦截器测试1、控制器@RestControllerpublic class MyController { @RequestMapping("i1") public String i1() { System.out.println("=====执行方法i1====="); return "ok"; }}2、自定义拦截器,必须实现 HandlerInterceptor原创 2021-04-10 16:40:56 · 241 阅读 · 1 评论 -
【Ajax技术】学习总结,详细介绍 + 伪Ajax + 异步获取用户列表信息 + 输入框动态信息提示(代码+图例)
文章目录一、简介二、常见应用(1)百度的输入框(2)百度图片(3)微博等三、实例(1)伪Ajax,同样效果的局部刷新(2)jQuery Ajax一、简介AJAX(Asynchronous JavaScript and XML,异步的JS和XML) 是一种用于创建快速动态网页的技术。AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。二、常见应用(1)百度的输原创 2021-04-10 14:41:39 · 279 阅读 · 1 评论 -
【SSM整合:图书信息管理系统】Spring+SpringMVC+MyBatis简易CRUD小项目
前言:此项目是前段时间学习自视频https://www.bilibili.com/video/BV1RE41127rv如今已过多日,为了再次回顾,便写下此文,与大家一起分享,此项目很有代表性,也是一个非常适合整合SSM的入门友好型项目文章目录一、环境与配置二、项目编写1、数据库部分2、Java后端部分(1)POJO实体类(2)Dao层(3)Service层(4)Controller层3、JSP前台部分 + 各功能详解(1)书籍展示(2)书籍查询(2)书籍更改(3)书籍添加(4)书籍删除一、环境与配.原创 2021-04-08 11:15:18 · 2109 阅读 · 10 评论 -
【可复用——笔记】SSM框架搭建(骨架)
文件结构大致的文件结构(可按自己需要补充)配置文件pom.xml<dependencies> <!--Junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </depen原创 2021-04-06 19:12:37 · 327 阅读 · 0 评论 -
【Spring MVC】(第三篇)处理JSON的常用工具,Jackson的使用,JSON 中文乱码问题
文章目录一、处理JSON的常用工具二、Jackson的使用单个对象多个对象格式化时间的JSON三、JSON 中文乱码问题方法一(局部配置)方法二(全局配置)一、处理JSON的常用工具常用工具:Jacksonfastjson二、Jackson的使用单个对象多个对象格式化时间的JSON三、JSON 中文乱码问题方法一(局部配置)为 @RequestMapping配置属性 produces = “application/json;charset=utf-8”方法二(全局配原创 2021-04-05 14:26:39 · 290 阅读 · 2 评论 -
Java中Web开发之乱码问题分析(问题背景 + 问题解决:三次失败案例,两次成功案例)
前言:学习自https://www.bilibili.com/video/BV1aE41167Tu写下此文文章目录问题背景问题解决失败案例1失败案例2成功案例1成功案例2(推荐)问题背景出现乱码问题解决失败案例1在之前的Servlet中,我们用HttpServlet Request / Response解决乱码,现在也尝试一下还是乱码失败案例2在之前的Servlet中,拦截器的方式也可以解决(当然,和直接在Servlet中用req和resp设置原理一样,这里顺便借这个错回.原创 2021-04-04 22:52:37 · 309 阅读 · 4 评论 -
【Spring MVC】(第二篇)【超详细】RESTful风格 + 重定向与请求转发 + 接收请求参数 + 数据传递到前端(ModelAndView,ModelMap与Model)
文章目录一、RESTful风格1、介绍2、实例(1)传统方式(2)RESTful方式1)通过属性指定请求类型2)通过注解指定请求类型二、重定向与请求转发Servlet方式Spring MVC方式总结:请求转发与重定向三、接收请求参数Servlet方式Spring MVC方式1、默认对应:请求参数与方法参数同名2、@RequestParam注解(1)接收到属性中(2)接收到对象中1)默认对应:请求参数与对象字段同名四、数据传递到前端(1)ModelAndView(2)ModelMap(3)Model一、RE原创 2021-04-04 21:46:59 · 508 阅读 · 0 评论 -
【Spring MVC】 (第一篇)概述 + 项目实例(配置版+注解版)+ 具体步骤 + 流程原理的分析,附:/ 与 /* 的区别
前言:学习自https://www.bilibili.com/video/BV1aE41167Tu文章目录Spring MVC1、介绍2、项目实例(配置版)(1)具体步骤(2)流程原理的分析(3)附:/ 与 /* 的区别Spring MVC1、介绍Spring MVC属于SpringFrameWork的子项目。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spri.原创 2021-04-03 20:39:08 · 2206 阅读 · 4 评论 -
【MVC三层架构】M、V、C概述,架构图例,Web开发历史
前言:部分内容参考自视频教程:https://www.bilibili.com/video/BV1aE41167Tu文章目录MVC介绍1、M、V、C(1)Model(2)View(3)Controller2、MVC架构图例3、Web开发历史(1)Model1时代(2)Model2时代MVC介绍1、M、V、CMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。通过将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间.原创 2021-04-03 20:36:32 · 5098 阅读 · 0 评论 -
【Spring框架】整合MyBatis的两种方式+声明式事务管理
前言:因Spring配置方式很灵活,可以用注解,或者xml,或者混合使用,因此,只了解本文整体的思路即可,不必追究某处该用@Bean或@Autowired更合适,等等文章目录方式一步骤代码示例方式二在方式一的基础上更改方式一步骤1、配置spring-dao.xml(1)dataSource(2)sqlSessionFactory(3)sqlSessionTemplate2、编写实体类3、编写Mappr接口4、编写Mapper接口实现类,将sqlSessionTemplate注入此对应.原创 2021-04-03 13:50:14 · 365 阅读 · 0 评论 -
【Yaml配置】语法格式 + Yaml为实体类的属性赋值
语法格式#字面量ka: v#对象kb: {k1: v1, k2: v2, k3: v3}kc: k1: v1 k2: v2 k3: v3#数组kd: [v1,v2,v3]k: - v1 - v2 - v3Yml为实体类的属性赋值实体类@ConfigurationProperties(prefix = "person")@Component@ToString@Datapublic class Person { private Stri原创 2021-04-03 11:02:51 · 438 阅读 · 0 评论 -
【Spring框架】Bean的各作用域详解
前言:学习自https://www.bilibili.com/video/BV1WE411d7Dv?p=11文章目录一、Bean的作用域1、Bean简介2、各作用域简介(1)singleton(单例模式)(2)prototype(原型模式)(3)request(4)session(5)application(6)websocket3、配置方式二、Bean中属性的自动装配三、XML方式与注解方式的选择一、Bean的作用域1、Bean简介在Spring中,那些组成应用程序的主体及由Spring Io.原创 2021-04-03 10:26:41 · 644 阅读 · 0 评论 -
【Spring框架】Spring(七大模块详解),Spring Boot与Spring Cloud介绍,控制反转(IoC)
Spring简介Spring是一个轻量级的,非入侵式的开源免费框架,核心特点是控制反转(IOC)和面向切面编程(AOP)等,支持事务处理,以及对框架的整合,Spring解决了企业应用开发的复杂性,结束了EJB开发的”黑暗“时代,迎来了Java企业应用开发行业的”春天“。七大模块...原创 2021-04-02 19:35:27 · 557 阅读 · 0 评论 -
【Spring框架】Aop的六个常用术语+五种通知类型的解析+实例测试
文章目录一、AOP常用术语连接点(Joinpoint)切点(Pointcut)通知(Advice)切面(Aspect)引入(Introduction)织入(Weaving)二、解析五种通知类型【前言】前置通知后置通知返回通知异常通知环绕通知三、实例测试1.项目结构2.测试用的部分核心代码3.运行结果附:XML配置方式一、AOP常用术语(术语中部分内容参考自《Spring实战》(第四版)连接点(Joinpoint)简述:所有可以定义切点的“地方”,或者说是所有可以去添加增强代码的“地方”。详述:是在原创 2021-01-23 17:29:14 · 1361 阅读 · 1 评论 -
【Spring框架】JdbcTemplate基本用法
文章目录一、JdbcTemplate概述二、将JdbcTemplate加载到Spring容器中1.Java配置方式2.XML配置方式三、实例测试1.MySQL数据表(测试用)2.数据表对应类3.单元测试类一、JdbcTemplate概述JdbcTemplate是最基本的Spring JDBC模板,此模板支持简单的JDBC数据库访问功能以及基于索引参数的查询。JdbcTemplate替我们封装了部分使用JDBC API进行开发的单调乏味的、底层细节处理工作。二、将JdbcTemplate加载到Spri原创 2021-01-21 16:59:07 · 215 阅读 · 0 评论 -
【Spring框架】XML配置方式汇总
XML方式一、环境搭建构建一个普通Maven项目,在pom.xml中添加如下依赖(根据自己的合法版本去设定version):<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5原创 2021-01-18 23:51:20 · 1968 阅读 · 8 评论 -
MyBatis知识汇总(第十篇)【详解】MyBatis的缓存机制,一级缓存+失效的3种情况,二级缓存,详解,实例,注意事项
前言:部分内容学习参考自视频教程:https://www.bilibili.com/video/BV1NE411Q7Nx?p=26官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html文章目录缓存0、MyBatis的缓存机制1、一级缓存(1)简介(2)实例(3)一级缓存失效的3种情况2、二级缓存(1)简介(2)实例(4)注意事项(5)小结缓存0、MyBatis的缓存机制缓存是指存在内存中的临时数据。可将用户经常查询且自身不经常变化的数据放.原创 2021-04-01 19:38:47 · 197 阅读 · 0 评论 -
MyBatis知识汇总(第九篇)动态SQL + SQL片段
文章目录动态SQL1、if2、choose (when, otherwise)3、trim (where, set)wheresettrim动态SQL1、if此处,用了不正规的方法,为了避免第一个if匹配失败而导致WHERE后之间出现AND的情况,官网也提供了where标签(见下文trim (where, set)部分)测试类@Testpublic void testQueryBlogIF() { SqlSession sqlSession = MyBatisUtils.getSqlS原创 2021-04-01 16:42:11 · 334 阅读 · 2 评论 -
MyBatis知识汇总(第八篇)ResultMap结果集映射+复杂属性映射【多对一的情况】【一对多的情况】
前言:部分参考自https://www.bilibili.com/video/BV1NE411Q7Nx?p=20文章目录ResultMap结果集映射一、解决属性名和字段名不一致的问题1、问题背景2、解决方法方法1:AS指定别名方法2(推荐):ResultMap结果集映射3、ResultMap结果集映射二、解决JavaBean中的复杂属性【多对一的情况】1、问题背景2、解决方法方法一:按照查询嵌套处理方法二:按照结果嵌套处理(推荐)【一对多的情况】1、问题背景2、解决方法方法:按照结果嵌套处理Resu.原创 2021-04-01 10:47:05 · 287 阅读 · 1 评论 -
MyBatis知识汇总(第七篇)【图文】关于执行流程的源码分析+底层原理
MyBatis详细执行流程步骤总结:1、Resources加载全局配置文件2、实例化SqlSessionFactoryBuilder工程构建器3、由XMLConfigBulider解析配置文件流4、把配置信息存放在Configuration中5、实例化SqlSessionFactory实现类DefaultSqlSessionFactory6、由TransactionFactory创建一个Transaction事务对象7、创建Excutor执行器8、创建SqlSession接口实现类De原创 2021-03-31 23:06:56 · 121 阅读 · 1 评论 -
MyBatis知识汇总(第六篇)面向接口编程,使用注解开发,关于@Param注解,#与$的区别
前言:学习自https://www.bilibili.com/video/BV1NE411Q7Nx?p=9文章目录一、面向接口编程1、简介2、关于接口二、使用注解开发1、实例测试2、官方文档的建议3、部分原理的补充(1)反射机制(2)动态代理一、面向接口编程1、简介根本原因:解耦,可扩展,提高复用性。在分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发更加规范化,简便化。使主要精力放到各对象之间的写作关系上,减少在各种功能对象的内部实现上花过多精力。2、关于接.原创 2021-03-31 19:00:31 · 275 阅读 · 2 评论 -
MyBatis知识汇总(第五篇)日志简介,标准日志STDOUT_LOGGING,LOG4J 配置与使用说明
前言:学习自https://www.bilibili.com/video/BV1NE411Q7Nx?p=9文章目录日志1、日志简介2、标准日志STDOUT_LOGGING(1)配置(直接设置setting即可)3、LOG4J(1)简介(2)配置(3)使用日志1、日志简介作用:一个数据库操作出现了异常,原生的Java报错可读性不强,或者说报错信息较繁琐。日志就可以很好地解决这一问题。SLF4JLOG4J【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDO.原创 2021-03-31 08:40:07 · 1222 阅读 · 2 评论 -
MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
文章目录一、问题背景二、解决方法(引出ResultMap)方法1方法2(推荐)三、ResultMap结果集映射一、问题背景解决属性名和字段名不一致的问题user表User实体类import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;@Data@ToString@AllArgsConstructor@NoArgsConstru原创 2021-03-30 23:07:05 · 235 阅读 · 0 评论 -
MyBatis知识汇总(第三篇)【详解】核心配置文件的重要属性配置
前言:本篇学习自:官方文档:https://mybatis.org/mybatis-3/zh/index.html视频教程:https://www.bilibili.com/video/BV1NE411Q7Nx?p=4略有心得,便记录下此文文章目录一、环境配置(environments)1、两种类型的事务管理器(transactionManager)2、三种数据源(dataSource)二、属性(properties)三、类型别名(typeAliases)1、类别名2、包别名四、设置(setti.原创 2021-03-30 17:28:12 · 266 阅读 · 0 评论 -
MyBatis知识汇总(第二篇)步骤规范+CRUD基本操作汇总
前言:学习自https://www.bilibili.com/video/BV1NE411Q7Nx?p=4文章目录一、准备阶段1、首先准备数据库及数据2、导入MyBatis的相关依赖3、编写MyBatis核心配置文件4、Utils部分:创建工具类,用于获取 SqlSessionFactory 与 SqlSession5、POJO部分:编写实体类二、CRUD实例部分1、在Dao层,编写UserMapper接口2、在resources目录下,编写UserMapper.xml3、将UserMapp.xml注.原创 2021-03-30 11:41:49 · 103 阅读 · 0 评论 -
MyBatis知识汇总(第一篇)简介,入门小型项目实例测试(规范步骤详解)与注意事项
前言:学习自https://www.bilibili.com/video/BV1NE411Q7Nx?t=6https://mybatis.org/mybatis-3/zh/index.htmlhttps://baike.baidu.com/item/%E6%8C%81%E4%B9%85%E5%8C%96/6726574?fr=aladdin文章目录一、MyBatis简介1.介绍2.历史3.MyBatis的优点二、持久化三、持久层四、实例测试1、首先准备数据库及数据2、导入MyBatis的相关依赖.原创 2021-03-29 23:36:18 · 92 阅读 · 0 评论