- 博客(47)
- 收藏
- 关注
原创 同步和异步请求、Ajax以及json
浏览器发送请求给服务器,其有同步请求和异步请求两种方式。什么叫同步请求呢?就是在发送一个请求之后,需要等待服务器响应返回,才能够发送下一个请求。但是其有两个缺陷:①请求必须要等待响应如果遇到请求阻塞,网络延迟,用户需要等待,这样用户体验效果不好。②请求时会携带所有的信息比如说一个form表单,需要填入用户名,密码,手机号,等多个信息。如果其中有一个信息填写错了,请求失败,又要全部重新填写,会很麻烦繁琐。我只填写我填错了的不就好了么?如何解决这个问题?就需要引入异步的概念了。
2022-11-21 15:40:33 403 2
原创 LinkHashMap集合能够使元素是有序
我们知道HashMap保证成对元素唯一,并且查询速度很快,可是成对元素存放进去是没有顺序的,那么我们要保证有序,还要速度快怎么办呢?在HashMap下面有一个子类LinkedHashMap,它是链表和哈希表组合的一个数据存储结构。java.util.LinkedHashMap extends HashMap底层:哈希表+链表(记录元素的顺序)由上面的代码示例可以看出,map只能做到key不重复,但是不能做到有序,而LinkedHashMap可以做到key不重复,而且元素有序
2022-11-21 10:34:29 1829
转载 超详细的图解SSH原理(真的超详细哦~~~~~~~~~)
本文以图文方式对SSH原理进行解析(主要指远程登录,没有涉及端口转发等功能)。同时分析了非对称加密的特性,以及在实践过程中如何对加密操作进行改进。known_hosts中存储的内容是什么?known_hosts中存储是已认证的远程主机host key,每个SSH Server都有一个secret, unique ID, called a host key。host key何时加入known_hosts的?。。3.为什么需要known_hosts?
2022-11-17 13:51:27 10428
转载 超详细的SQL语句连接筛选条件放在on和where后的区别
当把 address ‘杭州’ 这个筛选条件放在on之后,查询得到的结果似乎跟我们预料中的不同,从结果中能看出,这个筛选条件好像只过滤掉了ext表中对应的记录,而main表中的记录并没有被过滤掉,也就是上图中标记为红色的那条记录。在连接查询语法中,另人迷惑首当其冲的就要属on筛选和where筛选的区别了, 在我们编写查询的时候, 筛选条件的放置不管是在on后面还是where后面, 查出来的结果总是一样的, 既然如此,那为什么还要多此一举的让sql查询支持两种筛选器呢?第二步,应用on筛选器。
2022-11-16 14:49:33 1704
原创 【MYSQL】事务的4种隔离级别分别是什么?
多个事务并发执行的场景下出现脏写、脏读、不可重复读和幻读的原因,本篇文章将会给大家详细介绍MySQL为了防止上述情况的发生分别是如何去做的 回顾之前所学的,事务具有ACID四种特性,其中 I 指的是事务的隔离性,对于隔离性,又有不同的隔离级别,不同的隔离级别本质上其实是在事务同时进行更改或查询操作时在结果的性能、可靠性、一致性和可再现性之间所作的取舍不同而已。
2022-11-15 10:12:25 556
原创 【JavaWeb】AJAX
AJAX 是一种用于创建快速动态网页的技术。AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步JavaScript和XML(标准通用标记语言的子集)。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
2022-10-24 21:17:09 1500
原创 【JavaWeb】JdbcTemplate的使用讲解
那么现在问题来了,参数args是调用者填的,他是可以瞎填的,也就是说他编写sql语句时有2个“?两大开源连接池的学习,本质上其实就是对核心六步骤中的第二步(获取连接)的进一步优化,同样,将其封装进工具类JdbcUtil中。其中update方法有两个参数:一个是sql语句,一个是可变参数(也就是sql语句中预编译中的“?”具体的值,是以args这个可变参数(也就是数组)来表示的,而数组的索引是以0开始的。也就是说JdbcTemplate中的update方法的封装,和刚自定义的update方法的逻辑是类似的。
2022-10-18 14:25:42 2101
转载 【JavaWeb】为什么会出现脏写、脏读、不可重复读与幻读
之前的脏读问题可以通过如下限制阻止其发生——每个事物只能看见其他事物已经提交的数据,对于已经修改但是未提交的数据是看不见的。但是仅仅是这样就万事大吉了吗?我们来看看下面的这种情况: 事物A先读取数据C之后事物B修改了这个值,将其改为了B然后B事物提交了A事物此时再次读取这个值的时候会发现前后两次读取值竟然不一样!对于A事务,在事务提交前对同一个数据读取了多次,发现读取的值并不都是一样的,这种现象就叫做不可重复读,顾名思义就是不能重复地读取到一样的值。
2022-10-17 17:16:37 1119
原创 【JavaWeb】事务是什么?
我们先说一下事务的流程,在开启事务之后,对数据的增删改查,都只是将操作记录更新到事务日志中,如果想要数据更新到数据库中,我们就需要进行事务提交的操作,成功的提交,会将所有的DML(insert、update、delete)语句操作历史记录和底层硬盘数据来一次同步进而保存到数据库,如果不提交事务的话,事务日志中的操作记录则不会同步到数据库中。举例说明:张三向李四转100元,转账前和转账后的总的钱是不变的,这就叫一致性,如果出现张三转出100元,李四账号没有增加100元这就出现了数据错误,就没有达到一致性。
2022-10-17 16:54:48 494
原创 【JavaWeb】阿里的德鲁伊和c3p0连接池
Jdbc六步骤,Jdbc的封装、sql注入与预编译,自定义连接池,本质上一直在做一件事情,封装工具类JdbcUtil,并一步一步将其优化。需要我们自己封装么?其实有现成的框架可以直接用,但学习阶段,自己将其过一遍也是很有必要的。其实市面上也有几个常用的开源连接池:c3p0以及阿里巴巴的德鲁伊。既然是开源,那么经过多版本的迭代,功能肯定更加地强大,使用起来也更加地方便。
2022-10-17 16:32:41 1313
原创 【JavaWeb】sql注入是个什么东西?
提前将sql语句传入PreparedStatement中编译,等会要传入的参数使用?代替,那么该sql语句会进行预编译,编译之后就是一个需要传递参数的sql语句,(例如:select * from user where id=?)之后将前台获取的参数通过set方式传入编译后的sql语句中,这样的话就避免了特殊字符在编译阶段篡改sql而导致的sql注入问题,而且使用PreparedStatement在一定程度上有助于数据库执行性能的提升。
2022-10-17 15:38:53 324
原创 【JavaWeb】Listener&Filter监听器和过滤器
监听器就是一个实现了特定接口的Java类,这个Java类用于监听另一个Java类的方法调用或者属性的改变。当被监听对象发生上述事件后,监听器某个方法将会立即被执行。在Servlet中定义了多种类型的监听器,它们用于监听的事件源分别是ServletContext、HttpSession和ServletRequest这三个域对象。
2022-09-13 21:52:59 896
原创 【JavaWeb】JSP、EL和JSTL
JSP:Java Server Pages Java服务器端页面。JSP 就是 HTML + Java代码 + JSP自身东西。用于指示JSP执行的某些步骤用于指示JSP变现特定行为4.1.1.写法4.1.2.Page指令用来定义JSP文件的全局属性。4.1.3.这些属性可以单独使用,也可以几个或多个同时使用。4.1.4.在JSP页面中,只有import属性可以出现多次,其他属性都只能出现一次。写法:
2022-09-06 23:16:47 921 1
原创 【JavaWeb】Cookie和Session
案例存在问题:用户访问Servlet,记录用户的上次访问时间。但是如果用户将浏览器关闭,重新打开浏览器访问程序,程序就会把其当成是第一次访问:(显示,您好,欢迎来到本网站)。1.默认级别的Cookie指的是没有设置有效时间的Cookie,默认的情况下只要关闭了浏览器,Cookie也会被销毁。(Cookie存在于浏览器的内存中,当关闭了浏览器Cookie就销毁了)。2.持久级别的Cookie。
2022-09-05 19:33:47 1089
原创 【JavaWeb】JSP的概述
JSP:Java Server Pages (Java服务器端页面),其实就在HTML中嵌入Java代码。提供登录页面,用于用户登录(用户名和密码需要查询数据库)。如果登录失败,需要回到登录页面(给出提示信息)。如果登录成功,页面进行跳转,在成功页面上显示登录成功的总人数。请求转发是一次请求一次响应,而重定向是两次请求两次响应。请求转发地址栏不会变化的,重定向地址栏发生变化。请求转发路径不带工程名,重定向需要带工程名路径。请求转发只能在本网站内部,重定向可以定向到任何网站。...
2022-08-30 21:25:36 2157 1
原创 【JavaWeb】Response和Request对象的概述
开发的软件是B/S结构的软件,可以通过浏览器访问服务器的软件。从浏览器输入一个地址访问服务器(将这个过程称为是请求)。服务器接收到请求,需要进行处理,处理以后需要将处理结果显示回浏览器端(将这个过程称为是响应)。开发的软件都是B/S结构软件,从浏览器向服务器提交一些数据,将这些内容进行封装就封装成了一个请求对象(Request对象)。
2022-08-24 23:15:41 876
原创 【JavaWeb】Servlet的概述
Servlet其实就一个运行在web服务器上的小的Java程序,用于处理从web客户端发送的请求,并且对请求作出响应。生命周期:一个对象从创建到销毁过程。Servlet默认是在第一次访问的时候创建的对象,现在通过一个配置将Servlet的实例化的过程放在服务器启动的时候(让服务器启动的时候创建Servlet的对象)。如果现在这样做那么之前花费的时间就会在服务器启动的时候一起花费掉了。对于用户来讲就不需要额外花费这个时间。ServletContext:Servlet的上下文对象。...
2022-08-24 21:57:29 540
原创 【JavaWeb】Tomcat的概述
1.1什么是虚拟主机虚拟主机:在电脑上设置一个目录,使用一个名称与该目录进行绑定。这个路径称为是虚拟主机。主机是可以发布web项目的。2.1虚拟主机的配置2.1.1创建一个路径(虚拟主机)这里的baidu是虚拟主机的目录,website是项目名称。2.1.2配置tomcat的虚拟主机2.1.3修改本地的hosts文件找到C:\Windows\System32\drivers\etc\hosts修改hosts文件2.1.4启动服务器访问项目2.1.5修改端口号。
2022-08-23 00:17:29 964
原创 【JavaWeb】数据库连接池和JDBC封装工具DBUtils
Test/*** 手动设置参数的方式:*/try{// 获得连接:从连接池中获取:// 创建连接池:// 设置连接参数:// 从连接池中获得连接:// 编写SQL:// 预编译SQL:// 执行SQL:}}}因为JDBC手写比较麻烦,而且有非常多的代码是类似的。比如获得连接,预编译SQL,释放资源等..那么可以将这些代码抽取出来放到工具类中。将类似的代码进行抽取。大大简化JDBC的编程。
2022-08-22 23:15:23 896
原创 【JavaWeb】JDBC高级
连接池是装有连接的容器,使用连接的话,可以从连接池中进行获取,使用完成之后将连接归还给连接池。编写一个类实现DataSource接口重写getConnection方法初始化多个连接在内存中编写归还连接的方法4.4.1.1使用接口的实现类完成的构造这种写法不方便程序的扩展。4.4.1.2额外提供了方法归还连接// 归还连接:这种方式增加使用连接池的用户的难度。4.4.1.3自定义连接池的问题解决如果不提供自定义的方法就可以解决这个问题,但是连接要如何归还到连接池呢?
2022-08-21 22:56:00 339
原创 【JavaWeb】JDBC学习
驱动是两个设备(应用)之间通信的桥梁。在早期互联网上SQL注入漏洞普遍存在。有一个网站,用户需要进行注册,用户注册以后根据用户名和密码完成登录。假设现在用户名已经被其他人知道了,但是其他人不知道你的密码,也可以登录到网站上进行相应的操作。之前进行JDBC的操作的时候,都是一条SQL语句执行。现在如果使用批处理,可以将一批SQL一起执行。
2022-08-21 21:54:03 1036
原创 【Java基础】Date类、DateFormat类
Sun Aug 21 00:45:55 CST 2022,但是这样的日期格式并不是符合我们国内的风格,我们需要的是这样的格式:2022年08月21日 00时45分55秒,这才是中国人习惯的时间格式。比如说:我们输入了一字符串:“2020-05-05”,我们自然是能看懂2020年5月5日,但是计算机需要将其转化成日期对象,parse方法的作用就是在此。③用SimpleDateFormat的format方法,按照自己设定的格式将系统时间格式化,得到的返回值是字符串。M:大写M,Month的简写,表示月。
2022-08-21 01:18:45 3328
原创 【Java基础】Object类
Object类是所有类的根类,顶层父类,就可以理解成是所有类的祖先,也就是说所有的类最终都会继承至它,包括数组的父类,也是Object类。所以,当我们新建一个类的时候,一般都会将toString()方法重写,因为地址对于开发者来说意义不大,我们需要的是字符串。好,现在问题来了,对于开发者来说,地址是没多大的意义的,我们需要的是你能以字符串的形式展现出来而不是给我一串地址。类是引用数据类型,所以Object类中的equals()方法,比较的是引用地址是否相同。Object类中的方法,所有类都可以使用。
2022-08-20 23:43:20 393
原创 【Java基础】Scanner类、Random类、ArrayList类、String、Static、Arrays类、Math类和API
那么我Random(91)表示的是0到90的随机数,我在Random(91)+10,表示的不就是10到100的随机数了嘛。static的作用就是让这个类中的成员方法和成员变量,用类名直接就可以调用,不用new一个对象,操作起来非常方便,但相对的也就不安全,所以一般都是一些可以共享的信息才会用到static。这些类我们需要调用它的成员方法时,先得new出对应的一个对象,然后再用这个对象去调用对应的方法。这几天我们学习了好几个类:Scanner类,Random类,ArrayList类。
2022-08-20 23:08:10 460
原创 【Java基础】Java虚拟机---JVM和程序编译是什么?
从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。.java文件是开发人员编写的源代码,而java程序是在JVM上运行的,但是JVM并不认识.java文件。首先说一下main()方法,这个方法是主方法,是程序的入口点,Java虚拟机在运行的时候会从main方法开始执行。常用于类名,属性,命名空间等。而用Java编写的软件可以运行在任何的操作系统上,因为Java编写的程序是运行在JVM上的。
2022-08-20 22:57:33 249
原创 【JavaWeb】Mysql多表和事务
一对多的例子:一个部门下可以有多个员工,一个员工只能属于某一个部门。在多的一方创建外键指向一的一方的主键。
2022-08-17 23:25:57 307
原创 【JavaWeb】数据库基本操作
一、数据库介绍:首先理解一下数据库:1.我们的电脑可以安装很多的数据库操作软件,比如常见的navicate、Dbeaver、Mysql等,2.然后其中每个数据库软件,可以管理多个数据仓库,也就是我们平常所说的项目用到的数据库,3.而一个数据仓库,可以存储多个数据表,一个数据表可以存储多行数据。图中很清楚的看出电脑上安装的数据库软件里面,可以建很多的数据库,然后每个数据库在建立很对的表,这样,我们要开发一个项目的时候就能在数据库软件里边建立一个数据库,然后建立我们需要用到的表,然后在表里面建立自己
2022-08-17 19:54:29 2638
原创 【Java基础】Java网络编程
网络编程的目的就是直接或间接地通过网络协议与其他计算机进行通信。在Java语言中包含网络编程所需要的各种类,编程人员只需要创建这些类的对象,调用相应的方法,就可以进行网络应用程序的编写。要进行网络程序的编写,编程人员需要对网络传输协议、端口和套接字等方面的知识有一定的了解。下面就从这几个方面对网络编程的基础进行介绍。......
2022-07-28 16:51:32 955
原创 【Java基础】Java字符串的处理
在Java中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是String对象,如字符串"Hello"在编译后即成为String对象。因此也可以通过创建String类的实例来定义字符串。不论使用哪种形式创建字符串,字符串对象一旦被创建,其值是不能改变的,但可以使用其他变量重新赋值的方式进行更改。1.直接定义字符串直接定义字符串是指使用双引号表示字符串中的内容,例如"HelloJava"、"Java编程"等。或者注意2.{............
2022-07-28 15:19:17 6609
原创 【Java基础】Java多线程编程
世间万物都可以同时完成很多工作。例如,人体可以同时进行呼吸、血液循环、思考问题等活动。用户既可以使用计算机听歌,也可以编写文档和发送邮件,而这些活动的完成可以同时进行。这种同时执行多个操作的“思想”在Java中被称为并发,而将并发完成的每一件事称为线程。在Java中,并发机制非常重要,但并不是所有程序语言都支持线程。在以往的程序中,多以一个任务完成以后再进行下一个任务的模式进行,这样下一个任务的开始必须等待前一个任务的结束。Java语言提供了并发机制,允许开发人员在程序中执行多个线程,每个线程完成。....
2022-07-27 17:17:09 590
原创 【Java基础】Java输入输出(IO)流
在Java中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。下面详细介绍什么是输入流和输出流,以及Java中流的类型及每种类型的相关类。1.什么是输入/输出流Java程序通过流来完成输入/输出,所有的输入/输出以流的形式处理。因此要了解I/O系统,首先要理解输入/输出流的概念。(一)“字节”的定义(二)“字符”的定义(三)“字节”与“字符”的区别httpshttps。...............
2022-07-27 11:35:40 1802
原创 【Java基础】Java集合、泛型和枚举
Java的所有集合类都位于 java.util 包,其中提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。一个集合是一个对象,但它表示一组对象,Java 集合中实际存放的是对象的引用值,不能存放基本数据类型值。.....................
2022-07-26 13:34:32 843
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人