- 博客(79)
- 收藏
- 关注
原创 JavaWeb项目中解决乱码问题
1.在tomcat8.5+版本,内部已经解决了get请求的乱码问题,需要开发人员收到解决post请求的乱码问题在web.xml文件中添加如下配置<!--解决post请求的乱码问题--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.Charac
2021-12-26 10:44:35
243
原创 在Spring MVC中,封装字符串日期类型参数出现的问题
1.问题:前端页面传入的日期参数是object类型的,格式如下图:后端controller中要将日期参数封装到实体类的属性上,那么必须得在该属性上加上这个注解,这样才不会报400错误(无法将前端页面获取到的时间参数格式化为 yyyy-MM-dd HH:mm:ss 格式)这样就解决了问题!...
2021-12-03 22:21:29
455
原创 Linux 安装MySql 5.7
1.在/usr目录下新建java/mysql目录,并进入到这个目录下2.运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包3. 运行 tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,解压文件4.centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。运行rpm -e --nodeps mariadb
2021-11-14 22:21:23
1048
原创 Linux 安装tomcat
1.定位到/usr目录下ch /usr/2.在当前目录下创建一个空的目录:javamkdir java3.使用xftp软件将tomcat软件传输到 /usr/java 目录下4.解压tomcat.tar.gztar -zxvf tomcat压缩包名称5.将8080端口开放,并使之生效firewall-cmd --permanent --add-port=8080/tcpfirewall-cmd --reloadfirewall-cmd --query-port=8080/tcp
2021-11-14 21:43:06
424
原创 Linux系统下安装JDK
1.定位到/usr/目录下cd /usr/2.在当前目录下创建一个空的java目录,并且进入到改目录下mkdir javacd java3.使用xftp 传输软件将Linux版本的jdk软件(绿色解压缩就可以使用的)传输到 /usr/java/ 目录下4.解压jdk软件tar -zxvf jdk软件压缩包的名称5.配置环境变量编辑/etc/profile文件,在未见末尾添加两端代码vim /etc/profileexport JAVA_HOME=jdk安装的目录(/usr/ja
2021-11-14 21:22:58
797
原创 二、Spring MVC 进阶
一、Ajax异步交互传递json格式的数据Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotation-driven />这个注解实现其他数据和json数据之间的转换。<!--Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotat
2021-10-23 15:10:27
359
原创 一、Spring MVC 简介
一、Spring MVC 简介1.MVC模式MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。* M(model)模型:处理业务逻辑,封装实体* V(view) 视图:展示内容* C(controller)控制器:负责调度分发(1.接收请求、2.调用模型、3.转发到视图)2.Spring MVC概述SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring
2021-10-20 23:33:56
2207
1
原创 三、Spring JDBCTemplate & 声明式事务
一、Spring JDBCTemplate1.JDBCTemplate是什么?JdbcTemplate是spring框架中提供的一个模板对象,对原始繁琐的Jdbc API对象的简单封装。核心对象JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);核心方法int update(); 执行增、删、改语句List<T> query(); 查询多个T queryForObject(); 查询一个 ne
2021-10-17 17:47:58
212
原创 二、Spring AOP
一、转账案例需求: 使用Spring框架整合DbUtils技术,实现用户转账功能。CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `money` double DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf81.导入M
2021-10-15 18:07:17
135
原创 一、Spring IOC
一、Spring概述1.Spring是什么?Spring是分层的Java SE/EE应用的全栈式(full-stack),轻量级开源框架。- 全栈式:提供了表现层 SpringMVC和持久层 Spring JDBC Template以及 业务层 事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。- 轻量级与重量级的划分主要依据是看它使用了多少服务,启动时需要加载的资源多少以及耦合度等等。两大核心IOC(Inverse
2021-10-10 21:00:33
362
原创 三、MyBatis加载策略及注解开发
一、MyBatis加载策略1.什么是延迟加载?问题:Mybatis中一对一,一对多,多对多关系的配置及实现,可以实现对象的关联查询。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的订单信息。此时就是我们所说的延迟加载。举个栗子在一对多中,当我们有一个用户,它有个100个订单 在查询用户的时候,要不要把关联的订单查出来? 在查询订单的时候,要不要把关联的用户查出来?答:在查询用户时,用户下的订单应该是,什么时候用,什么时候查询。在查询订单时,订单所属的用户信息应该
2021-10-04 23:44:28
328
原创 二、MyBatis复杂映射&配置文件深入
一、MyBatis高级查询1.resultMap属性前言:在建立对象关系映射时,如果实体类中的属性名和数据库表中的字段名一致,使用resultType属性可以将查询结果自动封装到实体类中。那如果实体类中的属性名和数据库表中的字段名不一致,就需要使用restltMap实现将查询结果手动封装到实体类中。(1)编写UserMapper接口package cn.xuguowen.mapper;import cn.xuguowen.pojo.User;import java.util.List;
2021-10-01 20:29:50
260
原创 一、Mybatis简介
一、MyBatis简介1.1原始JDBC操作的分析原始JDBC开发存在的问题如下:①:数据库创建连接,释放连接频繁操作,造成系统资源浪费从而影响系统性能。②:sql语句在代码中硬编码,造成代码不易维护;实际应用sql变化的可能较大,sql变动需要改变java代码。③:查询操作时,需要手动将结果集中的数据封装到实体类中。应对上述问题给出的解决方案:①:使用数据库连接池初始化连接资源。②:将sql语句抽取到xml文件中。③:使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射。
2021-09-26 14:15:06
959
原创 Ajax异步请求
一、什么是Ajax?Ajax是指一种创建交互式网页应用的开发技术。Ajax=异步JS和XML。二、Ajax的作用Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更行(局部更新)。传统的网页如果需要更新内容,必须重新加载整个网页页面。简单记: Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术, 维护用户体验性, 进行网页的局部刷新。三、异步与同步1.浏览器访问服务器的方式同步访问:客户端必须等待服务器端的响应,在等待过程中不
2021-09-22 12:28:44
456
原创 Java中BeanUtils工具类实现数据的封装
一、BeanUtils工具类1.介绍BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。可以将一个表单提交的所有数据封装到JavaBean中。2.导入依赖/jar包<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <v
2021-09-15 14:34:46
538
原创 Java使用FileUpload实现文件的上传
一、文件上传的介绍1.文件上传的实质:文件的拷贝文件上传:从本地将文件拷贝到服务器磁盘上客户端:需要编写文件上传表单服务端:需要编写代码接收上传的文件二、客户端编码1.文件上传三要素表单的提交方式:post(get方式提交数据有大小限制)表达的enctype属性值:必须设置为 multipart/form-datamultipart/form-data:多部件文件上传,指表单数据有多部分构成。 既可以有文本数据,也可以有文件等二进制数据。表单中必须有文件上传项:file,必须
2021-09-14 16:44:44
4316
原创 XML语法
一、XML配置文件和properties配置文件的对比二、XML的基本语法<?xml version="1.0" encoding="utf-8" ?><!-- xml文件的文档声明,需要注意的是:必须写在文件的开头位置,必须是第一行,注释都不可以放在第一行 --><!-- XML文件中有且只有一个根元素users元素 --><users> <!-- 元素标签的命名中不可以包含 空格 和一些特殊符号.如 : -->
2021-09-09 21:51:25
282
原创 IP基本原理
IP基本原理一、交换机和路由器的区别简单粗糙的进行一下区别二、IP头部信息详解Version:版本,用于标识封装是IPv4还是IPv6IHL:IP头部长度,描述了数据包IP头部信息的长度Type Of Service:服务类型,用于标识DSCP或IP优先级,用于QOS识别Total Length:数据包的总长度Identification:标识符,用于标识某个数据分片来源于那个数据包Flags:标志,可以标识数据包是否禁止分片,也可以标识某个数据分片是否是最后一个分片Fragment
2021-09-07 17:54:51
1776
原创 Java实现冒泡排序
1.冒泡排序思路分析图2.根据图示先简单的实现每一轮的循环比较public class BubbleSort { public static void main(String[] args) { int[] arr = new int[]{24, 69, 80, 57, 13}; // 第一轮的比较 for (int j = 0; j < 4; j++) { if (arr[j] > arr[j + 1])
2021-09-07 17:49:55
108
原创 广域网基本原理
广域网基本原理一、广域网使用的协议及电缆1.物理层串行电缆光纤 EPON2.数据链路层HDLC 淘汰帧中继 淘汰PPP 点到点的协议,某些场景会使用以太网 某些场景会使用3.网络层IP协议二、连接方式1.电路交换PSTNISDN 淘汰2.分组交换帧中继 淘汰3.ADSL4.EPON(重点)三、广域网接入分类1.接入到互联网2.远程连接到分支机构高速专线VPN...
2021-08-29 09:19:13
295
原创 GET&POST请求方式
常用的浏览器发送请求的方式有GET、POST请求1.哪些操作会发送get请求在浏览器的地址栏中访问URL,回车超链接标签也会发起get请求form表单中可以发送get请求1.1 验证上述方式发送get请求(1)编写html页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>测试get和post请求方式的种类有哪些</t
2021-08-28 20:12:28
490
原创 局域网基本原理
局域网基本原理一、使用的协议以及线缆1.物理层双绞线、同轴电缆、光纤、无线电2.数据链路层以太网令牌环 淘汰FDDI(光纤分布式接口) 淘汰3.网络层IPIPX 淘汰Apple talk 淘汰–二、局域网设备1.集线器:内部为总线拓扑任意时间只能由一台主机占用总线,连接的所有设备位于同一冲突域问题:那么如何判断任意时间是否有主机占用总线呢?CSMA/CD 带冲突检测的载波帧听多路访问。也就是说这个机制可以保证同一时间只有一台主机占用总线工作在物理层,没有寻址能力,所有数
2021-08-28 10:57:34
725
原创 JavaWeb之Servlet核心技术
一、Servlet的基本概念Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容。二、Servlet的编程步骤1.建立一个Java Web Application项目并配置Tomcat服务器。2.自定义类实现Servlet接口或者继承Generic
2021-08-27 22:29:23
209
原创 TCPIP参考模型
TCP/IP参考模型TCP/IP参考模型,在网络层中只支持IP协议。而OSI参考模型在网络层中支持IP、IPX、Apple talk。一、TCP/IP参考模型的划分方法1、4层划分方法1.网络接口层(物理层、数据链路层)2.网络层3.传输层4.应用层(会话层、表示层、应用层)注意:在书面中,一般都是 4 层划分方法。但是在实际开发中,都采用的是 5 层划分方法。2、5层划分方法(重点)1.物理层2.数据链路层3.网络层4.传输层5.应用层(会话层、表示层、应用层)二、数据封装
2021-08-27 10:11:02
750
原创 OSI参考模型
OSI参考模型一、OSI参考模型产生的背景国际标准组织没有提出统一标准之前,各大IT设备厂商只支持自己的私有协议,跨厂商设备兼容性差。这样导致用户购买和维护成本高;而且也不利于网络技术的发展。二、OSI参考模型的概念定义了网络中设备所遵守的层次结构。三、OSI参考模型的优点开放的标准化接口,协议不在封闭多厂商设备兼容易于理解、学习和更新协议标准实现模块化工程,降低开发难度便于故障排除四、OSI参考模型的分层(重点)物、数、网、传、会、表、应 分别对应 物理层、数据链路层、网
2021-08-27 10:09:33
1304
原创 计算机网络概述
计算机网络概述一、计算机网络的基本功能①:资源共享(我在优酷上看绣春刀的电影……)②:综合信息服务(链家、贝壳、滴滴)③:分布式处理和负载均衡(java高级阶段分布式服务会有很好的理解)二、计算机网络的类型①:局域网(LAN)用户自行建设的,使用私有地址组建的内部网络。(校园网)②:城域网(MAN)由运营商或者大规模企业建设,连接城市范围的网络。 比如:武汉市光谷一带会存在局端(CO)供光谷一带的人使用。③:广域网(WAN)由运营商建设、连接全国各个城域网的网络。(骨干网、核心网、传输
2021-08-27 10:08:52
206
原创 不同进制之间的相互转换
不同进制之间的相互转换一:进制的介绍1.对于整数,有四种表示方式:① 二进制:0,1 满 2 进 1。以0b 或者 0B开头int n = 0b1010;②十进制:0 - 9 满10进1。int a = 1010;③八进制:0 - 7 满 8 进1。以数字0开头表示int b = 01010;④十六进制:0 - 9 以及 A(10) - F(15),满16进1。以0x或者0X开头表示。 此处的A-F不区分大小写。int c = 0x10101;二:进制转
2021-08-24 11:03:32
2799
原创 Java中如何判断两个浮点数是否相等
一:结论:获取两个浮点数差值的绝对值,然后在某个精度范围内判断。二:Why?因为java底层存储浮点数类型的数据:是获取到一个接近这个浮点数的近似值进行存储的。如下代码展示:1.假设 8.1 / 3 = 2.7,然后将 2.7 赋值给变量 b。显然想法是错误的。2.java底层并不是拿 8.1 / 3 的。而是拿着一个接近 8.1 的数值,进行计算。8.1 有可能在底层是 8.000000091. double b = 8.1 / 3; System.out.println(b);
2021-08-20 11:16:34
1959
原创 MySQL中delete语句和truncate语句的区别?
MySQL中delete语句和truncate语句的区别?1.delete语句后面可以加where语句进行条件筛选,而truncate不可以。2.truncate删除的效率高于delete。3.使用delete删除后,再次插入数据后,表中的自增长列的值从断电开始;而truncate删除后,再次插入数据后,表中的自增长列的值从 1 开始。4.delete删除有返回值(共N条受到影响);而truncate删除后没有返回值。5.delete支持事务的回滚;truncate不支持事务的回滚。...
2021-07-29 22:54:22
254
原创 DOM的核心总结
一:DOM(Document Object Model),是W3C组织推荐的处理可扩展标记语言(HTML/XML)的标准编程接口。对于JavaScript,为了能够使JavaScript操作HTML,JavaScript就有了一套自己的DOM编程接口。对于HTML,DOM使得HTML形成一颗DOM树,包含文档、元素、节点。 关于DOM的操作,我们主要针对元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。二:创建元素1.document.write()document
2021-04-11 19:29:56
275
原创 排他思想
1.排他思想:假如有一组元素,我想要操作其中的一个元素,那么就需要用到循环中的排他思想。2.代码案例<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>排他思想算法的实现</t
2021-03-01 11:04:16
619
1
原创 ServletContext对象获取web.xml文件中的初始化参数
通过ServletContext对象获取web.xml文件中的初始化参数1.首先在web.xml配置参数信息<!--配置上下文参数,可以通过ServletContext对象获取到--> <context-param> <param-name>jdbc</param-name> <param-value>jdbc:mysql://localhost:3306/mybatis</param-value> <
2021-02-26 10:56:41
700
1
原创 字符串String类
一:String类的概述1.public final class String:发现String类被final修饰,说明不可以被继承。2.implements java.io.Serializable, Comparable:实现了Serializable接口,支持序列化机制。实现了Comparable接口,可以比较大小。3.private final char value[]:String类内部使用了字符数组进行存储数据,并且是常量(final修饰)。二:String类的不可变 性题外话
2021-02-25 14:18:34
238
1
原创 ServletContext对象获取共享数据
1.ServletContext对象当web容器创建时,它会为每一个程序创建一个对应的ServletContext对象,它代表了当前的web应用2.如何获取ServletContext对象获取ServletContext对象的方法封装到了GenericServlet类当中,我们自己写的Servlet间接继承了GenericServlet类。所以可以通过当前对象调用getServletContext()方法便可以获取到ServletContextServletContext context = thi
2021-02-25 10:44:27
260
1
原创 Java多线程
多线程一:程序、进程、线程的基本概念1.程序(program):就是为了完成特定任务,用某种编程语言编写的一组指令(代码)的集合。即指一段静态的代码。例如:IDEA程序,一堆文件夹就可以看作是静态的指令2.进程(process):是程序的一次执行过程,或是正在运行的一个程序。它是一个动态的过程:有着自身的产生、存在和消亡的过程——生命周期。例如:运行中的PotPlayer、IDEA……3.线程(thread):是一个程序内部的一条执行路径。多线程——若一个进程同一时间并行执行多个线程,就是
2021-02-21 15:11:50
163
4
原创 Java实现单例设计模式
1.单例设计模式:所谓的单例设计模式,就是在整个软件系统当中,只会产生一个该类的对象。2.实现方式有两种2.1饿汉式public class SingletonTest1 { public static void main(String[] args) {// Bank bank = new Bank(); Bank bank1 = Bank.getInstance(); Bank bank2 = Bank.getInstance(); // 检查是否相等,如果相等,则说明该类就一个
2021-02-20 09:41:09
114
原创 分别用JS和Java实现——统计一个字符串在另一个字符串中出现的次数
一:题目:判断一个字符串 ‘abcoefoxyozzopp’ 中出现次数最多的字符,并统计个数二:代码展示<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>统计一个字符串中出现最多
2021-02-19 12:50:24
629
2
原创 查找字符串中某个字符出现的位置以及次数
1.题目:查找’abcoefoxyozzopp’中所有o出现的位置以及出现的次数2.实现思路1.首先利用indexOf(‘要查找的字符’)方法找到第一个字符o出现的位置var index = str.indexOf(‘o’);2.然后在字符o第一次出现的位置后面继续查找其他的字符o,利用indexOf(‘要查找的字符’,[index + 1])方法3.循环操作,只要不等于 -1 就一直查找3.代码演示<!DOCTYPE html><html lang="en">&
2021-02-18 16:37:51
4010
原创 数组去重
数组去重1.题目要求给定一个数组,将数组中重复的元素删除掉。例如: var arr = [1,2,3,4,5,1]; 数组中元素1重复了,删除一个只保留一个。目的是将旧数组中不重复的元素放到新数组当中,重复的元素只保留一个放到新数组当中2.实现思路1.遍历旧数组,2.然后拿着旧数组中的元素去新数组中查找,如果该元素在新数组当中没有,则添加;否则不添加。(indexOf()方法)3.代码实现 <script> function duplicateRemoval(ar
2021-02-17 10:56:01
310
原创 js模仿倒计时案例
一:模仿倒计时1.代码展示:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>模仿京东倒计时案例</title> <script>
2021-02-14 13:13:50
127
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人