- 博客(56)
- 收藏
- 关注
转载 Centos7下启动tomcat无报错页面浏览报错: HTTP ERROR 404Problem accessing /. Reason: NOT_FOUND
问题环境:使用vm虚拟机下安装Centos7,开启tomcat正常,启动过程中没有报错,但是开启后无法打开tomcat的初始界面:localhost:8080,报错如上图.原因:端口号被防火墙拦截/没有被开放.解决方法:修改端口号,防火墙开放对应端口号,问题解决。修改端口号:假设tomcat所在目录为/usr/local/apache-tomcat/打开tomcat配置文件#vi /usr/local/apache-tomcat/conf/server.xml打开Tomcat配置
2020-12-13 00:18:59
1255
4
原创 SpringMVC(3)- 校验框架、SSM整合
1 校验框架1.1 校验框架入门1.1.1 表单校验的重要性表单校验保障了数据有效性、安全性数据可以随意输入,导致错误的结果。后端表单校验的重要性。1.1.2 表单校验分类校验位置:客户端校验服务端校验校验内容与对应方式:格式校验客户端:使用Js技术,利用正则表达式校验服务端:使用校验框架逻辑校验客户端:使用ajax发送要校验的数据,在服务端完成逻辑校验,返回校验结果服务端:接收到完整的请求后,在执行业务操作前,完成逻辑校验1.1.3 表单校
2020-12-08 02:45:39
479
原创 SpringMVC(2)- 异步调用、异步请求-跨域访问、拦截器、异常处理、实用技术
1 异步调用1.1 发送异步请求(回顾)<a href="javascript:void(0);" id="testAjax">访问controller</a><script type="text/javascript" src="/js/jquery-3.3.1.min.js"></script><script type="text/javascript"> $(function(){ $("#testAjax").cli
2020-12-08 02:41:25
404
原创 SpringMVC(1)- 入门案例、基本配置、请求、响应、Servlet相关接口
1 SpringMVC 概述三层架构表现层:负责数据展示业务层:负责业务处理数据层:负责数据操作MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式Model(模型):数据模型,用于封装数据View(视图):页面视图,用于展示数据jsphtmlController(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑ServletSpringMVC2 入门案例2.1 入门案例制作①导入
2020-12-08 02:37:00
262
原创 Spring(4)- Spring事务管理、模板对象
spring 事务1)事务回顾1.1)什么是事务?事务指数据库中多个操作合并在一起形成的操作序列1.2)事务的作用1.当数据库操作序列中个别操作失败时,提供一种方式使数据库状态恢复到正常状态(A),保障数据库即使在异常状态下仍能保持数据一致性(C)(要么操作前状态,要么操作后状态)。2.当出现并发访问数据库时,在多个访问间进行相互隔离,防止并发访问操作结果互相干扰(I)。事务特征(ACID)原子性(Atomicity)指事务是一个不可分割的整体,其中的操作要么全执行或全不执行一
2020-11-20 17:51:56
346
原创 Spring(3)- AOP开发简介及入门、AOP配置(XML,注解)、案例、AOP底层原理
AOP1)AOP简介1.1)OOP开发思路1.2)AOP开发思想1.3)AOP概念AOP(Aspect Oriented Programing)面向切面编程,一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP弥补了OOP的不足,基于OOP基础之上进行横向开发uOOP规定程序开发以类为主体模型,一切围绕对象进行,完成某个任务先构建模型uAOP程序开发主要关注基于OOP开发中的共性功能,一切围绕共性功能进行,完成某个任务先构建可能遇到的所有共性功能(当所有功能都开
2020-11-20 17:45:57
273
原创 Spring(2)- 常用注解、整合MyBatis、IoC底层核心原理
注解开发1)注解驱动的意义1.1)什么是注解驱动注解启动时使用注解的形式替代xml配置,将繁杂的spring配置文件从工程中彻底消除掉,简化书写1.2)注解驱动的弊端为了达成注解驱动的目的,可能会将原先很简单的书写,变的更加复杂XML中配置第三方开发的资源是很方便的,但使用注解驱动无法在第三方开发的资源中进行编辑,因此会增大开发工作量2)常用注解2.1)启动注解功能启动注解扫描,加载类中配置的注解项<context:component-scan base-pac
2020-11-20 17:36:19
237
原创 Spring(1)- IoC简介、入门案例、IoC配置(XML)、综合案例
1)Spring简介1.1)什么是框架源自于建筑学,隶属土木工程,后发展到软件工程领域软件工程框架:经过验证的,具有一定功能的,半成品软件经过验证具有一定功能半成品1.2)框架的作用1.3)Spring是什么Spring是分层的JavaSE/EE应用full-stack轻量级开源框架1.4)Spring的体系结构1.5)Spring的发展历史1.6)Spring优势Spring的优势方便解耦,简化开发第一天方便集成各
2020-11-05 17:16:08
270
原创 Redis - Redis简介、数据类型、常用指令、Jedis、持久化
Redis基础课程计划1. Redis 入 门(了解)(操作)2. 数据类型(重点)(操作)(理解)3. 常用指令(操作)4. Jedis(重点)(操作)5. 持 久 化(重点)(理解)6. 数据删除与淘汰策略(理解)7. 主从复制(重点)(操作)(理解)8. 哨 兵(重点)(操作)(理解)9. Cluster集群方案(重点)(操作)(理解)10. 企业级缓存解决方案(重点)(理
2020-10-30 01:34:42
437
2
原创 MyBatis(下) - 注解开发(单表和多表)、构建Sql
一.Mybatis注解开发单表操作1.1 MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装
2020-10-30 01:34:20
140
原创 MyBatis(中) - 接口代理实现Dao、动态Sql、分页插件、多表操作
一.接口代理方式实现Dao1.1 代理开发方式介绍 采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是我们后面进入企业的主流。Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper 接口开发需要遵循以下规范:1) Mapper.xml文件中的namespace与mapper接口的全限定名相同2) Mapper接口方法名和Mapper
2020-10-30 01:34:03
221
原创 MyBatis(上) - 快速入门、相关API、映射配置文件、核心配置文件及介绍
一.Mybatis快速入门1.1 框架介绍框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求!如图:1.2 ORM介绍ORM(Object Relational Mapping): 对象关系映射指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。如图:具体映射关系如下图:1.3 原始jdbc操作(查询数据)1.4原始jdbc操作(插入数据)1.5 原始jdbc操作的分析
2020-10-30 01:33:40
222
原创 JDBC(下)-数据库连接池(自定义连接池、C3P0、Druid)、JDBCTemplate
JDBC一、数据库连接池1.数据库连接池的概念数据库连接背景数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。这项技术能明显提高对数据库操作的性能。数据库连接池原理2.自定义连接池java.s
2020-10-30 01:33:07
134
原创 JDBC(上)- 入门、功能类详解、案例(学生表的CRUD)、工具类、Sql注入攻击
JDBC一、JDBC快速入门1.jdbc的概念JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。2.jdbc的本质其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!3.jdbc的快速入门程序导入jar包注册驱动Class.forName("com.mysql.jdbc.Dri
2020-10-29 19:48:17
177
原创 MySql (4)-储存引擎、索引、锁、集群
MySQL高级一、MySQL存储引擎1.MySQL体系结构体系结构的概念任何一套系统当中,每个部件都能起到一定的作用!MySQL的体系结构体系结构详解客户端连接支持接口:支持的客户端连接,例如C、Java、PHP等语言来连接MySQL数据库第一层:网络连接层连接池:管理、缓冲用户的连接,线程处理等需要缓存的需求。例如:当客户端发送一个请求连接,会从连接池中获取一个连接进行使用。第二层:核心服务层管理服务和工具:系统的管理和控制工具,例如备份恢复、
2020-10-29 19:35:12
345
原创 MySql (3)- 存储过程和函数、触发器、事务
MySQL高级-03-授课笔记一、MySQL存储过程和函数1.存储过程和函数的概念存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合2.存储过程和函数的好处存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java中方法可以多次调用减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理3.存储过程和函数的区别
2020-10-29 19:16:21
844
1
原创 MySql (2)- 约束、多表设计、多表查询、视图、备份还原
一、约束1.外键约束外键约束概念让表和表之间产生关系,从而保证数据的准确性!建表时添加外键约束为什么要有外键约束-- 创建db2数据库CREATE DATABASE db2;-- 使用db2数据库USE db2;-- 创建user用户表CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, -- id NAME VARCHAR(20) NOT NULL -- 姓名);-- 添加用
2020-10-29 19:09:50
327
原创 MySql (1)- 数据库概念、MySql介绍安装、Sql语句、约束
MySQL基础-01一、数据库的基本概念1.为什么要学数据库?之前我们如果想将一些数据实现永久化存储,可以怎么做呢?没错。使用IO流的技术将数据保存到本地文件中但是接下来我有这样一个需求:将下面的user.txt文件中的王五年龄修改为35张三 23 男李四 24 男王五 25 女赵六 26 女周七 27 男我们要如何实现呢?可以采用字符缓冲流,将每一行数据读取出来,封装为User对象。将多个User对象保存到集合中然后遍历集合,将王五对象的年龄修改为35,再重新将集合中的对
2020-10-29 18:59:57
285
原创 5、EL&Filter&Listener
EL&Filter&Listener-授课1 EL表达式和JSTL1.1 EL表达式1.1.1 EL表达式概述基本概念EL表达式,全称是Expression Language。意为表达式语言。它是Servlet规范中的一部分,是JSP2.0规范加入的内容。其作用是用于在JSP页面中获取数据,从而让我们的JSP脱离java代码块和JSP表达式。基本语法EL表达式的语法格式非常简单,写为 ${表达式内容}例如:在浏览器中输出请求域中名称为message的内容。假定,我们在请求域
2020-10-29 14:21:45
205
原创 4、Cookie&Session&Jsp
Cookie&SessionJsp-授课1 会话技术1.1 会话管理概述1.1.1 什么是会话这里的会话,指的是web开发中的一次通话过程,当打开浏览器,访问网站地址后,会话开始,当关闭浏览器(或者到了过期时间),会话结束。举个例子: 例如,你在给家人打电话,这时突然有送快递的配送员敲门,你放下电话去开门,收完快递回来后,通话还在保持中,继续说话就行了。1.1.2 会话管理作用什么时候会用到会话管理呢?最常见的就是购物车,当我们登录成功后,把商品加入到购物车之中,此时我们无论再浏览
2020-10-29 14:05:17
136
原创 3、Request&Response
1 响应对象1.1 响应对象概述1.1.1 关于响应响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端。在B/S架构中,响应就是把结果带回浏览器。响应对象,顾名思义就是用于在JavaWeb工程中实现上述功能的对象。1.1.2 常用响应对象响应对象也是是Servlet规范中定义的,它包括了协议无关的和协议相关的。协议无关的对象标准是:ServletResponse接口协议相关的对象标准是:HttpServletRespo
2020-10-29 13:53:32
647
原创 2、Servlet的介绍和使用
1 Servlet1.1 Servlet概述Servlet是SUN公司提供的一套规范,名称就叫Servlet规范,它也是JavaEE规范之一。我们可以像学习Java基础一样,通过API来学习Servlet。这里需要注意的是,在我们之前JDK的API中是没有Servlet规范的相关内容,需要使用JavaEE的API。目前在Oracle官网中的最新版本是JavaEE8,该网址中介绍了JavaEE8的一些新特性。当然,我们可以通过访问官方API,学习和查阅里面的内容。打开官方API网址,在左上部分找到jav
2020-10-29 13:44:47
459
2
原创 1、Tomcat&Http协议
Tomcat&Http协议1 企业开发简介1.1 JavaEE规范JavaEE规范是J2EE规范的新名称,早期被称为J2EE规范,其全称是Java 2 Platform Enterprise Edition,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准(JCP组织成员)。之所以改名为JavaEE,目的还是让大家清楚J2EE只是Java企业应用。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保
2020-10-29 13:26:35
469
原创 7、在Linux中使用shell
1 shell与安装tips重点讲解内容1.1 yum使用引子:yum类似于开发工具idea、eclipse中的在线插件安装商店我们输入一个将要安装的插件名字,进行搜索、安装的过程。yum概念yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum原理注意:必须联网不同的服务通过yum命令连接远程
2020-10-28 03:31:44
721
原创 6、Linux中的网络与磁盘管理
6 网络与磁盘管理Tips:重点讲解内容6.1 网络命令6.1.1 ifconfig命令引子:ifconfig命令有点类似于Windows的ipconfig命令ifconfig是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuringifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。使用者权限:所有(设置级别的需要管理员)用户语法ifconfig [网络设备][down
2020-10-28 03:14:11
377
原创 5、Linux中的备份压缩
5 Linux备份压缩在Windows中我们对于一个大文件进行压缩的时候,通常会使用第三方工具,比如360压缩、快压等工具,把一个文件压缩成.zip格式的压缩文件;而在Linux中我们也可以通过各种命令实现压缩的功能。5.1 gzip命令压缩/解压缩文件,不能压缩目录windows下接触的压缩文件大多是.rar,.7z格式,Linux下,不能识别这种格式。.zip格式的文件在Windows和Linux下都能使用。压缩文件,能节省磁盘空间,传输时能节省网络带宽gzip命令用于压缩文件。gz
2020-10-28 03:06:18
486
原创 4、Linux中的文件管理
4 Linux文件管理4.1 touch命令在Windows系统中,我们如果想创建一个文本文档或者word文件的时候,通常的做法是鼠标右键---新建---文本文档,这样的话,我们就成功的创建了一个文件,而在Linux中,我们可以通过字符命令的形式进行创建touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录使用者权限:所有权限用户语法touch [-acfm][-d<日期时间>][
2020-10-28 02:58:45
597
原创 3、Linux中的文件与目录管理
3.1 Linux 文件与目录管理在Linux系统中,所有的的目录结构为树状结构,最顶级的目录为根目录 /。在实际开发过程中,文件的操作是非常频繁也是非常重要的下面的章节我们将学习下Linux系统所有的系统目录和文件通过命令是如何进行管理的 3.1.1 目录常用命令ls: 列出目录cd: 切换目录pwd: 显示目前的目录mkdir:创建一个新的目录rmdir:删除一个空的目录cp: 复制文件或目录rm: 移除文件或目录mv:
2020-10-28 02:34:38
1376
原创 2、Linux中的系统与设置命令
2 系统与设置命令在前面的两个章节中,我们主要介绍了Linux基本知识和虚拟机的安装,从当前章节开始,我们一起学习下Linux的基本命令,在当前章节,我们先简单的学习下一些系统的基本命令,慢慢的由浅入深,在后面的章节中我们将学习其他的命令比如文件操作、备份压缩等2.1 学习命令的原因命令我们可以理解成在Windows中我们常常为了查看ip输入的ipconfig,在Linux中也有很多的命令,比如操作目录、文件、网络、磁盘等等命令Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如
2020-10-28 02:32:57
923
原创 1、初识Linux
1 初识Linux在前面的课程中,我们无论是开发、测试。部署、存储都在Windwos操作系统的环境中,从今天开始我们一起学习下Linux,Linux系统和Windows系统最大的区别就是图形化界面操作和用途上有所差异,除了这两点,两者有异曲同工之妙,在国内, Linux 系统更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows,也就是说Linux与Windows一样,同样也是操作系统只是在使用以及应用上有所差异,其他都是一样的;因为Linux也是操作系统所以在正式进入Linux学习之前,
2020-10-28 02:29:50
2786
1
原创 8.3 管理系统与服务器集成&单元测试&日志
1.管理系统与服务器集成1.1准备工作【应用】需求对之前写过的黑马信息管理系统进行改进,实现可以通过浏览器进行访问的功能准备工作将资料中的黑马管理系统代码拷贝到当前模块下导包的代码可能报错,因为之前的包路径可能和当前代码不一致,将导包的代码修改下业务分析解析URL封装到HttpReques对象DynamicResourceProcess类(执行指定动态资源的service方法)定义servlet类完成查询学生、添加学生、删除学生、修改学生的逻辑项
2020-10-27 21:07:40
201
原创 8.2 XML&枚举&注解
1.xml1.1概述【理解】万维网联盟(W3C)万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者: Tim Berners-Lee (蒂姆·伯纳斯·李)。是Web技术领域最具权威和影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言HTML(标准通用标记语言下的一个应用)、可扩展标记语言XML(标准通用标记语言下的一个子集)以及
2020-10-27 21:07:28
703
原创 8.1 类加载器&反射&http服务器改写
1.类加载器1.1类加载器【理解】作用负责将.class文件(存储的物理文件)加载在到内存中1.2类加载的过程【理解】类加载时机创建类的实例(对象)调用类的类方法访问类或者接口的类变量,或者为该类变量赋值使用反射方式来强制创建某个类或接口对应的java.lang.Class对象初始化某个类的子类直接使用java.exe命令来运行某个主类类加载过程加载通过包名 + 类名,获取这个类,准备用流进行传输在这个类加载到内存中加载完毕创建一个class对象
2020-10-27 21:07:17
181
原创 7.2 网络编程(下)
1.NIO1.1 NIO通道客户端【应用】客户端实现步骤打开通道指定IP和端口号写出数据释放资源示例代码public class NIOClient { public static void main(String[] args) throws IOException { //1.打开通道 SocketChannel socketChannel = SocketChannel.open(); //2.指定IP和端口号
2020-10-27 21:07:06
162
原创 7.1 网络编程(上)
1.网络编程入门1.1 网络编程概述【理解】计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输1.2 网络编程三要素【理解】IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。
2020-10-27 21:06:55
1035
原创 6.2 多线程(下)
1.线程池1.1 线程状态介绍当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程状态被定义在了java.lang.Thread.State枚举类中,State枚举类的源码如下:public class Thread { public enum State { /* 新建 */ NEW , /* 可运行状态
2020-10-27 21:06:43
263
原创 6.1 多线程(上)
1.实现多线程1.1简单了解多线程【理解】是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。1.2并发和并行【理解】并行:在同一时刻,有多个指令在多个CPU上同时执行。并发:在同一时刻,有多个指令在单个CPU上交替执行。1.3进程和线程【理解】进程:是正在运行的程序独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态
2020-10-27 21:06:24
132
原创 5.2 IO流(下)
1.字符流1.1为什么会出现字符流【理解】字符流的介绍由于字节流操作中文不是特别的方便,所以Java就提供字符流字符流 = 字节流 + 编码表中文的字节存储方式用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数1.2编码表【理解】什么是字符集是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等l计算机要准确的存储和识别各
2020-10-27 21:06:13
256
原创 5.1 IO流(上)
1.File类1.1File类概述和构造方法【应用】File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例File(Strin
2020-10-27 21:05:59
63
原创 4.1 集合(上)
1.Collection集合1.1数组和集合的区别【理解】相同点都是容器,可以存储多个数据不同点数组的长度是不可变的,集合的长度是可变的数组可以存基本数据类型和引用数据类型集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.
2020-10-27 21:05:49
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人