![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaWeb
一颗白菜o
GitHub:https://github.com/Cerr146417
展开
-
设计模式 | 用实际案例详解工厂模式
我们来看一个具体需求看一个披萨的项目,要便于披萨种类的扩展,要便于维护,有以下要求:披萨的种类很多(比如GreekPizz、CheesePizz等)披萨的制作有prepare,bake,cut,box完成披萨店订购功能首先我们先编写一个Pizza抽象类:package com.cxc.factory.simplefactory.pizzastore.pizza;/** * 抽...原创 2020-06-06 22:22:45 · 1182 阅读 · 0 评论 -
设计模式 | 详解单例模式(饿汉式、懒汉式、静态内部类、枚举、JDK源码剖析)...
一、单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对于某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这时就会使用...原创 2020-06-06 19:15:39 · 345 阅读 · 0 评论 -
设计模式 | 详解设计模式的七大原则
一、设计模式的目的编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序具有更好的:代码重用性(即相同功能的代码,不用多次编写)可读性(即编程规范性,便于其他程序员的阅读和理解)可扩展性(即当需要增加新功能时,非常方便,称为可维护)可靠性(即当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性...原创 2020-06-06 11:06:25 · 355 阅读 · 0 评论 -
SpringBoot | 关于SpringBoot2.x以上版本废弃EmbeddedServletContalnerCustomizer
springboot1.x版本中修改嵌入式Servlet容器配置的方法在Springboot1.x的版本中有EmbeddedServletContalnerCustomizer类,该类可以来修改嵌入式Servlet容器的配置。当我学习到此处时,由于教程使用的SpringBoot版本是1.x,所以自己在实践时没有找到EmbeddedServletContalnerCustomizer类,通过网上...原创 2020-03-23 20:28:51 · 338 阅读 · 0 评论 -
SpringBoot | 详解SpringBoot配置文件及其原理
目录一、配置文件二、YAML语法1、基本语法2、值的写法(1)、字面量:普通的值(数字,字符串,布尔)(2)、对象、Map(属性和值)(3)、数组(List、Set)三、配置文件值注入1、一个简单的示例2、@Value获取值和@ConfigurationProperties获取值比较3、数据校验4、使用@PropertySource加载指定的配...原创 2019-12-21 19:29:56 · 4021 阅读 · 0 评论 -
JavaWeb学习笔记 | 关于JSP
1.JSP的概述1.JSP是简化Servlet编写的一种技术,将Java代码和HTML语句混合在同一个文件中编写。只对网页中的要动态产生的内容采用java编写。而对静态内容采用普通静态HTML页面来编写。2.JSP简单来说就是在HTML页面中编写Java代码的页面,其文件的扩展名为.jsp3.JSP中编写Java代码的位置在body节点内:<% java代码 %>De...原创 2019-07-31 21:57:00 · 147 阅读 · 0 评论 -
SpringMVC学习笔记 | SpringMVC中处理模型数据的几种方法(ModelAndView|@SessionAttributes|@ModelAttribute)以及运行原理...
目录一、处理模型数据1、ModelAndView2、Map或Model3、@SessionAtttibutes4、@ModelAttribute(1)、需求的解决(2)、@ModelAttribute的运行原理(3)、SpringMVC确定目标方法POJO类型入参的过程(4)、关于@ModelAttribute的两种用法一、处理模型数据SpringMVC...原创 2019-10-27 16:56:23 · 534 阅读 · 0 评论 -
SpringMVC学习笔记 | 视图及视图解析器 | 重定向 | Spring的表单标签及静态资源的处理
目录一、视图与视图解析器1、视图2、视图解析器(1)、InternalResourceViewResolver(2)、自定义视图解析器二、关于重定向三、使用Spring的表单标签1、from标签四、处理静态资源一、视图与视图解析器请求处理方法执行完成后,最终返回一个ModelAndView对象。对于那些返回String,View或ModelMap等类型的...原创 2019-11-15 14:03:22 · 425 阅读 · 0 评论 -
SpringMVC学习笔记 | 返回JSON数据 、HttpMessageConverter<T>
处理JSON的步骤加入jar包 编写目标方法,使其返回JSON对应的对象或集合package com.cerr.springmvc.test;import com.cerr.springmvc.crud.dao.EmployeeDao;import com.cerr.springmvc.crud.entities.Employee;import org.springframewo...原创 2019-11-19 15:32:00 · 155 阅读 · 0 评论 -
SpringMVC学习笔记 | SpringMVC中文件的上传
文件的上传SpringMVC为文件上传提供了直接的支持,这种支持是通过MultipartResolver实现的,其中有一个其实现类:CommonsMultipartResovler。SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作,如果想使用SpringMVC的文件上传功能,需在上下文中配置MultipartResolver。...原创 2019-11-19 19:14:11 · 133 阅读 · 0 评论 -
SpringMVC学习笔记 | 在SpringMVC中的国际化
目录一、国际化需要解决的问题1、使用jstl的fmt标签来对文本进行本地化处理2、在bean中获取国际化资源文件Locale对应的消息3、通过超链接切换Locale一、国际化需要解决的问题 在页面上能够根据浏览器语言设置的情况对文本,时间,数值进行本地化处理 解决:使用JSTL的fmt标签 可以在bean中获取国际化资源文件Locale对应的消息 解决...原创 2019-11-19 19:14:37 · 226 阅读 · 0 评论 -
SpringMVC学习笔记 | SpringMVC拦截器详解:自定义拦截器、拦截器执行顺序的分析
一、自定义拦截器SpringMVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义拦截器必须实现HandlerInterceptor接口。1、步骤编写一个拦截器类,需要实现HandlerInterceptor接口。package com.cerr.springmvc.interceptor;import org.springframework.w...原创 2019-11-19 21:45:24 · 428 阅读 · 0 评论 -
SpringMVC学习笔记 | 关于异常处理
目录一、概述二、ExceptionHandlerExceptionResolver三、ResponseStatusExceptionResolver四、DefaultHandlerExceptionResolver五、SimpleMappingExceptionResolver一、概述SpringMVC通过HandlerExceptionResolver处理程序的...原创 2019-11-20 13:26:56 · 185 阅读 · 0 评论 -
MyBatis | 详解MyBatis的运行流程
目录一、MyBatis的运行流程1、获取SqlSessionFactory对象2、获取SqlSession对象3、获取接口的代理对象4、执行增删改查二、总结一、MyBatis的运行流程1、获取SqlSessionFactory对象根据配置文件创建SqlSessionFactory对象,解析全局配置文件和sql映射文件。最后创建的对象包含了一个Configurat...原创 2019-12-13 19:03:39 · 380 阅读 · 1 评论 -
MyBatis | MyBatis中使用插件、使用PageHelper插件、自定义类型处理器
目录一、插件原理二、插件编写(单个插件)1、编写Interceptor的实现类2、使用@Intercepts注解完成插件的签名3、将写好的插件注册到全局配置文件中三、多个插件时的执行顺序四、使用PageInterceptor插件1、导包2、在全局配置文件中注册PageInterceptor插件3、编码五、使用BatchExecutor进行批量操作...原创 2019-12-14 19:46:12 · 546 阅读 · 0 评论 -
JavaWeb | 基于maven整合SSM框架(Spring+SpringMVC+MyBatis)
目录一、目录总览二、创建maven项目三、完善项目目录1、新建目录2、添加web目录3、配置tomcat四、maven添加依赖1、添加数据库驱动依赖2、添加SpringMVC依赖3、添加spring的一系列依赖4、添加MyBatis及其与Spring整合的依赖5、添加其它依赖五、配置1、新建数据源资源文件dbconfig.propert...原创 2019-12-18 16:01:50 · 335 阅读 · 0 评论 -
SpringBoot | 使用Spring Initializr来快速创建一个SpringBoot项目
目录一、新建项目二、编码三、测试一、新建项目新建项目,选择Spring Initializr选择模块,我们选择一个Web模块:自动给我们创建了整个目录架构:二、编码新建c...原创 2019-12-21 19:36:17 · 252 阅读 · 0 评论 -
SpringBoot | SpringBoot入门介绍及其分析HelloWorld项目
目录一、SpringBoot介绍1、SpringBoot简介2、微服务二、使用maven创建SpringBoot项目1、创建一个maven工程2、导入Springboot依赖3、编写一个主程序:启动SpringBoot4、编写Controller5、启动方式6、简化部署三、对上述项目的探究1、POM文件2、主程序类(主入口类)四、使用Spri...原创 2019-12-21 19:43:02 · 181 阅读 · 0 评论 -
MyBatis | Mybatis整合第三方缓存包(EHcache)
目录一、导入jar包1.下载2.导包二、编写chcache.xml文件三、在SQL映射文件中配置标签四、MyBatis的缓存运行示意图(与第三方缓存包结合)一、导入jar包1.下载需要下载第三方缓存包及其与MyBatis整合的适配包。可以点此下载所需jar包2.导包图1:导入的包二、编写ehcache.xml文件<...原创 2019-12-12 16:12:36 · 441 阅读 · 0 评论 -
Mybatis | 逆向工程(创建一个逆向工程并分析)
目录一、创建一个逆向工程的步骤1、环境的准备(1)、准备mybatis-config.xml文件:(2)、创建数据库配置文件dbconfig.properties(3)、准备其它相关的包2、导入相关的包3、配置逆向工程的xml文件4、创建方法来运行我们配置的逆向工程二、分析1、指定创建的映射文件2、配置需要连接的数据库3、配置类型解析器4、...原创 2019-12-12 21:53:49 · 496 阅读 · 0 评论 -
SpringMVC学习笔记 | SpringMVC的运行流程图、Spring整合SpringMVC
目录一、SpringMVC的运行流程图二、Spring整合SpringMVC一、SpringMVC的运行流程图二、Spring整合SpringMVCSpring整合SpringMVC的原因通常情况下,类似于数据源、事务、整合其他框架都是放在Spring的配置文件中,而不是放在SpringMVC的配置文件中。实际上放入Spring配置文件对应的IOC容...原创 2019-11-20 15:24:59 · 137 阅读 · 0 评论 -
MyBatis学习笔记 | MyBatis的下载、编写一个HelloWorld的MyBatis、使用接口式编程改进HelloWorld...
目录一、MyBatis下载二、建立一个HelloWorld1.建表2.创建项目3.创建全局配置文件4.配置sql映射文件5.编码三、改进:使用接口式编程1、接口式编程2、如何绑定3、上面HelloWorld的改进(1)、新建接口(2)、修改EmployeeMapper.xml配置文件(3)、编码四、总结MyBatis是一个半自动化,轻...原创 2019-11-20 22:53:10 · 179 阅读 · 0 评论 -
MyBatis小工具 | 使用log4j在控制台输出SQL语句
目录1.下载log4j-1.2.17.jar2.在项目中添加jar包3.配置log4j.properties文件4.测试我们在使用MyBatis时候想看看其发送的SQL语句,可以使用log4j-1.2.17.jar和log4j.properties来显示。1.下载log4j-1.2.17.jar点此进入官网下载,然后选择对应的版本:...原创 2019-11-28 13:55:04 · 218 阅读 · 0 评论 -
MyBatis笔记 | 详解resultType和resultMap
目录一、resultType1、select返回List2、select记录封装Map3、返回单个实体类的Map4、返回多个实体类的Map二、resultMap1、通过resultMap实现高级结果映射集2、使用resultMap进行关联查询3、使用级联属性封装结果来进行关联查询4、使用association定义关联对象封装规则5、使用associati...原创 2019-11-28 21:41:03 · 1121 阅读 · 0 评论 -
MyBatis笔记 | 详解参数处理(多种类型的参数处理、源码分析、读取参数的两种格式的区别)...
目录一、MyBatis的参数处理1、单个参数2、多个参数3、命名参数4、参数处理(1)传入POJO(2)传入Map(3)传入List二、从源码来看参数处理的过程(即如何封装Map)1、 确定names的值2、封装Map四、参数处理中#{}与${}的区别五、#{}取值时指定参数的相关规则一、MyBatis的参数处理从参数的个数来看,可分为单...原创 2019-11-28 21:51:18 · 423 阅读 · 0 评论 -
MyBatis笔记 | 详解MyBatis映射文件
目录MyBatis映射文件简单的增删改查示例insert获取自增主键的值MyBatis的参数处理select元素MyBatis映射文件映射文件指导着MyBatis如何进行数据库增删改查,有着非常重要的意义,有以下标签:cache:命名空间的二级缓存配置cache-ref:其他命名空间缓存配置的引用resultMap:自定义结果集映射sql:抽取可重用语句块insert:...原创 2019-11-28 21:52:39 · 236 阅读 · 0 评论 -
MyBatis笔记 | 详解动态SQL
目录环境的准备使用if标签实现表达式判断使用trim标签实现字符串截取使用choose标签来实现分支选择使用if与set标签来实现动态的update语句foreach标签使用foreach标签来遍历集合mysql下使用foreach实现批量插入的两种方式两个内置参数使用bind标签来进行动态绑定使用sql标签来抽取重用的sql片段我们想,对于SQL映...原创 2019-12-11 13:20:19 · 194 阅读 · 0 评论 -
MyBatis笔记 | 详解MyBatis缓存机制
目录概述一级缓存(本地缓存)一级缓存失效的四种情况1.当sqlSession不同时2.当SqlSession相同,但是查询条件不同时3.当SqlSession相同,但是多次查询之间进行了增删改时4.SqlSession相同,手动清除了一级缓存(缓存清空)二级缓存工作机制使用步骤与缓存有关的设置及属性缓存原理概述Mybatis包含一个非常强大的...原创 2019-12-11 19:08:58 · 176 阅读 · 0 评论 -
MyBatis笔记 | 详解MyBatis全局配置文件
目录一、properties标签二、settings标签三、typeAliases标签四、environments标签五、databaseIdProvider标签六、mappers标签一、properties标签作用:可以引入外部的资源文件有两个属性:resource:引入类路径下的资源文件 url:引入网络或者磁盘路径下的资源对昨天的案例我们进行修改,首...原创 2019-11-21 19:18:52 · 273 阅读 · 0 评论 -
SpringMVC学习笔记 | 数据转换、数据格式化、数据校验
目录一、数据绑定1、数据绑定流程2、@InitBinder二、类型转换1、自定义类型转换器2、Spring支持的转换器3、关于mvc:annotation-driven二、数据格式化1、日期格式化2、数值格式化三、数据校验1、JSR3032、Hibernate Validator扩展注解3、SpringMVC数据校验4、Spr...原创 2019-11-16 22:42:37 · 321 阅读 · 0 评论 -
JavaWeb学习笔记 | 国际化
1.概述1.软件的本地化一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯。2.软件的国际化软件开发时,让它能支持多个国家和地区的本地化应用。3.本地敏感数据随用户区域信息而变化的数据称为本地信息敏感数据,例如数字,货币,日期,时间等数据2.软件国际化的特征1.对于程序中的本地信息敏感的数据(日期、货币等)能根据当前所在的国家或地区的文化习惯进行显示。...原创 2019-07-30 11:02:10 · 101 阅读 · 0 评论 -
JavaWeb学习笔记 | 文件的上传与下载
1.进行文件上传时,表单需要做的准备1.请求方式为POST<form action="uploadServlet" method="post"></form>2.使用file的表单域<input type="file" name = "file" />3.使用新的编码方式(enctype=“multipart/form-data”)设定了enct...原创 2019-07-29 16:59:23 · 147 阅读 · 0 评论 -
JavaWeb学习笔记 | 监听器(Listener)
1.监听器的简介1.监听器:专门用于对其他对象身上发生的事件或状态改变进行监听或相应处理的对象,当被监视的对象发生情况时立即采取相应的行动。2.Servlet监听器:Servlet规范中定义的一种特殊类。它用于监听web应用程序中的ServletContext,HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的时间。...原创 2019-07-07 22:06:52 · 193 阅读 · 0 评论 -
JavaWeb学习笔记 | Filter简介
1. Filter简介Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能。在Servlet API中定义了三个接口类来供开发人员编写Filter程序:Filter,FilterChain,FilterConfigFilter程序是一个实现了Filter接口的Java类,与Servlet程序相似,它由Ser...原创 2019-05-27 21:31:27 · 133 阅读 · 0 评论 -
JavaWeb学习笔记 | Servlet
目录1.Servlet的简介2.Servlet的生命周期方法3.Servlet容器响应客户服务器的过程4.运行第一个Servlet程序(1).新建一个Java类HelloServlet,用于实现Servlet,如下:(2).Servlet的注册和映射(配置在web.xml文件)5.关于web.xml配置中的load-on-startup参数1.Servlet的简介...原创 2019-05-10 15:00:19 · 251 阅读 · 0 评论