自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC:拦截器

一、什么是拦截器SpringMVC提供了Intercepter拦截器机制,类似于Servlet当中的Filter过滤器,用于拦截用户的请求并作出相应的处理,比如通过拦截器来进行用户权限验证或者用来判断用户是否登录。SpringMVC拦截器是可插拔式的设计,需要某一功能拦截器,就需要在配置文件中应用拦截器即可;如果不需要这个功能拦截器,只需要在配置文件中取消该拦截器即可。

2025-03-27 21:19:30 524

原创 SpringMVC配置和基本原理

Model I的开发模式是:JSP+JavaBean的模式,它的核心是JSP页面,在这个页面中,JSP页面负责整合页面和JavaBean(业务逻辑),而且渲染页面,它的基本流程如下:这样的设计模式到这一个jsp页面负责了视图的展示和业务流程的控制高度耦合的结果是Jsp代码十分复杂,后期维护困难!

2025-03-25 13:35:49 618

原创 Spring:IOC

控制反转(Inversion of Control,缩写为IOC),将对象的创建权力反转给Spring框架,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。在java中,一个类想要使用另一个类的方法,就必须在这个类当中创建这个类的对象,那么可能会出现如下情况:比如A类当中创建B对象,B类当中有C对象,C类当中有A对象,这样如果一个类出了问题,那么可能会导致这个框架出现问题。

2025-03-23 09:35:47 589

原创 Spring:AOP

在软件业中,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构。AOP最早由AOP联盟的组织提出,并制定了一套规范。Spring将AOP思想引入到框架中,就必须遵守AOP联盟的规范。Spring中的AOP技术是通过预编译方式或者运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。

2025-03-22 22:21:08 912 1

原创 数据库:事务

比如转账业务:现在张三和李四都各有200元,张三要给李四转账100元,那么转账成功后,张三的金额为100元,李四的金额为300元,该事务在数据库中的操作需要执行两条SQL命令,这两条SQL命令必须同时成功或失败。比如第二条SQL语句中的id出现错误,即使第一条SQL语句可以正常执行,但由于我们添加了事务的回滚,所以会回到最初的状态,即转账失败。依旧是上述示例,张三向李四成功转账100元后,虽然张三和李四的金额变了,但相加起来的总金额是不变的,仍是400元。本质上是通过MySQL底层的日志来实现的。

2025-03-20 21:36:14 291

原创 手写Tomcat:实现基本功能

首先,Tomcat是一个软件,所有的项目都能在Tomcat上加载运行,Tomcat最核心的就是Servlet集合,本身就是HashMap。Tomcat需要支持Servlet,所以有servlet底层的资源:HttpServlet抽象类、HttpRequest和HttpResponse,否则我们无法新建Servlet。

2025-03-09 11:14:02 896

原创 Tomcat原理:HTTP协议与HTTPS协议

无论是一台手机还是一台电脑,如果想要上网,必不可少的步骤是需要连接路由器。而路由器及其下面绑定的设备就组成了一个小型局域网。路由器能够划分子网的IP地址。同一个路由器下所连接的设备可以互相联系,如果两个小型局域网之间想要互发信息,就需要一个更大的路由器来连接,而这个更大的路由器又会对其子网进行划分,以此类推。以国家地理行政划分为例,下面是路由器的层级结构图:而搭建起整个国家体系的互联网是三家国企:联通、移动和电信。

2025-03-04 21:33:50 1694

原创 servlet理论知识:tomcat

是在客户端APP和服务器之间。

2025-02-26 22:48:48 800

原创 Java基础:IO流

IO(Input/Output):输入和输出,指的是某个设备或环境进行数据的输入或者输出。例如:键盘的输入,再比如显示器就是输出设备,输出图像。对于Java来说,输入输出问题,Java将它抽象成流对象来解决。以游戏程序为中心读取文件就是输入,写入文件是输出。

2025-02-21 00:30:22 748

原创 Java基础:代理

代理本身是一种模式,它给目标对象提供一个代理对象,并且由代理对象控制着对目标对象的引用。为了更好地理解什么是代理,我们举一个简单的日常生活中的例子:现在,我们设计一个转账业务,当用户直接访问转账业务时,容易出现各种问题。为了减少问题出现,我们在用户直接访问转账业务之前新增一个验证用户信息功能,去实现拦截。在上述例子中,转账业务就是定义中的目标对象,验证用户信息就是定义中的代理对象,从转账业务功能的宏观角度去看,代理对象在此的作用是控制访问和功能增强。

2025-02-20 02:10:12 834

原创 关于Java中的反射

反射是获取类信息的一种能力。而类信息是指类中的属性、方法、构造器、父类、接口。

2025-02-18 22:15:22 672

原创 关于Java中的抽象类和接口

接口是对方法的抽象,子类必须实现父类的抽象方法。

2025-02-17 23:48:24 562

原创 关于Java语言中的异常

在Java语言中,异常对象都是派生于Throwable类的一个实例。下图是Java异常层次结构的一个简化示意图:所有的异常都是由Throwable继承而来的,其分解为两个分支:Error(错误)和Exception(异常)。(1)Error是程序无法处理的错误, 它是由JVM产生和抛出的。(2)Exception是程序本身可以处理的异常,这种异常分两大类:运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。

2025-02-13 00:50:54 982

原创 关于Java中的包装类和自动拆装箱

在介绍包装类之前,我们先了解Java语言中的数据类型的相关知识点。Java语言中的数据类型包括基本数据类型和引用数据类型。(1)整型:byte、short、int、long(2)浮点型:float、double(3)布尔型:boolean(4)字符型:char。而对象是类的实例化,对象是堆当中的一块内存空间,类是构建对象的模板。但我们知道基本数据类型只进入到栈内存当中,而不进入堆内存中,因此基本数据类型不能创建对象,这就和“万物皆对象”的思想产生了冲突。为解决此冲突,于是就有了包装类。

2025-02-12 01:17:09 1020

原创 关于Java中的Object类

Object类是,即所有类都是Object类的子类。我们都知道继承的本质是代码的复用,那么所有类都可以使用Object类中的方法。

2025-02-11 23:05:30 473

原创 关于Java语言中的多态

我们在说明“什么是多态”之前先引入一个例子:现在有Animal类和Cat类,Cat类继承Animal类。用内存存储形式简单表示:因为Cat类继承了Animal类,所以在生产子类对象之前,会先生成父类对象,并且Animal类和Cat类的方法和变量,cat都可以调用。用内存存储形式简单表示:因为catAnimal的数据类型是Animal,所以catAnimal只能调用Animal类中的方法和变量。这就是我们上述所说的多态:父类的引用指向子类的对象。

2025-02-11 00:32:40 1032

原创 关于Java中类的继承

继承的本质是代码的复用,即重复使用已经定义好的方法和域(全局变量)。现在有两个类,分别名为AAA和BBB,其中AAA类代码如下:假如此时BBB类想使用AAA类中的testA()方法,那么有两种方式可以实现:1、创建AAA的对象如果此时testA()方法拒绝访问呢?我们增加一个测试类Test,并在main()方法中想要调用AAA类中的testA()方法,如果通过创建AAA的对象的方式,当testA()方法拒绝访问时,此时是不能实现的,但如果通过继承的方式,让BBB类继承AAA类,即使testA()

2025-02-10 01:35:34 367

原创 八大排序--选择排序

2.找到待排序数组当中真正的最小值,真正最小值和默认最小值进行交换;4.重复步骤123,直到所有的真正最小值到达正确的位置。1.默认待排序数组当中的第一个为最小值;3.真正最小值到达正确的位置;

2025-02-07 17:39:05 94

原创 前端实例:轮播图效果

利用HTML、CSS和JavaScript实现轮播图效果。

2024-12-07 17:31:37 1738

原创 关于HTML的常用标签

基本语法格式:<img src="图像URL" />,其中src属性用来指定图像的路径,是<img />标签的必备属性。若想改变其文本的对齐方式,可使用属性值align="对齐方式"(对齐方式:left/right/center),但是HTML不赞成使用标题标签的align属性,可使用CSS样式设置。<hr />是单标签,在网页中输入一个<hr />标签,就添加了一条默认样式的水平线。<div>标签可以替代块级元素(如:<h>标签、<p>标签等),但在语义上有一定区别。

2024-12-07 00:04:44 149

原创 关于CSS样式的常用属性

在综合设置边框全部属性时,其基本语法格式为:border:四边宽度 四边样式 四边颜色;

2024-12-07 00:03:21 808

原创 前端实例一:搭建简单学校官网页面

利用HTML和CSS的一些基础知识实现学校官网页面的简单搭建。

2024-12-07 00:02:41 348

原创 关于删除数组中的数据

2、如果遍历完仍未发现目标数据,则说明数组中无目标数据;如果找到了目标数据,则令目标数据之后的数据依次往前覆盖。上图为包含这个方法的函数代码,下图中调用此函数,在数组中删除“44”这个数据。3、覆盖完成之后,令有效数据长度减一,即完成删除。1、在数组中查找目标数据target。删除第一个符合条件的数据。

2024-11-16 16:27:24 146

原创 关于数组的扩容—ArrayList

我们知道,数组的初始容量在定义时就已经确定无法更改,那么,在进行这些操作时,如果遇到数组容量不够的情况,我们该如何处理?这就需要对数组进行扩容,而ArrayList在添加元素时,会根据需要自动进行扩容,以容纳更多的元素。2、默认情况下,ArrayList的容量会以1.5倍增长,即每次扩容后的容量是当前容量的1.5倍。3、扩容时,ArrayList会创建一个新的更大的数组,并将原始数组中的元素复制到新数组中。1、当ArrayList的当前容量不足以容纳新元素时,会触发扩容操作。

2024-11-05 20:00:28 121

原创 关于二叉树的遍历

二叉树遍历分为广度优先遍历和深度优先遍历两种。从上到下依次遍历,同一层从左到右遍历每个节点。分为先序遍历、中序遍历和后序遍历三种。一、广度优先遍历(BFS)二、深度优先遍历(DFS)

2024-11-05 19:29:21 165

原创 关于有序二叉树的删除

(思路:想要删除有两颗子树的节点,且保证有序二叉树的结果不变,则需找到一个值来替换掉目标节点的值,并且要满足该值比左子树的值都大,比右子树的值都小,因此,可用目标节点左子树的最大值或右子树的最小值来替换掉目标节点的值。(根据有序二叉树的性质和特点,不论是目标节点左子树的最大值还是右节点的最小值,都要么是叶子节点,要么只有一棵子树,其删除方法见前两项)。(2)如果有父节点 ,判断目标节点是父节点的左孩子还是右孩子,再继续判断目标节点有左子树还是右子树。1、找到要删除的节点(目标节点target)。

2024-11-05 19:25:58 508

原创 如何提高无序数组的查找效率?—变为有序数组,利用二分查找法查找数据

4、比较目标数据与mid的大小。如果目target<arr[mid],则令right=arr[mid]-1;如果target>arr[mid],则令left=arr[mid]+1。5、不断缩小查找范围,直到target=arr[mid],即找到目标数据,然后停止查找;如果未找到目标数据,则会出现left>right,不满足循环条件,退出循环,查找失败。3、利用二分查找法,定义游标left、游标right和游标mid,令mid=(left+right)/2(取整数部分),且left<right。

2024-11-01 22:25:47 253 1

空空如也

空空如也

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

TA关注的人

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