自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java子线程解决获取主线程的request对象问题

业务场景是这样的,我有一个流程处理功能,在结束节点的时候需要生成一个pdf。但是生成pdf是需要一定的时间(几秒)。如果写在结束方法中,用户体验相对不是很好,所以需要单独创建一个线程来解决这个问题。在创建线程并在线程中执行方法后,发现会报一个空指针的错误,原因是调用主线程的接口request拿不到,所以会导致nullpointexception。增加如下两行即可解决子线程获取不到主线程request问题。

2024-05-30 11:17:44 292 1

原创 springboot笔记

springboot是可以实现轻松创建独立的、生产级的基于Spring的应用程序,开发人员只需要关注运行。Spring平台和第三方库进行了一系列的约定(约定大于配置),这样就可以用最少的时间完成更多的功能。大多数Spring Boot应用程序需要很少的Spring配置(0配置)。简介SpringBoot已成为当今最流行的微服务开发框架,如何使用SpringBoot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat的可运...

2022-01-18 17:09:54 551

原创 文件上传下载

环境配置1、pom.xml中添加依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency>2、配置xml配置文

2022-01-17 16:47:51 224

原创 SSM整合

ssm分别是spring(springframework)、springmvc、mybatis。1、在pom.xml中引入依赖,共计13个。根据需求或多或少。测试 Junit、Spirng-test 工具 lombok、druid、jackson、jstl、javax-servlet.api 框架 spring-webmvc、spring-aop、mybatis-spring、mabatis 数据库 spring-jdbc、mysql-connection-jav

2022-01-16 09:46:24 521

原创 Transaction

1、基础概念事务是指一条或多条sql语句构成的工作单元,在这个工作单元内所有的sql语句相互依赖,要么同时提交,要么同时失败。2、事务边界1、自动提交在设置自动提交事务的范围内,每执行一条sql语句则提交一次。2、手动提交在设置手动提交事物的范围内,所有的sql语句都会放到一个事务单元内,要么同时提交,要么失败回滚。3、事务分类事务共有三种实现方式,但都需要配置部分相同的配置文件。 <!--扫描...

2022-01-16 09:27:00 204

原创 DataSource

1、基础概念1.1、DriverManagerDriverManager(驱动管理器)是由SUN公司实现的,提供了基本的获取连接方式。主要作用是管理注册到DriverManager中的JDBC驱动程序,并根据需要使用JDBC驱动程序建立与数据服务器的连接网络。频繁的进行数据库连接会产生很大的开销。1.2、DataSourceDataSouce(数据源)指定的用于获取数据库连接的规范接口。它存在于javax.sql包中,用来替代DriverManager的方式来...

2022-01-12 19:37:59 1548

原创 AOP面向切面

1、编程方式POP 面向过程编程面向过程编程(Procedure Oriented Programming)是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成。OOP 面向对象编程面向对象编程(Object Oriented Programming)依然保留着面向过程的特性,面向过程中的功能变成了对象的方法,...

2022-01-12 10:08:17 251

原创 Ioc容器

Spring框架为基于java的企业应用程序提供了全面的编程和配置模式——适用于任何类型的部署平台。Spring的一个关键元素是应用级的基础设施支持:Spring关注企业应用程序的“通用性”,这样团队就可以专注于应用程序级业务逻辑,而不需要与特定的部署环境有不必要的联系。1、IOC控制反转依赖注入。对象仅通过构造方法参数、工厂方法参数或在对象实例被构造或被工厂方法返回后设置的属性来定义他们的依赖项(即他们使用的其他对象)。然后容器在创建bean时注入这些依赖项。从根本...

2022-01-10 19:23:17 1036

原创 Maven

maven是一款管理项目生命周期的工具,核心的内容(project object model 项目对象模型)POM1、项目生命周期1.1构建 eclipse、myeclipse、idea等不同环境下统一项目环境<!--生成eclipse项目-->mvn eclipse:eclipse 生成eclipse环境mvn eclipse:clean 删除eclipse环境1.2依赖管理...

2022-01-07 17:14:20 325

原创 Mybatis配置

Mybatis的前身叫iBatis,是apache的一个开源项目,2010改名Mybatis。 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,简单地说就是封装了JDBC技术,实现了半自动化。MyBatis共有三个配置文件,实现了sql语句与java代码的分离。 1、jdbc.properties#oracledriver=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thi...

2022-01-05 16:42:59 446

原创 Ajax技术

1、简介ajax是一种完成互联网数据(客户端与服务器)交互的轻量级技术。应用于各大网站,比如注册账号的唯一性校验,级联菜单,地图的异步刷新,微信朋友圈等。2、程序//原生ajax<script> //1、创建ajax异步引擎对象 let request = new XMLHttpRequest(); //2、监听请求状态改变函数 request.onreadystatechange = function(){ //r...

2022-01-05 16:41:38 616

原创 Cookie和Session

session cookie 存储位置 服务器 客户端 数据类型 session.setAttribute(String,Object) 支持任意类型的数据 new Cookie(String,String) 仅支持字符串类型数据 容量上限 只要JVM无限大,理论上无上限 总条数:每个域名下50条(取决于浏览器) 容量上限:4KB,中文4字节,英文2字节 Cookie声明...

2021-12-25 15:06:35 396

原创 JSP服务页面

JSP页面允许在标准的html界面中包含java代码1、处理流程 第一步: 如果是第一次访问jsp页面,将jsp页面翻译成Servlet代码; 如果不是第一次访问,直接第四步; 第二步: 编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境; 第三步: Web容器为JSP页面创建一个...

2021-12-24 16:43:12 213

原创 Listener监听器

listener主要完成的工作是对于三大作用域的监听1、监听作用域的生命周期 ServletContextListener HttpSessionListener ServletRequestListenerimport javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.anno...

2021-12-24 11:28:10 610

原创 Servlet作用域

Servlet支持存储数据的三个对象,HttpServletRequest请求作用域,HttpSession会话作用域,HttpContext应用作用域。1、请求作用域 生命周期: 创建:客户端请求到达服务器后创建的存储区域(内存空间) 销毁:服务器返回响应到客户端后立即销毁该区域//获取请求作用域Object username1 = request.getAttribute("username...

2021-12-23 13:37:35 827

原创 Filter组件

1、简介 Filter组件是运行在服务端的组件主要完成的功能是对客户端访问资源的过滤,符合条件放行,不符合条件拦截。并且可以对访问的目标资源访问前后进行逻辑处理。 每个过滤器在客户端向服务器发送请求时进行一次过滤,在服务器向客户端相应的时候进行一次过滤。每次过滤都有两种操作(放行、拦截),默认拦截。2、环境搭建 创建过滤类实现javax.Filter接口,重写doFilter方法。共有三个参数(请求、响应、过滤链)@WebFilter( ...

2021-12-22 14:54:16 317

原创 Servlet组件

1、初始化 Servlet初始化交由应用服务器管理,在管理中(<load-on-startup>0</load-on-startup>)负责Servlet来控制单例模式。 默认值为-1,代表懒汉模式。大于-1代表饿汉模式。 当值大于-1时,直接影响到初始化顺序,数字越小优先级越高 <servlet> <servlet-name>Life</servlet-name>...

2021-12-21 17:47:06 275

原创 tomcat目录

1、bin:可执行目录文件 启动命令:startup.bat || startup.sh —将指定参数传给catalina bat:启动窗口 sh:后台运行 关闭命令:shutdown.bat || shutdown.sh —将指定参数传给catalina 核心命令:catalin...

2021-12-21 08:55:16 189

原创 Web简介和Tomcat

Web(World Wide Web)万维网,它是一种基于超文本和HTTP、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在internet上的一种网络服务,为用户在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超链接将internet信息节点组织成一个互为关联的网状结构。两种模式C/S,B/S。 C/S是客户端服务器端应用程序,这一类程序需要一个独立的客户端运行。 B/S是浏览器端服务器端应用程序,这类程序需要...

2021-12-19 09:10:56 250

原创 for,forin,forof

最常见的for循环是for(初始值;判断;步长){执行内容},可以通过自定义修改实现各种功能。一般情况下增量为下标,通过对下标变化进行值的计算。 forin和forof主要是用于循环对象类型的数组或数组类型的对象。forin通过循环的可以取出对象中的键,可以通过键获取到对应的值。forof循环的是数组中的每个元素。当循环的内容为一个对象{}时: let arr={key1:['A','B','C'],key2:['a','b','c,]}; ...

2021-12-16 17:07:19 196

原创 数据库连接JDBC

Java Database Connectivity简称JDBC,是Java中访问数据库的一种技术。JDBC有两部分组成,JDBC API和JDBC Driver Interface。 JDBC的工作原理: 1、装载驱动程序(向DriverManager注册驱动程序) 2、通过驱动管理器获得数据库连接 3、得到能操作sql的接口:Statement或PreparedStat...

2021-12-14 16:37:51 523

原创 数据库存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据库操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。 MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表适用不...

2021-12-12 12:43:18 3872

原创 Java内存分配(四种内存类型)

Java的内存分为方法区、栈内存、堆内存、本地方法栈。1、方法区 方法区存着类的代码(装载信息)。2、栈内存 存放参数和局部变量。

2021-12-12 11:35:18 3003

原创 MySQL数据库命令行操作

1、数据库服务 启动数据库服务:net start mysql; ——mysql是数据库的服务名 关闭数据库服务:net stop mysql; 1.1、登录数据库 mysql -hlocalhost -uroot -p -h代表服务器名,localhost代表本地。-u代表账号,-p代表密码。 1.2、退出数据库 ...

2021-12-11 11:16:48 1134

原创 事件(定时器)和触发器

1、事件事件(event)是MySQL在相应时刻调用存储过程的数据库对象。可以调用一次,也可以周期性的调用。由特定线程“事件调度器”来控制。默认是关闭的,打开后才能使用。 查看事件调度器是否打开:show varables like 'event_scheduler'—off为关,on为开 命令行开启事件调度器 set global event_scheduler=on; set gl...

2021-12-10 19:38:27 1738

原创 存储过程—函数

SQL语句需要先编译后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的sql语句集,经过编译后存储在数据库中,用户指定存储过程的名字并给定参数来调用执行。 存储过程是可编程的函数,在数据库中创建并保存。可以有sql语句和控制结构组成。 1、创建存储过程#删除存储过程drop procedure if exist myproc();#创建存储过程create procedure myproc()begin ...

2021-12-10 10:06:17 920

原创 MySQL事务

事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。1、事务必须满足四个条件(ACID):原子性、一致性、隔离性、持久性。原子性(Atomicity,不可分割性):一个事务(transaction)中的所有操作要么全部完成,要么全部不完成,不会在中间结束。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有被执行过一样。 一致性(Consistency):在事务开始之前和事务...

2021-12-09 13:59:47 263

原创 MySQL视图和索引

1、视图 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。通过视图可以展现基表的部分数据。视图数据来自自定义视图的查询中使用的表。用来创建视图的表叫做基表basetable 创建视图: create view 视图名 as (select 语句)。select语句可以为单表也可以多表,还可以是空表 视图的作用: 简单:无需考虑结构、关联条件,筛选条件。是一个筛选好的...

2021-12-09 09:21:00 558

原创 SQL语句

SQL全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查询语言。在不同的数据库中基本互通。 SQL语言按照功能可分为五种: DDL语句(数据定义语言),Create、Alter、Drop、Declare、Truncate DQL语句(数据查询语言),Select DML语句(数据操作语言),Insert、Update、Delete、Merge DTL语...

2021-12-08 09:00:57 183

原创 MySQL安装

MySQL是一个关系型数据库的管理系统。开源。下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 解压到到自定义路径下,注意路径中不要有中文。接下来配置my.ini文件。在根路径下创建一个txt的文本文档,将文件后缀改为.ini即可。后缀的修改方式如图。 my.ini中需要写入以下内容,根据自己电脑实际情况修改。[mysqld]#端口为3306...

2021-12-03 17:15:35 1019

原创 JSON和包结构

21、JSON JavaScript Object Notation(JS对象简谱)是一种轻量级的数据交换格式。可以把对象中的一组数据转换为字符串,这样就很方便的可以在网络或程序之间使用。 对象用 {}, 数组用 []。例如:这是两个大括号括起来的两个对象,第一个对象中有三个属性,每个属性都有对应的值。每个对象都有相同的属性,属性类型为非数字,需要用引号阔住。冒号前边写键,后边写值,表示这是一组属性。属性与属性之间用逗...

2021-12-02 17:58:14 153

原创 Java反射机制

反射是指程序可以访问检测修改它本身状态或行为的一种能力。1、反射包类 描述 Class 表示正在运行的Java程序的类和接口 Field 提供有关类或接口的单个字段的相关信息,以及对他的动态访问权限 Method 提供有关类或接口的单独某个方法的信息 Constructor 提供关于类的单个构造方法的信息,以及对他的访问权限 2、Class类的使用 ...

2021-12-01 10:31:08 245

原创 内部类和设计模式

1、什么是内部类(Inner Classes) 在Java中,允许在一个类(或方法、语句块)的内部定义另一个类,成为内部类。内部类和外层封装他的类属于所属关系,一般只用在定义她的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称。 优点:使源代码更加清晰,减少命名冲突,提高可视性。public class Out{ class Inner{ //这里定义了一个内部类。 }} 内部类特点...

2021-11-30 14:46:42 141

原创 线程和进程

什么是进程:进程就是某种意义上相互隔离、独立运行的程序。什么是线程:线程就是进程执行的过程中的一个执行流程,一个线程可以由多个进程组成。他们可以分别执行不同的任务。多个线程同时运行称为并发。两者的区别: 1、每个进程都有独立的代码和存储空间,进程的切换开销较大。 2、线程没有对立的代码和存储空间,和所属的进程中的其他线程共享代码和存储空间。但是每个线程都有独立的运行栈和程序计数器,线程的切换开销较小。 ...

2021-11-29 17:25:19 3754

原创 数组(2)排序

1、插入排序-改进 插入排序每次和前边的比较时,如果小于前边就会每次都交换。可是设置一个变量获取第n个数字,然后进行比较,如果逆序则让n-1的下标+1;直至不满足条件时,再将获取的变量赋给对应的位置,这样可以减少交换的次数,代码如下。 int[] a= {3,4,2,5,1}; int j,t; for(int i=1 ; i < a.length ; i++){//从第二个下标开始,共循环length-1次 ...

2021-11-28 13:13:29 166

原创 【IO流】

1、Path类和Paths类通过Paths通过一个字符串对象来构造Path对象。File是1.7之前的文件类,之后被Path替代。Path p1=Paths.get(D:/work/java);Path类的方法:public Path getFileName();根据路径获取文件名称。public int getNameCount();返回路径中文件名称的数目。public Path getName(int index);返回指定位置的文件夹名称。public Path getP

2021-11-26 17:18:41 108

原创 【集合框架】

集合是包含多个对象的简单对象,所包含的对象称为元素。 Set(集)中元素不允许重复。 List(列表)中元素允许重复,有下标,有序。 Map(映射)中每个元素包含一对,键不允许重复,值允许重复。1、Collection接口返回值 描述 boolean add(E e)添加元素 addAll(Collection c)添加集合中所有元...

2021-11-24 14:32:41 122

原创 异常的处理

1、异常的定义 在Java中,异常是指当程序运行错误时创建的一种错误对象。2、异常的处理 2.1、try-catch try{ 可能出现异常的代码。}catch(Exception e){ //e为异常的类型,catch可以写多个,但一定是由小到大 如果try捕获的类型为对应的异常类型,则在catch块中抛出。...

2021-11-21 12:00:52 72

原创 抽象类和接口

1、抽象类 被abstruct修饰的类就是抽象类。 public abstruct class Test{//定义抽象类 public sbstruct void method();//定义抽象方法} 抽象类特点: 抽象方法没有方法体。 抽象类不能被实例,只能用子类去实现,实例其子类。...

2021-11-19 21:03:32 192

原创 常见类的使用(2)

1、自动拆箱装箱 由于基本数据类型不具备对象的特征,为了解决此需求java语言引入了包装类。基本数据类型 对应的包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 每个包装类可以封装其对应的基本数据类型,并使其...

2021-11-19 20:36:36 142

空空如也

空空如也

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

TA关注的人

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