Java课程
炎魔巴洛克
这个作者很懒,什么都没留下…
展开
-
详述SpringMVC自定义视图
一、运行原理1、执行DispatcherServlet类onRefresh(ApplicationContext context)方法protected void onRefresh(ApplicationContext context) { initStrategies(context);}2、执行DispatcherServlet类initStrategies(Applica...原创 2020-04-23 15:57:20 · 405 阅读 · 0 评论 -
详述ContextLoaderListener监听器
一、配置ContextLoaderListener监听器在web.xml中添加配置:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"...原创 2020-04-16 15:50:02 · 536 阅读 · 0 评论 -
详述SpringMVC中拦截器
一、拦截器是什么?拦截器,顾名思义,是用于拦截客户端特定的请求的类。二、拦截器生命周期(1)实现拦截器的两种方式:a.定义的Interceptor类要实现了Spring的HandlerInterceptor 接口b.继承实现了HandlerInterceptor接口的类,比如Spring已经提供的实现了HandlerInterceptor接口的抽象类HandlerInterce...原创 2020-04-16 13:01:17 · 1036 阅读 · 0 评论 -
详述SpringMVC请求处理过程
一、引入接上篇详述load-on-startup标签的作用,本片来介绍SpringMVC中DispatcherServlet对象处理请求的过程二、SpringMVC请求处理过程1.用户端向服务器发送请求。2.执行DispatcherServlet类service(HttpServletRequest request, HttpServletResponse response)方法...原创 2020-03-26 18:12:31 · 332 阅读 · 0 评论 -
详述load-on-startup标签的作用
一、引入我们知道Servlet是服务器端的Java程序,用于处理用户端的请求,其生命周期有四个阶段:加载及实例化,初始化,处理请求,销毁。而在SpringMVC中,只有一个DispatcherServlet用于拦截处理用户的所有请求,由于加载及实例化,销毁都是由Servlet容器执行的,所以我着重讲一下在SpringMVC中Servlet的初始化,处理请求部分。本片先介绍初始化这部分。二、...原创 2020-03-26 17:06:35 · 883 阅读 · 0 评论 -
详述Spring 框架事务 @Transactional常用属性说明
目录一、引入BookDao:MoneyDao:CouponDao:CouponService:二、Transactional注解的各项属性(1)timeout属性book表:money表:coupon表:(2)readOnly属性(3)rollbackFor属性(4)propagation属性一、引入引入一个场景:当我们...原创 2020-03-19 16:48:22 · 754 阅读 · 0 评论 -
MyBatis框架一对一与一对多
一、引入在数据库的多表查询中,难免会出现查询到的多条从表数据的外键字段对应主表的同一条数据,举一例在购物网站的用户数据库中,用户数据表内的一个数据可能对应多条地址表内的数据,也有可能只有一个,本篇就简单聊一聊MyBatis多表查询中一对一及一对多的问题。二、MyBatis多表查询(1)一对多问题定义UserInfo类:public class UserInfo { priv...原创 2020-03-13 22:47:12 · 187 阅读 · 0 评论 -
Spring整合MyBatis
Spring整合MyBatis原创 2020-03-08 22:45:53 · 161 阅读 · 0 评论 -
MyBatis动态sql
目录一、引入二、MyBatis中的动态Sql标签(1)if配置:使用:运行结果:(2)where配置:使用:运行结果:(3)set配置:使用:运行结果:(4)foreach配置:调用:运行结果:一、引入在数据库对数据进行增删改查时,难免都希望sql语句的可复用性提高,那么就避免不了使得sql语句中传入的参数动态化,本篇...原创 2020-03-08 20:47:37 · 327 阅读 · 0 评论 -
详述MyBatis框架一级缓存与二级缓存
一、引入在用户程序与数据库进行交互时,难免需要对数据库进行查询操作,而如果每次查询都执行一次查询语句,则过于繁琐,所以缓存就应运而生,本片就详细介绍MyBatis框架的缓存技术。二、MyBatis中的缓存技术(1)一级缓存 1、该级缓存默认开启,不能关闭; 2、该级缓存为SqlSession级别的缓存,也称为本地缓存;数据...原创 2020-03-08 19:30:48 · 362 阅读 · 0 评论 -
第一个MyBatis程序
一、什么是MyBatisMyBatis源自Apache的iBatis开源项目, 从iBatis3.x开始正式更名为MyBatis。它是一个优秀的持久层框架。 官网地址:http://www.mybatis.org/mybatis-3/二、为什么用MyBatis为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改...原创 2020-03-07 15:55:00 · 230 阅读 · 0 评论 -
详述SpringAOP
一、AOP是什么Aspect Oriented Programming(AOP)是较为热门的一个话题。AOP,国内大致译作“面向切面编程”。“面向切面编程”,这样的名字并不是非常容易理解,且容易产生一些误导。有些人认为“OOP/OOD11即将落伍,AOP是新一代软件开发方式”。显然,发言者并没有理解AOP的含义。Aspect,的确是“方面”的意思。不过,汉语传统语义中的“方面”,大多数情况...原创 2020-03-07 15:21:52 · 259 阅读 · 0 评论 -
详述Spring XML文件——调用有参构造方法并为参数赋值
目录一、如可调用构造方法1、写一个UserInfo类:2、SpringXML文件做如下配置:3、写一个Test类二、为构造方法不同类型参数赋值1、自定义对象1)编写UserInfo类2)配置XML文件3)编写Test类2、数组1)编写UserInfo类2)配置XML文件3)编写Test类3、List集合1)编写UserInfo类...原创 2020-02-27 18:33:49 · 1354 阅读 · 0 评论 -
详述Spring XML文件配置——component标签的作用
一、component标签的特点:扫描com.jd包及其子包下的所有类,并未添加了@Controller@Service@Component@Repository修饰的类创建对象并存入容器,调用的是默认无参构造方法。二、用代码验证component标签的特点编写一个UserInfoDao类,和一个Test类:import org.springframework.stereot...原创 2020-02-27 12:59:31 · 1815 阅读 · 0 评论 -
Spring中,对象的生命周期
为验证,我们写一个类,包括如下几个元素:public class UserInfo { static { System.out.println("静态代码块"); } { System.out.println("非静态代码块"); } private String name; public UserInfo() { System.out.println...原创 2020-02-25 20:39:54 · 403 阅读 · 0 评论 -
详述Spring XML文件配置——Bean标签scope属性
一、引入当在Spring XML文件中Bean标签中的除lazy-init外各个属性均为默认值时,运行如下代码,观察结果<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or...原创 2020-02-25 20:23:42 · 787 阅读 · 0 评论 -
详述Spring XML文件配置——lazy-init属性
一、引入Spring是什么?Rod Johnson是Spring框架的缔造者,他在2002编著的《Expert one-on-One J2EE Design and Development》一书中,对JavaEE系统架构臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破JavaEE传统开发困境,从实际需求...原创 2020-02-22 22:21:25 · 541 阅读 · 0 评论 -
Tomcat中目录结构
1、bin:存放了启动Tomcat软件的命令,这些命令可以在Windows和Linuxf操作系统上运行。start.bat与shutdown.bat分别用于启动与关闭服务器 2、conf:保存了配置Tomcat的配置文件。 server.xml: a、http协议默认端口号为80 tomcat默认端口号为8080 在server.x...原创 2019-11-18 21:22:15 · 189 阅读 · 0 评论 -
JSP中session对象与其运行机制
一、session对象session(会话)对象是JSP内置对象之一,Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。 当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一标识的会话,会话一直延续到访问结束(浏览器关闭或...原创 2019-11-18 21:11:03 · 327 阅读 · 0 评论 -
jQuery中replaceWith()方法与unwarp()方法
replaceWith()方法(替换成): replaceWith(content|fn) :将所有匹配的元素替换成指定的HTML或DOM元素,将调用方法的对象替换成方法中的参数对象。代码示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>&...原创 2019-11-11 20:05:01 · 478 阅读 · 0 评论 -
jQuery中empty()方法与remove()方法
目录empty()方法:remove()方法:empty()方法:empty() :删除匹配的元素集合中所有的子节点,但不包括自身;代码示例:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> ...原创 2019-11-11 19:12:18 · 445 阅读 · 0 评论 -
jQuery事件
目录一、绑定事件二、解绑事件三、一次性绑定事件四、触发事件五、jQuery中几种常见事件六、事件冒泡一、绑定事件bind()方法:为每个匹配元素的特定事件绑定对应的事件处理函数代码示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> &...原创 2019-11-10 20:46:07 · 173 阅读 · 0 评论 -
jQuery中clone()方法
clone()方法:clone()方法中传入的参数值为布尔型,决定了是否为深层复制,若为深层复制(传入true),则同时复制原标签中添加的事件;若不为深层复制(传入false)则不复制标签中添加的事件。代码示例一:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <...原创 2019-11-10 19:39:15 · 442 阅读 · 0 评论 -
jQuery中wrap()方法、warpAll()方法、warpInner()方法与unwarp()方法
目录一、wrap()方法:二、wrapAll()方法:三、wrapInner()方法:四、unwrap() 方法:一、wrap()方法:wrap(html|ele|fn):把所有匹配的元素用其他元素的结构化标记包裹起来。代码示例:<!DOCTYPE html><html> <head> <meta chars...原创 2019-11-10 19:18:36 · 925 阅读 · 0 评论 -
jQuery中append()方法与appendTo()方法
append方法():a.append(content|fn) :向每个匹配元素(jQuery对象)内部的末尾处插入append方法中内容;代码示例:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <...原创 2019-11-09 20:59:53 · 375 阅读 · 0 评论 -
jQuery中after()方法与insertAfter()方法
after()方法:after(content|fn) :向每个匹配的元素后插入内容;代码示例:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1...原创 2019-11-09 20:56:03 · 1157 阅读 · 0 评论 -
jQuery中parent()方法与parents()方法
parent()方法:parent([expr]) :取得一个包含着所有匹配元素的唯一父元素的元素集合(一个)。代码示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="js/j...原创 2019-11-09 20:24:40 · 727 阅读 · 0 评论 -
jQuery中next()方法与nextAll()方法
next()方法:next([expr]) :取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。(一层)代码示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src=...原创 2019-11-09 20:20:51 · 834 阅读 · 0 评论 -
Javascript实现表单校验——提交表单的两种方式
目录一、JavaScript表单校验二、提交表单的两种方式(1)通过向form标签中添加onsubmint事件实现表单提交(2)通过向标签中添加onclick事件触发js函数以提交表单一、JavaScript表单校验表单校验,时HTML网页中常常会用到的一个功能,例如,在HTML页面中实现登录功能,登录成功后跳转,这就需要用到表单校验,再或者,在HTML网页中插入一个...原创 2019-10-28 23:15:09 · 6337 阅读 · 0 评论 -
Javascript中添加事件(Event对象)的三种方式
目录一、Javascript中event对象二、Javascript中添加事件的三种方式(1)通过在标签中为对应事件添加设定值来添加事件(2)通过元素(Element)事件属性添加事件(3)通过元素(Element)事件监听器添加事件一、Javascript中event对象参考资料:JS Event对象详解Event 对象代表事件的状态,比如事件在其中发生的...原创 2019-10-27 14:19:41 · 7191 阅读 · 0 评论 -
JavaScript实现时间显示功能
目录一、基本思路二、代码第一步:创建时间函数,利用date对象获得相应时间值第二步:完善,调整星期的显示格式,数字小于十时用零占位。一、基本思路创建time()函数,利用JavaScript中已有对象date对象的属性及方法获取时间,最后利用document对象实现页面上的时间显示。二、代码第一步:创建时间函数,利用date对象获得相应时间值<!D...原创 2019-10-25 20:44:22 · 1003 阅读 · 0 评论 -
总结Javascript中的数据类型
一、JavaScriptJavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。二、Javascript中的数据类型var即为variable(变量)的缩写,JavaS...原创 2019-10-25 20:06:13 · 380 阅读 · 0 评论 -
HTML中position样式的5中属性值
目录一、引入二、position样式的五种属性值(1)static属性值(2)relative属性值(3)absolute属性值(4)fixed属性值(5)inherit属性值三、结语一、引入HTML网页中,为了给相应的各种标签进行定位,存在着position样式。该样式存在着五中属性值,均用来给标签进行定位,本篇就简单介绍下这几种标签的使用及特点。...原创 2019-10-25 18:38:01 · 651 阅读 · 0 评论 -
数组的冒泡排序和插入排序
目录一、引入二、冒泡排序(最大筛选排序法)三、插入排序一、引入在Java中,数组是一项很重要的概念,不过既然是数组,最基本的数组就是数字组成的数组,自然就离不开数字的比较大小与排序,当然,数组排序的方式有很多,本篇主要研究数组的冒泡排序与插入排序。二、冒泡排序(最大筛选排序法)冒泡排序,顾名思义,是用气泡在液体中上升时逐渐变大的状态来命名的,十分形象,当然冒泡...原创 2019-08-25 11:14:05 · 431 阅读 · 0 评论 -
简述Java中反射的原理
一、引入本篇是我自己在总结Java中的反射——Class类和Java中的反射——Class类对目标类对象构造方法,属性和普通方法获取,调查与使用之后自己的一点理解,所以本篇就简单谈一谈自己对反射的理解。二、个人理解首先,我之前的博客说道,反射是一种新的创建对象,调用其构造方法,普通方法和属性的方式,而至于这种方式为什么叫反射呢?其原理大概如下:Class类是一面镜子,假设有一个原类...原创 2019-08-21 20:27:24 · 329 阅读 · 0 评论 -
详述Java中File类及常用方法
目录一、Java中的File类及File类对象(1)路径(2)文件二、创建File类对象(1)File(String pathname)(2)File(File parent, String child)(3)File(String parent, String child)(4)File(URI uri)三、File类常用方法(1)getName()...原创 2019-08-21 18:40:43 · 514 阅读 · 0 评论 -
详述Java中的流
目录一、什么是流?二、Java中的流(1)IO流a、字节流b、字符流(2)缓冲流a、字节流b、字符流(3)转换流一、什么是流?我们知道,计算机中的文件都有最小组成单元,这些最小单元无非是字节或字符,而我们知道,在Java程序中如果我们想实现一个文件的传输,必须先将文件拆分成小的组成单元,而传输的过程无非就是这些最小单元的流动,这些流动的最小单元就构...原创 2019-08-22 17:44:08 · 523 阅读 · 1 评论 -
总结数据库中的多表查询
一、前言在我之前的博客详述数据库操作中事务的四大特性(ACID)中我提到过四类SQL语句,其中对于查询语句除了以数据为单位查询外,还有以表为单位的查询语句,在本篇中,我想简单总结一下数据库中的多表查询:二、多表查询多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join),数据...原创 2019-08-17 20:18:09 · 860 阅读 · 1 评论 -
粘贴MySQL数据库中的事务隔离级别
一、引入同一个应用程序中的多个事务或不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题,这些问题可分为如下三种类型:1.脏读(Drity Read): 已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据,之后,B回滚事务,A读取的数据就是脏数据。 场景:公司发工资了,领导把5000元打到Tom的账号上,但是该事务并未提交,而Tom正好去查...原创 2019-08-17 20:25:15 · 144 阅读 · 0 评论 -
详述Java中NIO实现原理
目录一、什么是NIO?二、NIO中的组件——Buffer和Channel(1)Buffer类1.static ByteBuffer allocate(int capacity)2.int capacity() :3.ByteBuffer put(byte b):4.byte[] array() :5.int position():6.Buffer flip...原创 2019-08-22 19:44:51 · 466 阅读 · 1 评论