自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 SpringMVC学习总结(六)RESTful简介HiddenHttpMethodFilter过滤器源码分析使用RESTful风格发送put和delete请求RESTful风格完整案例

ReStateTransfer,表现层资源状态转移。资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词。一个资源可以由一个或多个URI来标识。URI既是资源的名称,也是资源在Web上的地址。

2023-04-30 16:56:03 798 1

原创 SpringMVC学习总结(五)SpringMVC的视图ThymeleafViewInternalResourceViewRedirectView视图控制器使用JSP作为视图

中的视图是View接口,视图的作用是渲染数据,将模型Model中的数据展示给用户。

2023-04-30 16:55:33 317

原创 SpringMVC学习总结(三)SpringMVC获取请求参数的几种方法解决获取请求参数的乱码问题CharacterEncodingFilter过滤器

案例:还是用我上篇博客的web模块为例index.html:controller:运行Tomcat:IDEA输出:案例1:index.html:controller:IDEA输出:案例2:有复选框的表单index.html:controller:IDEA输出:可以发现使用字符串形式形参时,结果为每个数据中间使用逗号拼接的结果。我们也可以使用字符串数组形式的形参:这个方法和前篇博客的占位符的方法有点类似,但是那个方法只能获取请求参数的value值不能获取na

2023-04-30 16:55:03 1651

原创 SpringMVC学习总结(四)使用ModelAndView、Model、Map、ModelMap向request域对象共享数据向session、application域对象共享数据

我们知道,包括:pageContext、request、和application,而pageContext有效范围为一个jsp页面,太小了,而application有效范围为整个web工程,又太大了。因此我们平时的开发中在域对象中共享数据主要是用request和session。四个域对象分别是:pageContext (PageContextImpl 类) 同一个 jsp 页面范围内有效request (HttpServletRequest 类)一次请求内有效。

2023-04-30 16:55:03 707

原创 SpringMVC学习总结(二)@RequestMapping注解的功能、位置@RequestMapping注解的属性支持ant风格的路径支持路径的占位符@RequestMapping派生注解

SpringMVC路径中的占位符常用于RESTful风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符。的时候,向服务器发起请求,服务器不知道到底去找哪一个方法,因此我们就可以在两个controller类上面再加上不同value值的。若当前请求满足@RequestMapping注解的value和method等属性,但是不满足headers属性,此时页面显示。注解修饰形参,将占位符所表示的数据自动赋值给控制器方法的形参。

2023-04-30 16:54:02 353

原创 SpringMVC学习总结(一)SpringMVC简介入门案例

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。VView,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据CController,控制层。

2023-04-30 16:54:01 980

原创 Spring5学习总结(五)Spring5的新特性Log4j2@Nullable注解支持函数式风格支持JUnit5

整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除。

2023-04-23 16:50:29 839

原创 Spring5学习总结(四)spring事务编程式事务管理和声明式事务管理基于注解实现声明式事务管理@Transactional参数配置完全注解开发基于xml配置文件方式实现声明式事务管理

事务通常添加到 JavaEE 三层结构里面的Service 层(业务逻辑层)声明式事务管理有两种方式基于注解方式(推荐使用)基于 xml 配置文件方式Spring 的声明式事务管理在底层是建立在AOP的基础之上的。其原理是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

2023-04-23 16:49:40 154

原创 Spring5学习总结(三)JdbcTemplate实现数据库增删改查操作JdbcTemplate实现批量增删改操作

Spring5学习总结(三)JdbcTemplate实现数据库增删改查操作/JdbcTemplate实现批量增删改操作一、JdbcTemplate概述什么是 JdbcTemplate?JdbcTemplate是Spring 框架对 JDBC 进行的封装,使用它可以更方便实现对数据库的操作。二、使用JdbcTemplate实现对数据库的操作(一)准备工作1.引入相关 jar 包2.在 spring 配置文件配置数据库连接池首先创建外部属性文件,properties 格式文件,写数据库信息j

2023-04-23 16:49:28 2388

原创 Spring5学习总结(二)AOP底层原理JDK动态代理CGLIB动态代理AOP术语切入点表达式基于xml配置文件实现AOP操作基于注解实现AOP操作五种通知的实现完全注解开发

在软件业,AOP为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。通俗描述:不通过修改源代码的方式实现在主干功能里面添加新功能(例如我想增强已写好的登录功能,不去修改已有的登录代码,而是使用AOP增强)

2023-04-23 16:48:39 99

原创 Spring5学习总结(一)IoC底层原理工厂模式创建对象注入属性依赖注入IoC和DI的区别基于XML实现Bean管理Bean的生命周期基于注解实现Bean管理完全注解开发

IoC(Inversion of Control) 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。(把创建对象过程交给 Spring 进行管理)为了降低耦合度什么是反转?反转是相对于正向而言的,那么什么算是正向的呢?考虑一下常规情况下的应用程序,如果要在A里面使用C的方法,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?

2023-04-23 16:48:25 616

原创 MyBatis学习总结(五)逆向工程

将generatorConfig.xml配置文件中context标签中属性改成targetRuntime=MyBatis3,点击运行即可。问题:运行逆向工程,如果生成的pojo实体类和mapper出现了多个重复的文件(如xx.java.1文件)这个配置文件是需要根据自己数据库、实体类包名、接口包名、xml包名的位置做出修改。删除:(清新简洁版)生成的mapper接口、mapper.xml、实体类都删除掉。原因:其他数据库中存在相同的表名,mybatis自动生成时窜库了。

2023-04-17 10:56:39 685

原创 MyBatis学习总结(四) MyBatis 延迟加载策略MyBatis 一级缓存、二级缓存MyBatis注解开发

延迟加载:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。一对一,多对一:通常情况下我们都是采用立即加载。一对多,多对多:通常情况下我们都是采用延迟加载。

2023-04-16 15:59:53 499

原创 MyBatis学习总结(三)MyBatis 的连接池技术MyBatis 的事务控制手动提交事务MyBatis 的动态 SQL 语句MyBatis 多表查询一对一、多对一、一对多、多对多查询

MyBatis学习总结(三)MyBatis 的连接池技术/MyBatis 的事务控制/手动提交事务/MyBatis 的动态 SQL 语句/MyBatis 多表查询/一对一、多对一、一对多、多对多查询一、MyBatis 的连接池技术分类连接池就是一个用于存储连接的容器。这个容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程同时拿到同一个连接。该集合还必须有队列的特性:先进先出(归还的连接放在连接池队列的末尾)。我们在实际开发中都会使用数据库连接池,因为它可以减少我们获取连接所消耗的时间。

2023-04-16 15:59:04 559

原创 MyBatis学习总结(二)MyBatis实现增删查改如何解决MyBatis属性和字段名不一致的问题MyBatis 核心配置文件的配置MyBatis自定义别名映射路径的四种表示方式分页的实现

-使用typeAliases配置别名 --> < typeAliases > <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名--> < typeAlias type = " com.fox.pojo.User " alias = " user " > </ typeAlias > </ typeAliases >--使用typeAliases配置别名 --> < typeAliases > <!--typeAlias用于配置别名。

2023-04-16 15:58:33 574

原创 MyBatis学习总结(一)什么是框架什么是持久层什么是MyBatisMyBatis的优缺点(面试题)MyBatis和Hibernate的区别MyBatis使用入门

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。mybatis 是一个优秀的基于 java的。

2023-04-16 15:58:08 642

原创 JavaSE学习总结(十五)Java异常处理ThrowableErrorException异常处理try...catchthrow和throws的区别finally自定义异常

异常就是Java程序在运行过程中出现的错误。在功能方法内部出现异常,程序不能继续运行,就用throw把异常对象抛出。throw new xxxException("异常产生的原因");如果throw抛出的是运行时异常或其子类,不需要异常处理,如果不是,则还需要处理异常(try-catch或throws)。为什么需要自定义异常?因为在开发过程中,我们可能会遇到各种问题,而jdk不可能针对每一种问题都给出具体的异常类与之对应。为了满足需求,我们就需要自定义异常。

2023-04-02 13:40:33 558

原创 JavaSE学习总结(十四)Map集合Map和Collection的区别HashMapLinkedHashMapTreeMap集合间的嵌套HashtableCollections工具类

类型参数:K - 此映射所维护的键的类型V - 映射值的类型将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。(键唯一,值不一定唯一)HashMapHashtableTreeMapProperties。

2023-04-02 13:39:29 186

原创 JavaSE学习总结(十二)对象数组CollectionListArrayListVectorLinkedList并发修改异常泛型新式for循环可变参数asList()集合嵌套

JavaSE学习总结(十二)对象数组/Collection/List/ArrayList/Vector/LinkedList/并发修改异常/泛型/新式for循环/可变参数/asList()/集合嵌套一、对象数组(一)概述数组元素可以是基本数据类型,也可以是类对象,这样的数组称为对象数组。在这种情况下,数组的每一个元素都是一个对象的引用。(二)使用案例演示需求:我有3个学生,请把这3个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。 //定义学生类class Student {

2023-04-02 13:38:28 143

原创 Java集合知识体系【思维导图】

Java集合知识体系【思维导图】1、总览2、概述3、java.util1)Iterator迭代器2)Collection接口(1)List接口(2)Set接口3)Map接口4)工具类

2023-04-02 13:37:36 194 1

原创 JavaSE学习总结(十三)Set集合HashSet集合LinkedHashSet集合TreeSet集合比较器的使用利用Set集合实现去重

HashSet是Set接口的典型实现(集合中元素也是无序且唯一的),实现了Set接口中的所有方法,并没有添加额外的方法,大多数时候使用Set集合时就是使用这个实现类。HashSet 底层数据结构是哈希表,HashSet 不是线程安全的,集合元素可以是 null。哈希表:是一个元素为链表的数组,综合了数组和链表的优点 (像新华字典一样) (JDK1.7之前)

2023-04-02 13:36:32 486

原创 JavaWeb学习总结(十六)JSON

在标准的 json 格式中,json 对象由大括号括起来,json 是由键值对组成,每个键由双引号引起来,键和值之间使用冒号进行分隔, 多组键值对之间进行逗号进行分隔。格式var 变量名 = {"key" : value , // Number 类型 "key2" : "value" , // 字符串类型 "key3" : [ ] , // 数组类型 "key4" : {} , // json 对象类型 "key5" : [ {} , {} ] // json 数组 };案例。

2023-03-30 17:03:45 298

原创 JavaWeb学习总结(十八)i18n国际化

在开发中,我们不希望jsp页面中有大量的代码脚本,那么我们就可以使用JSTL标签替代代码脚本。

2023-03-30 17:02:26 474

原创 JavaWeb学习总结(十七)AJAX

JavaWeb学习总结(十七)AJAX一、概述什么是 AJAX 请求AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种浏览器通过 JavaScript 异步发起请求,局部更新页面的技术。AJAX 请求的局部更新,浏览器地址栏不会发生变化局部更新不会舍弃原来页面的内容二、JavaScript 原生 Ajax 请求(一)原生 Ajax 请求的步骤我们首先要创建

2023-03-30 17:01:56 487

原创 JavaWeb学习总结(十五)Filter过滤器

什么是Filter过滤器?Filter 过滤器它是 JavaWeb 的三大组件之一。(三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器)Filter 过滤器它是 JavaEE 的规范,也就是接口Filter 过滤器它的作用是:拦截请求,过滤响应。

2023-03-30 16:54:51 361

原创 JavaWeb学习总结(十四)Cookie和Session

Session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而Session 保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。Session在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。

2023-03-30 14:48:20 337

原创 JavaWeb学习总结(十三)文件上传与文件下载

commons-fileupload.jar 中,我们常用的类和方法有哪些?类,用于解析上传的数据。判断当前上传的数据格式是否是多段的格式。解析上传的数据FileItem类,表示每一个表单项。判断当前这个表单项,是普通的表单项(true);还是上传的文件类型(false)获取表单项的 name 属性值获取当前表单项的value 属性值。获取上传的文件名将上传的文件写到 参数 file 所指向的硬盘位置。

2023-03-30 14:47:49 355

原创 JavaWeb学习总结(十二)JSTL标签库

JSTL 标签库 全称是,即 JSP 标准标签库。EL主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换jsp中的。这样使得整个 jsp 页面 变得更加简洁,从而提高程序的可读性,降低程序的维护难度。

2023-03-24 18:47:01 587 1

原创 JavaWeb学习总结(十)jsp详解

监听器就是实时监视一些事物状态的程序监听器的作用是,监听某种事物的变化,然后通过回调函数,反馈给客户(程序)去做一些相应的处理Listener 监听器它是 JavaWeb 的三大组件之一。(JavaWeb 的三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器)。Listener 它是 JavaEE 的规范,就是接口。

2023-03-24 18:46:00 320

原创 JavaWeb学习总结(十一)EL表达式

即。EL 表达式的:EL 表达式主要是jsp 页面中的,在 jsp 页面中进行数据的输出。因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。EL 表达式的${表达式}

2023-03-24 18:44:20 389

原创 JavaWeb学习总结(八)Servlet

ServletContext 是一个接口,它表示Servlet 上下文对象一个 web 工程,只有一个 ServletContext 对象实例。ServletContext 对象是一个域对象。ServletContext 是在web 工程部署启动的时候创建(它代表当前web应用),在 web 工程停止的时候销毁。什么是域对象?域对象,是可以像 Map 一样存取数据的对象,叫域对象。这里的域指的是存取数据的操作范围(整个 web 工程)。存数据取数据删除数据Mapput()

2023-03-20 21:53:23 120

原创 JavaWeb学习总结(九)Servlet

请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。案例1web.xml:

2023-03-20 21:51:50 98

原创 JavaWeb学习总结(六)JavaWeb相关知识

网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件。如果WEB Server Plugin发现客户端请求的是动态资源,则先将请求转交给WEB容器,在WEB容器中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。可以放置数据文件,让全世界下载。

2023-03-18 21:34:46 273

原创 JavaWeb学习总结(五)XML

可扩展标记语言(EXtensible Markup Language),标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

2023-03-18 21:34:11 262

原创 JavaWeb学习总结(七)Tomcat

src目录存放自己编写的Java源代码web目录专门用来存放web工程的资源文件,比如:html页面、css文件、js文件…WEB-INF目录 是一个受服务器保护的目录,浏览器无法直接访问到此目录的内容web.xml它是整个动态web工程的配置部署描述文件,可以在这里配置很多web工程的组件,比如:Servlet程序、Filter过滤器、Listener监听器、Session超时…习惯上,还会在WEB-INF下创建一个lib目录,用来存放第三方的jar包。

2023-03-18 21:33:23 560

原创 JavaWeb学习总结(四)jQuery

JavaWeb学习总结(四)jQuery

2023-03-18 21:11:30 362

原创 JavaWeb学习总结(三)JavaScript详解

JavaWeb学习总结(三)JavaScript详解

2023-03-16 20:24:44 901

原创 JavaSE学习总结(十一)常见八大排序算法冒泡排序选择排序直接插入排序希尔排序归并排序快速排序基数排序堆排序

JavaSE学习总结(十一)常见八大排序算法/冒泡排序/选择排序/直接插入排序/希尔排序/归并排序/快速排序/基数排序/堆排序

2023-03-13 16:40:11 60

原创 JavaSE学习总结(十)常用类(下)正则表达式MathRandomSystemBigDecimalDateSimpleDateFormatCalendarBigInteger

JavaSE学习总结(十)常用类(下)/正则表达式/Math/Random/System/BigDecimal/Date/SimpleDateFormat/Calendar/BigInteger

2023-03-13 16:39:41 80

原创 JavaWeb学习总结(二)CSS详解

JavaWeb(二)CSS详解

2023-03-11 17:11:58 781

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除