本文章,列出了一些程序员须要学习的技术和知识点,有些技术和知识点没有写道,欢迎你们进行修改和补充,有些技术公司用到,你们须要先学习,有些技术和知识点过期,你们能够了解。
本人笔记链接[[http://2863c718.wiz03.com/wapp/pages/view/share/s/0EoYso1Xqk4m2eAV4Y385xVk2vODbZ2BZ46Z2ChvzO2jhAyq|学习体系]]。
======一.前端======
=====1.前端基础=====
====1.1.html4====
=== HTML介绍===
=== HTML做用 ===
=== 常见标签 ===php
(1)图片标签css
(2)表单标签html
(3)表格标签前端
(4)头标签java
(5)框架集mysql
(6)其余常见标签程序员
====1.2.css2====web
CSS概述ajax
CSS和HTML结合的方式正则表达式
CSS选择器
CSS扩展选择器
CSS盒子模型
CSS布局漂浮属性
CSS布局定位属性
==== 1.3.JavaScript基础 ====
===1.3.1.JS概述===
(1)JS与Java不一样
(2)JS的历史
(3)JS语言组成
(4)JS与HTML结合方式
=== 1.3.2.JS基础 ===
(1)JS基本语法
(2)JS的数据类型
(3)JS基本语句
(4)JS运算符
(5)JS数组
(6)JS函数的定义
(7)JS中函数的重载
(8)JS中的全局变量和局部变量
=== 1.3.3.JS中常见对象 ===
String对象
Array对象
Date对象
Math对象
=== 1.3.4.JavaScript 全局函数(global) ===
=== 1.3.5.BOM对象 ===
什么是BOM
==1.3.5.1.浏览器对象的使用==
1.3.5.1.1.History
History简介
(1)back()方法
(2)forward()方法
(3)go()方法
(4)制做返回按钮
1.3.5.1.2.Location
Location对象简介
经过href属性完成超连接效果
超连接按钮效果
1.3.5.1.3.Window对象
Window对象简介
(1)方法
① confirm()
② prompt()
③ open()
④ close()
⑤ setInterval()
⑥ setTimeout()
⑦ clearInterval()
⑧ alert()
=== 1.3.6.DOM简单入门 ===
== 1.3.6.1.1.DOM简介 ==
DOM结构模型
DOM的三个级别和DHTML介绍
BOM和HTML DOM关系
== 1.3.6.2.Document对象 ==
Element对象
Node经常使用属性
节点名称、值和类型
父节点、子节点和兄弟节点
Node经常使用方法
检测子节点和属性
是否存在某节点
是否存在属性
操做DOM节点树
(1)插入节点
①appendChild方法
②insertBefore方法
(2)删除节点
(3)替换节点
(4)复制节点
(5)移动节点
innerHTML
JS经常使用事件
(1)鼠标移动事件
(2)鼠标点击事件
(3)加载与卸载事件
(4)聚焦与离焦时间键盘事件
(5)提交与重置事件
(6)选择与改变事件
省市县三级联动树形菜单制做
==== 1.4.Jquery ====
===1.4.1.jQuery简介===
什么是jQuery
jQuery的特色
=== 1.4.2.jQuery选择器 ===
基本选择器
层次选择器
过滤选择器
内容过滤选择器
表单域选择器
=== 1.4.3.jQuery属性操做 ===
=== 1.4.4.jQuery快捷操做 ===
class属性值操做
标签包含内容操做
css样式操做
value属性快捷操做
(1)复选框操做
(2)下拉列表操做
(3)单选按钮操做
=== 1.4.5.jQuery和DOM对象关系 ===
=== 1.4.6.jQuery框架对象分析 ===
=== 1.4.7.jQuery加载事件 ===
=== 1.4.8.jQuery普通事件操做 ===
=== 1.4.9.jQuery对文档的操做 ===
=== 1.4.10.jQuery属性选择器的使 ===
=== 1.4.11.jQuery事件绑定 ===
=== 1.4.12.jQuery动画效果小案例 ===
=====2.前端中级=====
====2.1.js进阶====
====2.2.php与数据库====
====2.3.Ajax====
====2.4.HTML5+CSS3====
=====3.前端高级=====
==== 3.1.layui ====
==== 3.2.Bootstrap ====
==== 3.3.移动端 ====
==== 3.4.Canvas画布 ====
==== 3.5.NodeJS ====
==== 3.6.AngularJS ====
==== 3.7.ES6-Babel-Webpack-Less ====
==== 3.8.Vue ====
==== 3.9.AngularJSX ====
==== 3.10.Webpack ====
==== 3.11.WebAPP-Cordova ====
==== 3.12.WebAPP-Ionic ====
==== 3.13.ES6 ====
==== 3.14.Git微信小程序 ====
==== 3.15.Gulp ====
==== 3.16.Node ====
==== 3.17.React ====
======二.后端======
=====1.Java基础=====
==== 1.1.Java编码规范 ====
源码存储规范
命名规则
书写格式
代码注释
==== 1.2.JAVA开发环境 ====
安装JDK1.7 ,开发环境目录要求
设置环境变量
==== 1.3.软件开发基础 ====
计算机基础
操做系统,文件,目录,可执行程序,经常使用快捷键
经常使用的Shell命令
经常使用开发语言 了解
==== 1.4.第一个JAVA程序HelloWord ====
在记事本编写程序
在Shell命令窗口编译、执行
讲解程序的编译执行过程
关键字、标识符
什么是标识符
(1)标识符的命名规范
(2)JAVA关键字
==== 1.5.数据类型 ====
数据类型简介
JAVA中的数据类型
基本数据类型
引用数据类型
基本数据类型有哪些
数据类型的取值范围
数据类型的转换
自动类型转换
强制类型转换
==== 1.6.数组 ====
数组的说明
(1)为何用数组
(2)一维数组的声明与建立
(3)Java内存分析,堆和栈(局部变量存储)
数组的初始化
(1)静态初始化
(2)动态初始化
数组的访问
(1)经过下标访问指定元素
(2)循环访问
数组的排序
(1)冒泡排序
(2)选择排序
数组的查找
(1)顺序查找
(2)二分法查找
Arrays工具类
二维数组
(1)二维数组的声明
(2)二维数组的建立
二维数组的初始化
(1)静态初始化
(2)动态初始化
二维数组的访问
(1)经过下标访问指定元素
(2)经过循环访问数组
==== 1.7.流程控制 ====
什么是JAVA语句的执行结构
(1)JAVA语句有哪些结构
(2)顺序语句
(3)分支语句
(4)循环语句
If语句
(1)简单if语句
(2)复杂if语句
(3)if-else语句
(4)多重if语句
(5)嵌套if语句
switch语句
(1)switch语句用法
(2)switch使用String分支
(3)switch语句与if语句的区别
枚举的简单使用
(1)枚举的定义
(2)枚举的使用(结合switch的使用)
循环语句
(1)什么是循环
(2)Java中的循环语句
for循环语句
while循环
(1)while循环语句
(2)do-while循环语句
特殊流程控制语句
(1)break语句的使用
(2)continue语句的使用
(3)label 的简述
比较while和do-while的区别
==== 1.8.类.变量,方法,对象 ====
类的定义
什么是变量
变量的声明和初始化
变量的分类
变量的做用域
对象的定义
对象的建立以及内存分析
构造方法的定义
(1)构造方法的定义
(2)构造方法的使用
(3)构造方法重载
(4)构造方法与普通方法的区别
this关键字
(1)this.属性:访问本类的成员属性(成员变量与局部变量同名的状况,成员变量无效)
(2)this.方法:访问本类的成员方法
(3)this():访问本类中的构造函数
static关键字
(1)静态属性
(2)静态方法
(3)静态代码块
static的应用
(1)工具类(操做数组经常使用方法为例,写一个工具类)
(2)工具类的概念
类中成员变量的定义
常量、进制转换
(1)什么是常量
(2)二进制转换十进制
运算符
(1)经常使用运算符
(2)算术运算符
(3)赋值运算符
(4)关系运算符
(5)逻辑运算符
(6)三目运算符
(7)字符串链接运算符
(8)位运算符
(9)移位运算符
表达式的值和类型
转义字符
运算符优先级
什么是方法
(1)方法(函数)
(2)方法中的参数
① 形参
② 实参
(3)方法的返回值
方法的声明和调用
(1)声明方法的格式
(2)调用方法的格式
可变参数
(1)可变参数的写法
(2)可变参数的使用
类中方法的定义
方法的重载
内部类
(1)成员内部类
(2)静态内部类
(3)匿名内部类
(4)局部内部类
==== 1.9.面向对象 ====
1.9.1.什么是面向对象
1.9.2.面向对象的设计思想
1.9.3.面向对象和面向过程的区别
(1)面向对象
(2)面向过程
(3)区别总结
1.9.4.抽象类和抽象方法
(1)抽象类出现的缘由
(2)抽象类的特色
1.9.5.封装
(1)private 的使用
(2)get/set
(3)方法的说明(讲this以前,参数与成员变量名称要不一样)
1.9.6.继承
继承的概念
类的继承的使用
super关键字
继承中的构造方法
访问权限
(1)private
(2)default(默认)
(3)protected
(4)public
方法重写
(1)方法重写的规则
(2)Object 类
① equals()方法
② hashCode()方法
③ getClass()方法
④ toString()方法
final关键字
(1)final修饰的类
(2)final修饰的方法
(3)final修饰的属性
(4)final与static的区别
1.9.7.多态
什么是多态
多态的体现
对象的多态性
多态的表现形式
接口
(1)接口的概念
(2)接口的使用
① 接口的声明语法
② 接口的实现类
③ 接口的使用规则
④ 接口的使用用途
⑤ 接口与抽象类的区别
对象转型
(1)对象的向上转型
(2)instanceof 关键字
(3)对象的向下转型
==== 1.10.正则表达式 ====
(1)String 正则
(2)Pattern Matcher
(3)正则元字符
(4)正则表达式
==== 1.11.经常使用类 ====
1.11.1.字符串
(1)String类
(2)StringBuffer类
(3)StringBuilder类
(4)String.format() 格式化
1.11.2.基本数据类型的包装类
基本数据类型与其包装类
数据的装箱和拆箱
String 与 基本数据类型的互换
1.11.3.Date类
1.11.4.Calendar类
1.11.5.SimpleDateFormat类
1.11.6.Math类
1.11.7.Random类
1.11.8.Runtime类
1.11.9.System类
==== 1.12.异常 ====
异常的概念
异常的分类
异常的处理方式
(1)捕获异常:try..catch..finally语句
(2)抛出异常:throws和throw
自定义异常
==== 1.13.泛型的使用 ====
泛型应用在集合上
泛型类声明,方法返回泛型,方法参数泛型
泛型限定
==== 1.14.反射 ====
类的加载 Class.forName()
建立对象的两种方式(newInstance与带参数构造器)
成员变量的访问Field类和getDeclaredField方法
方法的访问与调用 Method
构造方法
==== 1.15.注解 ====
==== 1.16.集合 ====
1.16.1.集合框架介绍
(1)集合的概念
(2)集合的框架结构介绍
(3)集合与数组的对比
1.16.2.Collection接口
(1)集合对象的建立
(2)Collection中经常使用的方法
1.16.3.List接口
(1)List接口的存储特色
(2)List接口的实现类
① ArrayList实现类的使用
② LinkedList实现类的使用
③ ArrayList与LinkedList存储的比较
1.16.4.加强for循环
1.16.5.Iterator迭代器
(1)迭代器的工做原理
(2)迭代器的使用
1.16.6.集合工具
(1)Collections 工具类
(2)Comparable
(3)Comparator
1.16.7.Set接口
(1)集合的存储特色
(2)HashSet的实现原理
① 重写hashCode()
② 重写equals()
(3)LinkedHashSet(添加)
1.16.8.Map接口
(1)Map接口的概述
(2)Map接口的经常使用方法
(3)Map接口的经常使用实现类
(4)HashMap
(5)Hashtable 和 HashMap的区别
(6)LinkedHashMap
(7)Map的遍历:各类遍历方式 Map.Entry
==== 1.17.IO流 ====
1.17.1.File类
File类做用
File类的构造方法
File类经常使用方法
使用File类对文件进行操做
使用File类浏览目录中的文件和子目录
递归算法遍历目录下全部文件与子目录
1.17.2.IO概念
什么是IO流?
流的做用和原理?
1.17.3.IO流的种类
按方向分:输入流、输出流
按数据单位分:字符流、字节流
按层次分:节点流、处理流
1.17.4.字节输入流
InputStream类的经常使用方法
InputStream类的子类:文件输入流FileInputStream
FileInputStream构造方法和经常使用方法
1.17.5.字节输出流
OutputStream类的经常使用方法
OutputStream类的子类:文件输出类FileOutputStream
FileOutputStream构造方法和经常使用方法
1.17.6.字节缓冲流
字节缓冲流的构造方法
使用字节缓冲流对文件进行读写
装饰设计模式
1.17.7.字符输入流
Reader类的经常使用方法
Reader类的子类:FileReader
FileReader构造方法和经常使用方法
1.17.8.字符缓冲流
字符缓冲流构造方法
字符缓冲流的经常使用方法:readLine(), newLine()
字符缓冲流对文件进行读写
1.17.9.字符输出流
Writer类的经常使用方法
Writer类的子类:FileWriter
FileWriter构造方法和经常使用方法
1.17.10.转换流
InputStreamReader的构造方法
InputStreamReader的使用
OutputStreamWriter的构造方法
OutputStreamWriter的使用
1.17.11.打印流
打印流构造方法
打印流的经常使用操做:print(), println()
1.17.12.标准输入输出流
(1)使用System.in获取键盘数据
(2)使用System.out输出数据
1.17.13.内存流(重点掌握)
什么是内存流
内存流的构造方法
写入到内存和读取内存数据
经常使用方法:toByteArray(), toString()
1.17.14.数据输入输出流
DataOutputStream 使用
DataInputStream 使用
1.17.15.对象流
对象序列化
序列化的经常使用属性
(1)static的属性不能序列化
(2)transient的属性不能序列化
(3)serialVersionUID=1L
对象输入流ObjectInputStream
对象输出流ObjectOutputStream
1.17.16.随机流RandomAccessFile类
RandomAccessFile类的构造方法
RandomAccessFile经常使用操做:skipBytes() seek()
经常使用方法: getFilePointer() writerUTF() readUTF()
向文件中随机写入键盘文字
==== 1.18.线程 ====
1.18.1.线程和进程的介绍
进程的概念
线程的概念
进程和线程的关系以及区别
1.18.2.线程的实现实现
Runnable接口
两种实现方式的比较
1.18.3.线程的启动
调用start()方法启动线程
调用start()与调用run()的区别
1.18.4.线程的生命周期和经常使用方法
线程的优先级
线程的名称
线程的睡眠
线程的中断
线程的中止
1.18.5.多线程访问临界资源时的数据安全问题
synchronized关键字
同步代码块
同步方法
同步静态方法
锁对象
死锁
1.18.6.生产者消费者
1.18.7.线程池
单线程池
固定线程池
缓冲线程池
==== 1.19.网络编程 ====
1.19.1.网络通讯协议介绍
TCP/IP协议
IP地址和端口号
基于TCP的网络编程
Socket和ServerSocket
UDP编程(视频)
1.19.2.URL类的使用
什么是URL类
URL的构造方法
URL类的经常使用方法
1.19.3.HttpURLConnection类简介(重点)
简单介绍HttpURLConnection类
HttpURLConnection的经常使用方法
1.19.4.HttpURLConnection类的应用
HttpURLConnection请求服务器,获取响应的文本
HttpURLConnection下载文件
1.19.5.OkHttp 简单使用
同步GET、POST请求
1.19.6.接口回调
接口回调结合多线程的应用
异步请求,利用内部类,实现接口回调
==== 1.20.Xml ====
1.20.1.XML简介
什么是XML
XML语法结构
XML元素定义
XML属性使用
自定义XML文件
XML解析的三种方式说明:SAX, PULL, DOM
1.20.2.PULL解析
PULL解析原理
PULL解析XML文件
网络XML文件解析
1.20.3.SAX解析
SAX解析的原理
SAX解析经常使用类介绍
SAX解析XML文件步骤
网络XML文件解析
PULL解析与SAX解析的区别
==== 1.21.Json ====
1.21.1.JSON解析简介
什么是JSON
JSON与XML之间的比较
JSON解析在网络中的应用
1.21.2.JSON的数据表示
键值对的对象表示
数组的表示
1.21.3.JSON解析
一个对象的JSON解析
多个对象的解析
复杂对象的解析
将集合转成JSON字符串
官方JSON解析
Gson解析
==== 1.22.设计模式 ====
单例设计模式
简单工厂设计模式
装饰者模式
代理模式
观察者模式
======三.Web基础======
====1.数据库====
1.1.须要学习了解的数据库
Mysql
公司使用,主要学习,MySQL 在 2008 年被Sun收购须要学习其余数据库语言做为可替代方案
oracle
Sqlserver
微软的只能在Windows平台使用,工做中基本不用,只需了解
MariaDB
PostgreSQL
MangoDB
NoSQL
1.2.Mysql
数据库简介
mysql安装和概述
mysql基本命令
mysqlDDL操做
mysqlDML操做
mysqlDQL操做
mysql模糊查询
mysql分组查询
分页
数据库约束
多表查询
查询练习
MySQL数据库的备份与恢复
1.3.JDBC
Java操做数据库
获取数据库链接
使用Statement执行更新操做
使用ResultSet执行查询操做
以面向对象思想编写JDBC
使用PreparedStatement
利用反射及JDBC元数据编写通用的查询方法
DAO设计模式
JDBC元数据JDBC获取插入记录的主键值
JDBC处理Blob
事务介绍
JDBC处理事务
批量处理
数据库链接池
(1)TOMCAT中的数据库链接池
(2)C3P0
(3)DBCP
(4)Druid
使用DBUtils
1.4.oracle
数据库简介
Oracle服务端和客户端安装
Oracle基本命令
Oracle中的用户管理
Oracle中表的管理
Oracle查询操做
Oracle中的函数表的逻辑备份与恢复
数据库约束
Oracle索引、权限
分页
====2.Tomcat====
Tomcat简介
Tomcat安装
Tomcat安装目录介绍
====3.Servlet====
3.1.Servlet概述
什么是Servlet
实现Servlet的方式
建立HelloWorld应用
3.2.Servlet接口
3.2.1.Servlet生命周期
Servlet出生
Servlet服务
Servlet的离去
3.2.2.Servlet接口相关类型
ServletRequest和ServletResponse
ServletConfig
3.2.3.GenericServlet
GenericServlet概述
GenericServlet的init()方法
实现了ServletConfig接口
3.2.4.HttpServlet
3.2.4.1.概述
3.2.4.2.HttpServlet覆盖了service()方法
3.2.4.3.<url-pattern>
(1)/XXX
(2)*.XXX
3.2.4.4.doGet()和doPost()
3.2.4.5.Response
response概述
response响应正文
(1)字符响应流
设置响应头
信息设置状态码及其余方法
重定向
(1)什么是重定向
(2)完成重定向
(3)便捷的重定向方式
(4)重定向小结
Request
(1)request概述
(2)request域方法
(3)request获取请求头数据
(4)request获取请求相关的其它方法
(5)request获取请求参数
(6)请求转发和请求包含
① 请求转发
② 请求包含
③ 请求转发与请求包含比较
④ 请求转发与重定向比较
3.3.Servlet细节
Servlet与线程安全
让服务器在启动时就建立Servlet
服务端跳转与客户端跳转
web.xml文件的继承(了解)
3.4.ServletContext
ServletContext概述
获取ServletContext
域对象的功能
获取应用初始化参数
获取资源相关方法
(1)获取真实路
(2)径获取资源流
(3)获取指定目录下全部资源路径
访问量统计
====4.编码====
4.1.请求编码
(1)直接在地址栏中给出中文
(2)在页面中发出请求
(3)GET请求解读编码
(4)POST请求解读编码
4.2.响应编码
4.3.URL编码
====5.路径问题====
与路径相关的操做
客户端路径
服务端路径
<url-pattern>
ServletContext获取资源
Class获取资源
ClassLoader获取资源
====6.注解配置Servlet====
====7.JSP====
7.1.JSP概述
什么是JSP
JSP的组成
7.2.JSP语法
JSP脚本
多个<%...%>能够通用
7.3.JSP原理
JSP是特殊的Servlet
JSP真身存放目录
7.4.再论JSP脚本
7.5.JSP注释
7.6.三个基本的脚本元素
7.7.JSP指令
7.8.JSP动做
7.9.JSP EL表达式
7.10.JSP标签库
JSTL
fmt标签库经常使用标签
7.11.绝对路径和相对路径
7.12.静态包含和动态包含
7.13.页面中的几个路径
7.14.验证码案例
验证码的做用
VerifyCode类
在页面中显示动态图片
在注册页面中使用验证码
RegisterServlet
总结验证码案例
7.15.MVC设计模式
7.16.JavaWeb与MVC
JSP Model1第一代
JSP Model1第二代
JSP Model2
7.17.JavaWeb经典三层框架
7.18.Filter
7.18.1.过滤器概述
Filter简介
过滤器之HelloWorld
7.18.2.过滤器详细
过滤器的生命周期
FilterConfig
FilterChain
多个过滤器执行顺序
四种拦截方式
过滤器的应用场景
设置目标资源
Filter小结
7.18.3.过滤器应用案例
分ip统计网站访问次数
粗粒度权限控制
禁用资源
解决全站字符乱码
页面静态化
7.19.JavaWeb监听器
JavaWeb监听器概述
建立与销毁监听器
操做域属性的监听器
HttpSession的监听器
7.20.国际化
什么是国际化
理解国际化
Locale类
ResourceBundle类
页面国际化
NumberFormat
DateFormat
MessageFormat
7.21.Ajax
7.21.1.js原生的ajax
7.21.2.jQuery封装的ajax
AJAX概述
(1)什么是AJAX
(2)同步交互与异步交互
(3)AJAX常见应用情景
(4)AJAX优缺点
AJAX技术
(1)AJAX第一例
(2)AJAX发送POST请求
(3)AJAX判断用户名是否已注册
(4)AJAX实现省市二级联动
7.22.文件上传和下载
文件上传
(1)文件上传的做用
(2)文件上传对页面的要求
(3)比对文件上传表单和普通文本表单的区别
(4)文件上传对Servlet的要求
commons-fileupload
(1)fileupload概述
(2)fileupload简单应用
(3)简单上传示例
文件上传细节
(1)把上传的文件放到WEB-INF目录下
(2)文件名称(完整路径、文件名称)
(3)中文乱码问题
(4)上传文件同名问题
(5)一个目录不能存放过多文件
(6)上传的单个文件的大小限制
(7)上传文件的总大小限制
(8)缓存大小与临时目录
文件下载
(1)经过Servlet下载1
(2)经过Servlet下载2
(3)经过Servlet下载3
7.23.会话
7.23.1.会话跟踪技术
什么是会话跟踪技术
会话跟踪技术使用Cookie或Session完成
7.23.2.Cookie
Cookie概述
(1)什么是Cookie
(2)Cookie规范
(3)Cookie与HTTP头
(4)Cookie的覆盖
(5)Cookie的第一例
Cookie的生命周期
(1)什么是Cookie的生命周期
(2)浏览器查看Cookie
(3)案例:显示上次访问时间
Cookie的Path
(1)什么是Cookie的路径
(2)Cookie路径与请求路径的关系
(3)设置Cookie的路径
Cookie的domain
Cookie中保存中文
显示曾经浏览过的商品
7.23.3.HttpSession
HttpSession概述
登陆案例
Session实现原理
Session与浏览器
Session其余经常使用API
URL重写
======四.Web高级======
=====1.经典框架=====
==== 1.1.Maven ====
maven的介绍
maven的安装配置
建立maven工程之maven命令
maven核心概念之坐标
maven核心概念之依赖管理
maven核心概念之生命周期
maven核心概念之插件
maven核心概念之继承
maven核心概念之聚合
==== 1.2.MyBatis ====
1.2.1.单独使用JDBC编程问题总结
JDBC程序
JDBC编程步骤
JDBC问题总结以下
1.2.2.MyBatis介绍
1.2.3.MyBatis架构
1.2.4.MyBatis下载
1.2.5.建立数据库
1.2.6.MyBatis入门程序
(1)需求
(2)第一步:建立Java工程
(3)第二步:加入jar包
(4)第三步:log4j.properties
(5)第四步:SqlMapConfig.xml
(6)第五步:POJO类
(7)第六步:程序编写
① 查询
② 添加
③ 删除
④ 修改
(8)MyBatis解决JDBC编程的问题
1.2.7.Dao开发方法
需求
SqlSession的使用范围
(1)SqlSessionFactoryBuilder
(2)SqlSessionFactory
(3)SqlSession
原始Dao开发方式
① 映射文件
② Dao接口
③ 问题
Mapper动态代理方式
① 实现原理
② Mapper.xml
③ Mapper.java
④ 加载UserMapper.xml文件
⑤ 测试
⑥ 总结
1.2.8.SqlMapConfig.xml文件
配置内容
properties属性
settings配置
typeAliases
① mybatis支持别名
② 自定义别名
typeHandler
Mappers
① <mapper resource=""/>
② <mapper url=""/>
③ <mapper class=""/>
④ <package name=""/>
1.2.9.Mapper.xml映射文件
1.2.9.1.parameterType
#{}与${}
传递简单类型
传递POJO对象
传递POJO包装对象
① 定义包装对象
② mapper.xml映射文件
传递HashMap
1.2.9.2.resultType
输出简单类型
输出POJO对象
输出POJO列表
resultType总结
输出HashMap
1.2.9.3.resultMap
Mapper.xml定义
定义result
MapMapper接口定义
1.2.9.4.动态SQL
If
Where
Foreach
① 经过POJO传递List
② 传递单个List
③ 传递单个数组(数组中是POJO)
④ 传递单个数组(数组中是字符串类型)
sql片断
1.2.10.关联查询
商品订单数据模型
一对一查询
① 方法一
② 方法二
一对多查询
③ Sql语句
④ 定义POJO类
⑤ Mapper.xml
⑥ 定义resultMap
1)resultMap使用继承
⑦ Mapper接口
⑧ 测试
⑨ 小结
多对多查询
① 查询用户购买的商品信息
② 小结
resultMap小结
延迟加载
(1)开启延迟加载
(2)一对一查询延迟加载
① 需求
② Sql语句
③ 定义POJO类
④ Mapper.xml
⑤ 定义resultMap
⑥ Mapper接口
⑦ 测试
⑧ 延迟加载优缺点分析
一对多查询延迟加载
延迟加载小结
1.2.11.查询缓存
1.2.11.1.MyBatis缓存介绍
1.2.11.2.一级缓存
原理
测试
1.2.11.3.二级缓存
原理
开启二级缓存
实现序列化
测试
禁用二级缓存
刷新缓存
MyBatis Cache参数
MyBatis整合ehcache
(1)原理
(2)整合步骤
① 引入缓存的依赖包
② 引入缓存的配置文件
③ 开启ehcache缓存
应用场景
局限性
==== 1.3.Spring ====
1.3.1.初识Spring
1.3.1.1.简化Java开发
什么是最小侵入式
依赖注入
应用切面
使用模板消除样板式代码
1.3.1.2.Spring主要模块
1.3.2.Bean的注入
1.3.2.1.XMl配置
普通构造方法建立
静态工厂建立
实例工厂建立
属性注入方式
① 构造方法注入
② set方法注入
③ p名称空间注入
④ 对象的注入
⑤ 数组注入
⑥ List集合注入
⑦ Map注入
⑧ Properties注入
1.3.2.2.Java配置
1.3.2.3.自动配置
经过Java代码实现
经过XML配置文件实现
1.3.2.4.混合配置
1.3.2.5.Profile
Java配置
XML配置
1.3.2.6.条件注解
1.3.2.7.Bean的做用域
1.3.2.8.其余问题
1.3.3.AOP
1.3.3.1.AOP简介
1.3.3.2.AOP几个关键概念
1.3.3.3.AOP原理
1.3.3.4.AOP实现
1.3.3.4.1.经过Java代码实现
使用注解拦截
(1)前置、后置通知
(2)返回通知
(3)环绕通知
(4)异常通知
按照方法规则拦截
(1)前置、后置通知
(2)返回通知
(3)环绕通知
(4)异常通知
1.3.3.4.2.经过XML配置实现
使用注解拦截
按照方法规则拦截
(1)前置通知
(2)返回通知
(3)环绕通知
(4)异常通知
(5)后置通知
1.3.3.5.JdbcTemplate
增删改查
配合数据库链接池
1.3.3.6.Spring事务管理
回忆事务
XML配置实现
Java配置实现
1.3.3.7.Spring高级应用
1.3.3.8.服务端校验
普通校验
分组校验
校验注解
1.3.3.9.数据回显
默认方式
Model方式
@ModelAttribute
(1)解决数据回显问题
(2)方法返回值暴露为模型数据
异常处理
文件上传
JSON数据交互
(1)@RequestBody
(2)@ResponseBody
RESTful支持
(1)RESTful简介
(2)SpringMVC对RESTful的支持
静态资源访问
拦截器
==== 1.4.SpringMVC ====
1.4.1.简介
SpringMVC工做流程
SpringMVC相关组件
HelloWorld
1.4.2.组件介绍
1.4.2.1.DispatcherServlet
1.4.2.2.Controller
1.4.2.2.1.@RequestMapping
(1)URL路径映射
(2)窄化请求映射
(3)请求方法限定
1.4.2.2.2.Controller方法返回值
返回ModelAndView
返回void
(1)使用request转向页面
(2)经过response页面重定向
(3)经过response指定响应结果
返回字符串
(1)逻辑视图名
(2)Redirect重定向
(3)forward转发
1.4.2.2.3.参数绑定
默认支持的参数类型
简单数据类型
(1)简单类型
(2)@RequestParam
POJO
(1)简单pojo
(2)包装pojo
自定义参数绑定
集合类
(1)字符串数组
(2)Lis
(3)tMap
1.4.2.2.4.问题总结
404
Post时中文乱码
1.4.2.3.其余组件
=== 1.5.Freemarker ===
1.5.1.Freemarker介绍
Freemarker简介
使用引入
1.5.2.ftl基本语法
if else语句
list循环语句
输出展现
=== 1.6.SpringMVC+Freemarker案例 ===
=== 1.7.SpringMVC+AJAX实现动态树形菜单 ===
=== 1.8.MyBatis整合Spring ===
1.8.1.MyBatis与Spring整合jar
1.8.2.MyBatis配置文件
1.8.3.Spring配置文件
1.8.4.Mapper编写的三种方式
Dao接口实现类继承SqlSessionDaoSupport
使用org.mybatis.spring.mapper.MapperFactoryBean
使用Mapper扫描器
=== 1.9.MyBatis逆向工程 ===
使用方式
Mapper文件内容不覆盖而是追加
Table schema问题
=== 1.10.Struts2 ===
1.10.1.Struts2概述
1.10.2.Struts2框架入门
1.10.3.Struts2执行过程
1.10.4.Struts2核心配置文件
标签package
标签action
标签result
1.10.5.Struts2常量配置
1.10.6.分模块开发
1.10.7.Action编写方式
1.10.8.访问Action的方法
使用action标签method属性
使用通配符实现
1.10.9.结果页面配置
全局结果页面
局部结果页面
Result标签的type属性
1.10.10.Action获取表单提交数据
使用ActionContext类获取
使用ServletActionContext类获取
在Action操做域对象
1.10.11.Struts2封装获取表单数据方式
属性封装
模型驱动封装
封装到集合中
(1)封装数据到List集合中
(2)封装数据到Map集合中
Struts2拦截器概述
拦截器底层原理
重要概念
自定义拦截器
自定义登陆拦截器
Struts2的标签库
Struts2总结
=== 1.11.Hibernate ===
1.11.1.Hibernate概述
什么是框架
什么是hibernate框架
什么是ORM思想
1.11.2.Hibernate入门
搭建Hibernate环境
实现添加操做
1.11.3.Hibernate配置文件详解
Hibernate映射配置文件
Hibernate核心配置文件
1.11.4.Hibernate核心API
Configuration
SessionFactory
Session
Transaction
1.11.5.Hibernate主键生成策略
1.11.6.实体类操做
添加
根据id查询
修改操做
删除操做
1.11.7.Hibernate的一级缓存
什么是缓存
Hibernate缓存
验证缓存
Hibernate一级缓存执行过程
Hibernate一级缓存特性
1.11.8.Hibernate事务操做
事务相关概念
Hibernate事务代码规范写法
Hibernate绑定session
1.11.9.Hibernate的API的使用
Query对象
Criteria对象
SQLQuery对象
1.11.10.Hibernate一对多操做
一对多映射配置
一对多级联操做
一对多级联保存
一对多级联删除
一对多修改操做
1.11.11.Hibernate查询
对象导航查询
OID查询
HQL查询
QBC查询
=== 1.12.Spring Boot ===
1.12.1.Spring Boot概述
什么是Spring Boot
Spring Boot的核心功能
Spring Boot的优缺点
1.12.2.Spring Boot快速搭建
1.12.3.Spring Boot核心
1.12.3.1.基本配置
(1)入口类和@SpringBootApplication
(2)关闭特定的自动配置
(3)定制Banner
(4)Spring Boot的配置文件
(5)Starter pom
(6)使用xml配置
1.12.3.2.外部配置
命令行参数配置
常规属性配置
类型安全配置
1.12.3.3.日志配置
1.12.3.4.Profile配置
1.12.4.Spring Boot运行原理
运做原理
核心注解
实例分析
1.12.5.Spring Boot的Web开发支持
1.12.6.Thymeleaf模板引擎
Thymeleaf基础知识
与Spring MVC集成
Spring Boot的Thymeleaf支持
案例
1.12.7.Web相关配置
Spring Boot提供的自动配置
接管Spring Boot的Web配置
注册Serlvet、Filter、Listener
1.12.8.Tomcat配置
配置Tomcat
代码配置Tomcat
替换Tomcat
SSL配置
1.12.9.Favicon配置
默认的Favicon
关闭Favicon
设置本身的Favicon
1.12.10.WebSocket
什么是WebSocket
Spring Boot提供的自动配置
案例
1.12.11.基于Bootstrap和AngularJS的现代Web应用
1.12.12.Spring Boot的数据访问
Spring Data JPA
Spring Data REST
声名式事务
(1)回忆Spring 的事务机制
(2)声名式事务
(3)注解事务行为
(4)类级别使用@Transactional
(5)Spring Boot的事务支持
(6)案例
1.12.13.数据缓存Cache
Spring的缓存支持
Spring Boot的支持
缓存切换技术
案例
1.12.14.Spring Boot企业级开发
安全控制Spring Security
批处理Spring Batch
异步消息
集成Spring Integration
=== 1.13.Shiro ===
1.13.1.Shiro简介
1.13.2.HelloWorld
1.13.3.Shiro集成Spring
1.13.4.Shiro工做流
1.13.5.权限URL配置细节
1.13.6.认证思路分析
1.13.7.实现认证流程
1.13.8.实现认证Realm
1.13.9.密码的比对
1.13.10.密码的MD5加密
1.13.11.密码的MD5盐值加密
1.13.12.多Realm验证
1.13.13.认证策略
1.13.14.把realms配置给SecurityManager
1.13.15.Shiro权限配置
1.13.16.Shiro受权流程分析
1.13.17.多Realm受权的经过标准
1.13.18.实现受权
1.13.19.标签
1.13.20.权限注解
1.13.21.从数据表中初始化资源和权限
1.13.22.会话管理
1.13.23.SessionDao
1.13.24.缓存认证和记住个人区别
1.13.25.Shiro实现Rememberme
=== 1.14.Spring Cloud ===
=====2.JavaEE进阶=====
==== 2.1.Linux ====
2.1.1.Linux简介
简介
Linux版本
2.1.2.Linux系统安装
VMware安装
CentOs安装
CentOs root用户
CentOs 使
用CentOs目录介绍
2.1.3.Linux基本命令
切换目录命令
端口查看命令
文件执行命令
解压命令
受权命令
建立目录命令
文件复制命令
chkconfig命令
2.1.4.vi编辑器&vim
2.1.5.应用安装准备
安装路径
上传文件到Linux
2.1.6.jdk安装
2.1.7.Tomcat安装
安装
启动
中止
关闭防火墙
安装zookeper
安装mysql数据库
==== 2.2.Redis ====
2.2.1.NoSQL概述
2.2.1.1.入门概述
为何用NoSQL
什么是NoSQL
NoSQL能干什么
2.2.1.2.3V+3高
2.2.1.3.当下的NoSQL经典应用(以阿里巴巴为例)
架构发展史
阿里巴巴中文站商品信息存放
(1)商品基本信息
(2)商品描述、详情、评价信息(多文字类)
(3)商品的图片
(4)商品关键字
(5)商品的波段性的热点高频信息
(6)商品的交易、价格计算、积分累计
大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方案
难点
解决办法UDSL
2.2.1.4.NoSQL数据模型简介
传统数据库模型
NoSQL数据模型
聚合模型
2.2.1.5.NoSQL数据库的四大分类
KV键值
文档型数据库(bson格式比较多)
列存储数据库
(1)Cassandra, HBase
(2)分布式文件系统
图关系数据库
四者对比
2.2.1.6.分布式数据库中CAP原理
传统的ACID分别是什么
CAP
CAP的3选2
BASE是什么
分布式和集群
2.2.2.Redis入门介绍
2.2.2.1.入门概述
VMWare上安装Linux
(1)VMWare虚拟机的安装
(2)CentOS或者RedHad5的安装
(3)VMTools的安装
(4)设置共享目录
(5)上述环境都OK后开始进行Redis的服务器安装配置
2.2.2.2.Redis的安装
Windows版安装
重要提示:
Linux版安装
2.2.2.3.Redis启动后杂项基础知识讲解
2.2.3.Redis的数据类型
2.2.3.1.Redis的五大数据类型
string(字符串)
hash(哈希,相似java里的Map)
list(列表)
set(集合)
zset(sorted set:有序集合)
2.2.3.2.Redis 键(key)
经常使用
案例
2.2.3.3.Redis字符串(String)
经常使用
案例
2.2.3.4.Redis列表(List)
经常使用
案例
(1)lpush/rpush/lrange
(2)lpop/rpop
(3)lindex,按照索引下标得到元素(从上到下)
(4)Llen
(5)lrem key 删N个value
(6)ltrim
(7)rpoplpush 源列表 目的列表
(8)lset key index value
(9)linsert key before/after 值1 值2
(10)性能总结
2.2.3.5.Redis集合(Set)
经常使用
案例
(1)sadd/smembers/sismember
(2)scard,获取集合里面的元素个数
(3)srem key value 删除集合中元素
(4)srandmember key 某个整数(随机出几个数)
(5)spop key 随机出栈
(6)smove key1 key2 在key1里某个值
(7)数学集合类
① 差集:sdiff
② 交集:sinter
③ 并集:sunion
2.2.3.6.Redis哈希(Hash)
经常使用
案例
(1)hset/hget/hmset/hmget/hgetall/hdel
(2)hlen hexists key key里面的某个值的key
(3)hkeys/hvals
(4)hincrby/hincrbyfloat
(5)Hsetnx
2.2.3.7.Redis有序集合Zset(sorted set)
经常使用
案例
(1)zadd/zrange
(2)zrangebyscore key 开始score 结束score
(3)zrem key 某score下对应的value值
(4)zcard/zcount/zrank /zscore
(5)zrevrank
(6)zrevrange
(7)zrevrangebyscore key 结束score 开始score
2.2.4.解析配置文件redis.conf
2.2.4.1.它在哪
2.2.4.2.units单位
2.2.4.3.INCLUDES包含
2.2.4.4.GENERAL通用
(1)daemonize
(2)Pidfile
(3)Port
(4)tcp-backlog
(5)Timeout
(6)Bind
(7)tcp-keepalive
(8)Loglevel
(9)Logfile
(10)syslog-enabled
(11)syslog-ident
(12)syslog-facility
(13)Databases
2.2.4.5.SNAPSHOTTING快照
(1)Save
① save 秒钟写操做次数
② 禁用
(2)stop-writes-on-bgsave-error
(3)rdbcompression
(4)rdbchecksum
(5)dbfilename
(6)Dir
2.2.4.6.REPLICATION复制
2.2.4.7.SECURITY安全
2.2.4.8.LIMITS限制
Maxclients
Maxmemory
maxmemory-policy
maxmemory-samples
2.2.4.9.APPEND ONLY MODE追加
2.2.4.10.常见配置redis.conf介绍
2.2.5.redis的持久化
2.2.5.1.RDB(Redis DataBase)
简介
Fork
配置位置
如何触发RDB快照
如何恢复
优点
劣势
如何中止
小总结
2.2.5.2.AOF(Append Only File)
概述
配置位置
AOF启动/修复/恢复
(1)正常恢复
(2)异常恢复
Rewrite
(1)是什么
(2)重写原理
(3)触发机制
优点
劣势
小总结
2.2.5.3.总结
2.2.6.Redis的事务
2.2.6.1.概述
2.2.6.2.用法
常见用法
Redis事务错误处理
watch监控
(1)悲观锁/乐观锁/CAS(Check And Set)
(2)初始化信用卡可用余额和欠额
(3)无加塞篡改,先监控再开启multi, 保证两笔金额变更在同一个事务内
(4)有加塞篡改
(5)Unwatch
(6)小结
3阶段
3特性
2.2.7.Redis的发布订阅
概述
命令
案列
2.2.8.Redis的复制(Master/Slave)
2.2.8.1.是什么
2.2.8.2.配置
2.2.8.2.1.配从(库)不配主(库)
2.2.8.2.2.从库配置:slaveof 主库IP 主库端口
2.2.8.2.3.m
2.2.8.2.4.经常使用3招
一主二仆
① M
② 一个Master两个Slave
③ 日志查看
④ 主从问题演示
薪火相传
反客为主
2.2.8.3.复制原理
2.2.8.4.哨兵模式(sentinel)
是什么
使用步骤
一组sentinel能同时监控多个Master
2.2.8.5.复制的缺点
2.2.9.Redis的Java客户端Jedis
2.2.9.1.搭建环境
2.2.9.2.Jedis经常使用操做
测试连通性
5+1
事务提交
(1)平常
(2)加锁
主从复制
(1)6379,6380启动,先各自先独立
(2)主写
(3)从读
2.2.9.3.JedisPool
获取Jedis实例须要从JedisPool中获取
用完Jedis实例须要返还给JedisPool
若是Jedis在使用过程当中出错,则也须要还给JedisPool
案例见代码
(1)JedisPoolUtil
(2)调用
配置总结all
2.2.10.Spring Data Redis
简介
案例
==== 2.3.JPA ====
2.3.1.JPA概述
JPA简介
JPA HelloWorld
2.3.2.经常使用注解
基本注解
Transient注解
Temporal注解
Table主键生成策略
2.3.3.JPA EntityManager
2.3.4.JPA EntityTransaction
2.3.5.JPA 映射单向多对一关联关系
2.3.6.JPA 映射单向一对多关联关系
2.3.7.JPA 映射双向一对多的关联关系
2.3.8.JPA 映射双向一对一的关联关系
2.3.9.JPA 二级缓存
2.3.10.JPQL
JPQL查询缓存
ORDER BY和GROUP BY
关联查询
子查询和内建函数
DELETE和UPDATE
2.3.11.JPA整合Spring
==== 2.4.分布式系统 ====
2.4.1.RPC
什么是RPC
RPC使用场景
2.4.2.分布式介绍
分布式系统
分布式种类
分布式与集群的区别
2.4.3.Dubbo使用
dubbo服务器
2.4.4.zookeper介绍
2.4.5.zookeper安装
2.4.6.服务端应用
2.4.7.客户端应用
2.4.8.分布式架构
==== 2.5.支付宝支付 ====
==== 2.6.微信支付 ====
==== 2.7.消息队列 ====
==== 2.8.WebSocket ====
2.8.1.建立第一个WebSocket应用
建立WebSocket端点
部署端点
建立WebSocket客户端
2.8.2.WebSocket端点
2.8.3.编程式端点
2.8.4.深刻Echo示例
部署阶段
接收第一个链接
WebSocket消息通讯
2.8.5.WebSocket生命周期
2.8.6.高级消息处理
检查链接
异步发送WebSocket消息
(1)经过Future发送消息
(2)经过Handler发送消息
(3)区别与联系
WebSocket路径映射
Portfolio应用
2.8.7.保护WebSocket服务器端点
2.8.8.Java EE平台中的WebSocket
==== 2.9.Lucene ====
2.9.1.Lucene简介
什么是lucene
全文检索的应用场景
(1)搜索引擎
(2)站内搜索
(3)文件系统搜索
(4)总结
全文检索的定义
lucene实现全文检索的流程
2.9.2.入门案例
2.9.2.1.需求
2.9.2.2.搭建环境
(1)数据库脚本初始化
(2)lucene准备
2.9.2.3.工程搭建
2.9.2.4.索引流程
为何采集数据
采集数据的方式
(1)网页采集
(2)数据库采集
索引文件的逻辑结构
索引
2.9.2.5.搜索流程
输入查询语句
搜索分词
搜索索引
2.9.3.Field域
Field的属性
Field的经常使用类型
修改入门程序的代码
2.9.4.索引维护
需求
添加索引
删除索引
修改索引
2.9.5.搜索
建立查询对象的方式
经过Query子类来查询对象
经过QueryParser建立查询对象
TopDocs
2.9.6.相关度排序
什么是相关度排序
设置bosst值影响打分
2.9.7.中文分词器
什么是中文分词器
Lucene自带的中文分词器
第三方中文分词器
Ikanalyzer
==== 2.10.Solr ====
2.10.1.Solr介绍
什么是Solr
Solr和Lucene的区别
2.10.2.Solr安装配置
下载Solr
运行环境
SolrCore配置
(1)SolrHome和SolrCore
(2)目录结构
(3)建立SolrCore
(4)配置SolrCoreSolr
工程部署管
理界面功能介绍
多SolrCore配置
2.10.3.Solr基本使用
schema.xml
配置中文分析器
配置业务Field
dataimportHandler插件
2.10.4.Solrj的使用
什么是Solrj
需求
环境准备
工程搭建
代码实现
(1)添加、修改索引
(2)删除索引
(3)查询索引
2.10.5.案例
需求
分析
(1)UI分析
(2)架构分析
环境准备
工程搭建
代码实现
==== 2.11.Nginx ====
==== 2.12.Dubbo ====
==== 2.13.Docker ====
==== 2.14.Kubernetes ====
==== 2.15.lvs ====
==== 2.16.Activemq ====
==== 2.17.Rocketmq ====
==== 2.18.Kafka ====
==== 2.19.Mycat ====
==== 2.20.Sharding-jdbc ====
==== 2.21.Zookeeper ====
==== 2.22.RPC ====
======五.工具的使用======
=====1.SVN使用=====
=====2.Git使用 =====
===== 3.Eclipse开发工具的介绍 =====
工做空间的概念
工程的概念以及命名规范
包的概念以及命名规范
(1)建立包
(2)导入包
(3)建立包的命名规范
经常使用快捷键的介绍
工程的导入导出
===== 4.VMware (虚拟机) =====
===== 5.IntelliJ IDEA =====
===== 6.StarUML =====
===== 7.Dreamweaver =====
===== 8.PdShell =====
===== 9.Postman =====
===== 10.Xshell 5 =====
===== 11.Xftp 5 =====
===== 12.RedisDesktopManager =====
===== 13.HiJson =====
===== 14.数据库图形化工具 =====
本文章,列出了一些程序员须要学习的技术和知识点,有些技术和知识点没有写道,欢迎你们进行修改和补充,有些技术公司用到,你们须要先学习,有些技术和知识点过期,你们能够了解。本人笔记链接[[http://2863c718.wiz03.com/wapp/pages/view/share/s/0EoYso1Xqk4m2eAV4Y385xVk2vODbZ2BZ46Z2ChvzO2jhAyq|学习体系]]。======一.前端===========1.前端基础=========1.1.html4======= HTML介绍====== HTML做用 ====== 常见标签 ===(1)图片标签(2)表单标签(3)表格标签(4)头标签(5)框架集(6)其余常见标签====1.2.css2====CSS概述CSS和HTML结合的方式CSS选择器CSS扩展选择器CSS盒子模型CSS布局漂浮属性CSS布局定位属性==== 1.3.JavaScript基础 =======1.3.1.JS概述===(1)JS与Java不一样(2)JS的历史(3)JS语言组成(4)JS与HTML结合方式=== 1.3.2.JS基础 ===(1)JS基本语法(2)JS的数据类型(3)JS基本语句(4)JS运算符(5)JS数组(6)JS函数的定义(7)JS中函数的重载(8)JS中的全局变量和局部变量=== 1.3.3.JS中常见对象 ===String对象Array对象Date对象Math对象=== 1.3.4.JavaScript 全局函数(global) ====== 1.3.5.BOM对象 ===什么是BOM==1.3.5.1.浏览器对象的使用==1.3.5.1.1.History History简介 (1)back()方法 (2)forward()方法 (3)go()方法 (4)制做返回按钮1.3.5.1.2.Location Location对象简介 经过href属性完成超连接效果 超连接按钮效果1.3.5.1.3.Window对象 Window对象简介 (1)方法 ① confirm() ② prompt() ③ open() ④ close() ⑤ setInterval() ⑥ setTimeout() ⑦ clearInterval() ⑧ alert()=== 1.3.6.DOM简单入门 ===== 1.3.6.1.1.DOM简介 ==DOM结构模型DOM的三个级别和DHTML介绍BOM和HTML DOM关系== 1.3.6.2.Document对象 ==Element对象Node经常使用属性节点名称、值和类型父节点、子节点和兄弟节点Node经常使用方法检测子节点和属性是否存在某节点是否存在属性操做DOM节点树 (1)插入节点 ①appendChild方法 ②insertBefore方法 (2)删除节点 (3)替换节点 (4)复制节点 (5)移动节点innerHTMLJS经常使用事件 (1)鼠标移动事件 (2)鼠标点击事件 (3)加载与卸载事件 (4)聚焦与离焦时间键盘事件 (5)提交与重置事件 (6)选择与改变事件省市县三级联动树形菜单制做==== 1.4.Jquery =======1.4.1.jQuery简介===什么是jQueryjQuery的特色=== 1.4.2.jQuery选择器 ===基本选择器层次选择器过滤选择器内容过滤选择器表单域选择器=== 1.4.3.jQuery属性操做 ====== 1.4.4.jQuery快捷操做 ===class属性值操做标签包含内容操做css样式操做value属性快捷操做 (1)复选框操做 (2)下拉列表操做 (3)单选按钮操做=== 1.4.5.jQuery和DOM对象关系 ====== 1.4.6.jQuery框架对象分析 ====== 1.4.7.jQuery加载事件 ====== 1.4.8.jQuery普通事件操做 ====== 1.4.9.jQuery对文档的操做 ====== 1.4.10.jQuery属性选择器的使 ====== 1.4.11.jQuery事件绑定 ====== 1.4.12.jQuery动画效果小案例 ========2.前端中级=========2.1.js进阶========2.2.php与数据库========2.3.Ajax========2.4.HTML5+CSS3=========3.前端高级========= 3.1.layui ======== 3.2.Bootstrap ======== 3.3.移动端 ======== 3.4.Canvas画布 ======== 3.5.NodeJS ======== 3.6.AngularJS ======== 3.7.ES6-Babel-Webpack-Less ======== 3.8.Vue ======== 3.9.AngularJSX ======== 3.10.Webpack ======== 3.11.WebAPP-Cordova ======== 3.12.WebAPP-Ionic ======== 3.13.ES6 ======== 3.14.Git微信小程序 ======== 3.15.Gulp ======== 3.16.Node ======== 3.17.React ==========二.后端===========1.Java基础========= 1.1.Java编码规范 ====源码存储规范命名规则书写格式代码注释==== 1.2.JAVA开发环境 ====安装JDK1.7 ,开发环境目录要求设置环境变量==== 1.3.软件开发基础 ====计算机基础 操做系统,文件,目录,可执行程序,经常使用快捷键经常使用的Shell命令经常使用开发语言 了解==== 1.4.第一个JAVA程序HelloWord ====在记事本编写程序在Shell命令窗口编译、执行讲解程序的编译执行过程关键字、标识符什么是标识符(1)标识符的命名规范(2)JAVA关键字==== 1.5.数据类型 ====数据类型简介JAVA中的数据类型基本数据类型引用数据类型基本数据类型有哪些数据类型的取值范围数据类型的转换自动类型转换强制类型转换==== 1.6.数组 ====数组的说明(1)为何用数组(2)一维数组的声明与建立(3)Java内存分析,堆和栈(局部变量存储)数组的初始化(1)静态初始化(2)动态初始化数组的访问(1)经过下标访问指定元素(2)循环访问数组的排序(1)冒泡排序(2)选择排序数组的查找(1)顺序查找(2)二分法查找Arrays工具类二维数组(1)二维数组的声明(2)二维数组的建立二维数组的初始化(1)静态初始化(2)动态初始化二维数组的访问(1)经过下标访问指定元素(2)经过循环访问数组==== 1.7.流程控制 ====什么是JAVA语句的执行结构(1)JAVA语句有哪些结构(2)顺序语句(3)分支语句(4)循环语句If语句(1)简单if语句(2)复杂if语句(3)if-else语句(4)多重if语句(5)嵌套if语句switch语句(1)switch语句用法(2)switch使用String分支(3)switch语句与if语句的区别枚举的简单使用(1)枚举的定义(2)枚举的使用(结合switch的使用)循环语句(1)什么是循环(2)Java中的循环语句for循环语句while循环(1)while循环语句(2)do-while循环语句特殊流程控制语句(1)break语句的使用(2)continue语句的使用(3)label 的简述比较while和do-while的区别==== 1.8.类.变量,方法,对象 ====类的定义什么是变量变量的声明和初始化变量的分类变量的做用域对象的定义对象的建立以及内存分析构造方法的定义(1)构造方法的定义(2)构造方法的使用(3)构造方法重载(4)构造方法与普通方法的区别this关键字(1)this.属性:访问本类的成员属性(成员变量与局部变量同名的状况,成员变量无效)(2)this.方法:访问本类的成员方法(3)this():访问本类中的构造函数static关键字(1)静态属性(2)静态方法(3)静态代码块static的应用(1)工具类(操做数组经常使用方法为例,写一个工具类)(2)工具类的概念类中成员变量的定义常量、进制转换(1)什么是常量(2)二进制转换十进制运算符(1)经常使用运算符(2)算术运算符(3)赋值运算符(4)关系运算符(5)逻辑运算符(6)三目运算符(7)字符串链接运算符(8)位运算符(9)移位运算符表达式的值和类型转义字符运算符优先级什么是方法(1)方法(函数)(2)方法中的参数① 形参② 实参(3)方法的返回值方法的声明和调用(1)声明方法的格式(2)调用方法的格式可变参数(1)可变参数的写法(2)可变参数的使用类中方法的定义方法的重载内部类(1)成员内部类(2)静态内部类(3)匿名内部类(4)局部内部类==== 1.9.面向对象 ====1.9.1.什么是面向对象1.9.2.面向对象的设计思想1.9.3.面向对象和面向过程的区别(1)面向对象(2)面向过程(3)区别总结1.9.4.抽象类和抽象方法(1)抽象类出现的缘由(2)抽象类的特色1.9.5.封装(1)private 的使用(2)get/set(3)方法的说明(讲this以前,参数与成员变量名称要不一样)1.9.6.继承继承的概念类的继承的使用super关键字继承中的构造方法访问权限(1)private(2)default(默认)(3)protected(4)public方法重写(1)方法重写的规则(2)Object 类① equals()方法② hashCode()方法③ getClass()方法④ toString()方法final关键字(1)final修饰的类(2)final修饰的方法(3)final修饰的属性(4)final与static的区别1.9.7.多态什么是多态多态的体现对象的多态性多态的表现形式接口(1)接口的概念(2)接口的使用① 接口的声明语法② 接口的实现类③ 接口的使用规则④ 接口的使用用途⑤ 接口与抽象类的区别对象转型(1)对象的向上转型(2)instanceof 关键字(3)对象的向下转型==== 1.10.正则表达式 ====(1)String 正则(2)Pattern Matcher(3)正则元字符(4)正则表达式==== 1.11.经常使用类 ====1.11.1.字符串(1)String类(2)StringBuffer类(3)StringBuilder类(4)String.format() 格式化1.11.2.基本数据类型的包装类基本数据类型与其包装类数据的装箱和拆箱String 与 基本数据类型的互换1.11.3.Date类1.11.4.Calendar类1.11.5.SimpleDateFormat类1.11.6.Math类1.11.7.Random类1.11.8.Runtime类1.11.9.System类==== 1.12.异常 ====异常的概念异常的分类异常的处理方式(1)捕获异常:try..catch..finally语句(2)抛出异常:throws和throw自定义异常==== 1.13.泛型的使用 ====泛型应用在集合上泛型类声明,方法返回泛型,方法参数泛型泛型限定 ==== 1.14.反射 ====类的加载 Class.forName()建立对象的两种方式(newInstance与带参数构造器)成员变量的访问Field类和getDeclaredField方法方法的访问与调用 Method构造方法==== 1.15.注解 ======== 1.16.集合 ====1.16.1.集合框架介绍(1)集合的概念(2)集合的框架结构介绍(3)集合与数组的对比1.16.2.Collection接口(1)集合对象的建立(2)Collection中经常使用的方法1.16.3.List接口(1)List接口的存储特色(2)List接口的实现类① ArrayList实现类的使用② LinkedList实现类的使用③ ArrayList与LinkedList存储的比较1.16.4.加强for循环1.16.5.Iterator迭代器(1)迭代器的工做原理(2)迭代器的使用1.16.6.集合工具(1)Collections 工具类(2)Comparable(3)Comparator1.16.7.Set接口(1)集合的存储特色(2)HashSet的实现原理① 重写hashCode()② 重写equals()(3)LinkedHashSet(添加)1.16.8.Map接口(1)Map接口的概述(2)Map接口的经常使用方法(3)Map接口的经常使用实现类(4)HashMap(5)Hashtable 和 HashMap的区别(6)LinkedHashMap(7)Map的遍历:各类遍历方式 Map.Entry==== 1.17.IO流 ====1.17.1.File类File类做用File类的构造方法File类经常使用方法使用File类对文件进行操做使用File类浏览目录中的文件和子目录递归算法遍历目录下全部文件与子目录1.17.2.IO概念什么是IO流?流的做用和原理?1.17.3.IO流的种类按方向分:输入流、输出流按数据单位分:字符流、字节流按层次分:节点流、处理流1.17.4.字节输入流InputStream类的经常使用方法InputStream类的子类:文件输入流FileInputStreamFileInputStream构造方法和经常使用方法1.17.5.字节输出流OutputStream类的经常使用方法OutputStream类的子类:文件输出类FileOutputStreamFileOutputStream构造方法和经常使用方法1.17.6.字节缓冲流字节缓冲流的构造方法使用字节缓冲流对文件进行读写装饰设计模式1.17.7.字符输入流Reader类的经常使用方法Reader类的子类:FileReaderFileReader构造方法和经常使用方法1.17.8.字符缓冲流字符缓冲流构造方法字符缓冲流的经常使用方法:readLine(), newLine()字符缓冲流对文件进行读写1.17.9.字符输出流Writer类的经常使用方法Writer类的子类:FileWriterFileWriter构造方法和经常使用方法1.17.10.转换流InputStreamReader的构造方法InputStreamReader的使用OutputStreamWriter的构造方法OutputStreamWriter的使用1.17.11.打印流打印流构造方法打印流的经常使用操做:print(), println()1.17.12.标准输入输出流(1)使用System.in获取键盘数据(2)使用System.out输出数据1.17.13.内存流(重点掌握)什么是内存流内存流的构造方法写入到内存和读取内存数据经常使用方法:toByteArray(), toString()1.17.14.数据输入输出流DataOutputStream 使用DataInputStream 使用1.17.15.对象流对象序列化序列化的经常使用属性(1)static的属性不能序列化(2)transient的属性不能序列化(3)serialVersionUID=1L对象输入流ObjectInputStream对象输出流ObjectOutputStream1.17.16.随机流RandomAccessFile类RandomAccessFile类的构造方法RandomAccessFile经常使用操做:skipBytes() seek()经常使用方法: getFilePointer() writerUTF() readUTF()向文件中随机写入键盘文字==== 1.18.线程 ====1.18.1.线程和进程的介绍进程的概念线程的概念进程和线程的关系以及区别1.18.2.线程的实现实现Runnable接口两种实现方式的比较1.18.3.线程的启动调用start()方法启动线程调用start()与调用run()的区别1.18.4.线程的生命周期和经常使用方法线程的优先级线程的名称线程的睡眠线程的中断线程的中止1.18.5.多线程访问临界资源时的数据安全问题synchronized关键字同步代码块同步方法同步静态方法锁对象死锁1.18.6.生产者消费者1.18.7.线程池单线程池固定线程池缓冲线程池==== 1.19.网络编程 ====1.19.1.网络通讯协议介绍TCP/IP协议IP地址和端口号基于TCP的网络编程Socket和ServerSocketUDP编程(视频)1.19.2.URL类的使用什么是URL类URL的构造方法URL类的经常使用方法1.19.3.HttpURLConnection类简介(重点)简单介绍HttpURLConnection类HttpURLConnection的经常使用方法1.19.4.HttpURLConnection类的应用HttpURLConnection请求服务器,获取响应的文本HttpURLConnection下载文件1.19.5.OkHttp 简单使用同步GET、POST请求1.19.6.接口回调 接口回调结合多线程的应用异步请求,利用内部类,实现接口回调==== 1.20.Xml ====1.20.1.XML简介什么是XMLXML语法结构XML元素定义XML属性使用自定义XML文件XML解析的三种方式说明:SAX, PULL, DOM1.20.2.PULL解析PULL解析原理PULL解析XML文件网络XML文件解析1.20.3.SAX解析SAX解析的原理SAX解析经常使用类介绍SAX解析XML文件步骤网络XML文件解析PULL解析与SAX解析的区别==== 1.21.Json ====1.21.1.JSON解析简介什么是JSONJSON与XML之间的比较JSON解析在网络中的应用1.21.2.JSON的数据表示键值对的对象表示数组的表示1.21.3.JSON解析一个对象的JSON解析多个对象的解析复杂对象的解析将集合转成JSON字符串官方JSON解析Gson解析==== 1.22.设计模式 ====单例设计模式简单工厂设计模式装饰者模式代理模式观察者模式======三.Web基础==========1.数据库====1.1.须要学习了解的数据库Mysql公司使用,主要学习,MySQL 在 2008 年被Sun收购须要学习其余数据库语言做为可替代方案oracleSqlserver 微软的只能在Windows平台使用,工做中基本不用,只需了解MariaDBPostgreSQLMangoDBNoSQL1.2.Mysql数据库简介mysql安装和概述mysql基本命令mysqlDDL操做mysqlDML操做mysqlDQL操做mysql模糊查询mysql分组查询分页数据库约束多表查询查询练习MySQL数据库的备份与恢复1.3.JDBCJava操做数据库获取数据库链接使用Statement执行更新操做使用ResultSet执行查询操做以面向对象思想编写JDBC使用PreparedStatement利用反射及JDBC元数据编写通用的查询方法DAO设计模式JDBC元数据JDBC获取插入记录的主键值JDBC处理Blob事务介绍JDBC处理事务批量处理数据库链接池(1)TOMCAT中的数据库链接池(2)C3P0(3)DBCP(4)Druid使用DBUtils1.4.oracle数据库简介Oracle服务端和客户端安装Oracle基本命令Oracle中的用户管理Oracle中表的管理Oracle查询操做Oracle中的函数表的逻辑备份与恢复数据库约束Oracle索引、权限分页====2.Tomcat====Tomcat简介Tomcat安装Tomcat安装目录介绍====3.Servlet====3.1.Servlet概述什么是Servlet实现Servlet的方式建立HelloWorld应用3.2.Servlet接口3.2.1.Servlet生命周期Servlet出生Servlet服务Servlet的离去3.2.2.Servlet接口相关类型ServletRequest和ServletResponseServletConfig3.2.3.GenericServletGenericServlet概述GenericServlet的init()方法实现了ServletConfig接口3.2.4.HttpServlet3.2.4.1.概述3.2.4.2.HttpServlet覆盖了service()方法3.2.4.3.<url-pattern>(1)/XXX(2)*.XXX3.2.4.4.doGet()和doPost()3.2.4.5.Responseresponse概述response响应正文(1)字符响应流设置响应头信息设置状态码及其余方法重定向(1)什么是重定向(2)完成重定向(3)便捷的重定向方式(4)重定向小结Request(1)request概述(2)request域方法(3)request获取请求头数据(4)request获取请求相关的其它方法(5)request获取请求参数(6)请求转发和请求包含① 请求转发② 请求包含③ 请求转发与请求包含比较④ 请求转发与重定向比较3.3.Servlet细节Servlet与线程安全让服务器在启动时就建立Servlet服务端跳转与客户端跳转web.xml文件的继承(了解)3.4.ServletContextServletContext概述获取ServletContext域对象的功能获取应用初始化参数获取资源相关方法(1)获取真实路(2)径获取资源流(3)获取指定目录下全部资源路径访问量统计====4.编码====4.1.请求编码(1)直接在地址栏中给出中文(2)在页面中发出请求(3)GET请求解读编码(4)POST请求解读编码4.2.响应编码4.3.URL编码====5.路径问题====与路径相关的操做客户端路径服务端路径<url-pattern>ServletContext获取资源Class获取资源ClassLoader获取资源====6.注解配置Servlet========7.JSP====7.1.JSP概述什么是JSPJSP的组成7.2.JSP语法JSP脚本多个<%...%>能够通用7.3.JSP原理JSP是特殊的ServletJSP真身存放目录7.4.再论JSP脚本7.5.JSP注释7.6.三个基本的脚本元素7.7.JSP指令7.8.JSP动做7.9.JSP EL表达式7.10.JSP标签库JSTLfmt标签库经常使用标签7.11.绝对路径和相对路径7.12.静态包含和动态包含7.13.页面中的几个路径7.14.验证码案例验证码的做用VerifyCode类在页面中显示动态图片在注册页面中使用验证码RegisterServlet总结验证码案例7.15.MVC设计模式7.16.JavaWeb与MVCJSP Model1第一代JSP Model1第二代JSP Model27.17.JavaWeb经典三层框架7.18.Filter7.18.1.过滤器概述Filter简介过滤器之HelloWorld7.18.2.过滤器详细过滤器的生命周期FilterConfigFilterChain多个过滤器执行顺序四种拦截方式过滤器的应用场景设置目标资源Filter小结7.18.3.过滤器应用案例分ip统计网站访问次数粗粒度权限控制禁用资源解决全站字符乱码页面静态化7.19.JavaWeb监听器JavaWeb监听器概述建立与销毁监听器操做域属性的监听器HttpSession的监听器7.20.国际化什么是国际化理解国际化Locale类ResourceBundle类页面国际化NumberFormatDateFormatMessageFormat7.21.Ajax7.21.1.js原生的ajax7.21.2.jQuery封装的ajaxAJAX概述(1)什么是AJAX(2)同步交互与异步交互(3)AJAX常见应用情景(4)AJAX优缺点AJAX技术(1)AJAX第一例(2)AJAX发送POST请求(3)AJAX判断用户名是否已注册(4)AJAX实现省市二级联动7.22.文件上传和下载文件上传(1)文件上传的做用(2)文件上传对页面的要求(3)比对文件上传表单和普通文本表单的区别(4)文件上传对Servlet的要求commons-fileupload(1)fileupload概述(2)fileupload简单应用(3)简单上传示例文件上传细节(1)把上传的文件放到WEB-INF目录下(2)文件名称(完整路径、文件名称)(3)中文乱码问题(4)上传文件同名问题(5)一个目录不能存放过多文件(6)上传的单个文件的大小限制(7)上传文件的总大小限制(8)缓存大小与临时目录文件下载(1)经过Servlet下载1(2)经过Servlet下载2(3)经过Servlet下载37.23.会话7.23.1.会话跟踪技术什么是会话跟踪技术会话跟踪技术使用Cookie或Session完成7.23.2.CookieCookie概述(1)什么是Cookie(2)Cookie规范(3)Cookie与HTTP头(4)Cookie的覆盖(5)Cookie的第一例Cookie的生命周期(1)什么是Cookie的生命周期(2)浏览器查看Cookie(3)案例:显示上次访问时间Cookie的Path(1)什么是Cookie的路径(2)Cookie路径与请求路径的关系(3)设置Cookie的路径Cookie的domainCookie中保存中文显示曾经浏览过的商品7.23.3.HttpSessionHttpSession概述登陆案例Session实现原理Session与浏览器Session其余经常使用APIURL重写======四.Web高级===========1.经典框架========= 1.1.Maven ====maven的介绍maven的安装配置建立maven工程之maven命令maven核心概念之坐标maven核心概念之依赖管理maven核心概念之生命周期maven核心概念之插件maven核心概念之继承maven核心概念之聚合==== 1.2.MyBatis ====1.2.1.单独使用JDBC编程问题总结JDBC程序JDBC编程步骤JDBC问题总结以下1.2.2.MyBatis介绍1.2.3.MyBatis架构1.2.4.MyBatis下载1.2.5.建立数据库1.2.6.MyBatis入门程序(1)需求(2)第一步:建立Java工程(3)第二步:加入jar包(4)第三步:log4j.properties(5)第四步:SqlMapConfig.xml(6)第五步:POJO类(7)第六步:程序编写① 查询② 添加③ 删除④ 修改(8)MyBatis解决JDBC编程的问题1.2.7.Dao开发方法需求SqlSession的使用范围(1)SqlSessionFactoryBuilder(2)SqlSessionFactory(3)SqlSession原始Dao开发方式① 映射文件② Dao接口③ 问题Mapper动态代理方式① 实现原理② Mapper.xml③ Mapper.java④ 加载UserMapper.xml文件⑤ 测试⑥ 总结1.2.8.SqlMapConfig.xml文件配置内容properties属性settings配置typeAliases① mybatis支持别名② 自定义别名typeHandlerMappers① <mapper resource=""/>② <mapper url=""/>③ <mapper class=""/>④ <package name=""/>1.2.9.Mapper.xml映射文件1.2.9.1.parameterType#{}与${}传递简单类型传递POJO对象传递POJO包装对象① 定义包装对象② mapper.xml映射文件传递HashMap1.2.9.2.resultType输出简单类型输出POJO对象输出POJO列表resultType总结输出HashMap1.2.9.3.resultMapMapper.xml定义定义resultMapMapper接口定义1.2.9.4.动态SQLIfWhereForeach① 经过POJO传递List② 传递单个List③ 传递单个数组(数组中是POJO)④ 传递单个数组(数组中是字符串类型)sql片断1.2.10.关联查询商品订单数据模型一对一查询① 方法一② 方法二一对多查询③ Sql语句④ 定义POJO类⑤ Mapper.xml⑥ 定义resultMap1)resultMap使用继承⑦ Mapper接口⑧ 测试⑨ 小结多对多查询① 查询用户购买的商品信息② 小结resultMap小结延迟加载(1)开启延迟加载(2)一对一查询延迟加载① 需求② Sql语句③ 定义POJO类④ Mapper.xml⑤ 定义resultMap⑥ Mapper接口⑦ 测试⑧ 延迟加载优缺点分析一对多查询延迟加载延迟加载小结1.2.11.查询缓存1.2.11.1.MyBatis缓存介绍1.2.11.2.一级缓存原理测试1.2.11.3.二级缓存原理开启二级缓存实现序列化测试禁用二级缓存刷新缓存MyBatis Cache参数MyBatis整合ehcache(1)原理(2)整合步骤① 引入缓存的依赖包② 引入缓存的配置文件③ 开启ehcache缓存应用场景局限性==== 1.3.Spring ====1.3.1.初识Spring1.3.1.1.简化Java开发什么是最小侵入式依赖注入应用切面使用模板消除样板式代码1.3.1.2.Spring主要模块1.3.2.Bean的注入1.3.2.1.XMl配置普通构造方法建立静态工厂建立实例工厂建立属性注入方式① 构造方法注入② set方法注入③ p名称空间注入④ 对象的注入⑤ 数组注入⑥ List集合注入⑦ Map注入⑧ Properties注入1.3.2.2.Java配置1.3.2.3.自动配置经过Java代码实现经过XML配置文件实现1.3.2.4.混合配置1.3.2.5.ProfileJava配置XML配置1.3.2.6.条件注解1.3.2.7.Bean的做用域1.3.2.8.其余问题1.3.3.AOP1.3.3.1.AOP简介1.3.3.2.AOP几个关键概念1.3.3.3.AOP原理1.3.3.4.AOP实现1.3.3.4.1.经过Java代码实现使用注解拦截(1)前置、后置通知(2)返回通知(3)环绕通知(4)异常通知按照方法规则拦截(1)前置、后置通知(2)返回通知(3)环绕通知(4)异常通知1.3.3.4.2.经过XML配置实现使用注解拦截按照方法规则拦截(1)前置通知(2)返回通知(3)环绕通知(4)异常通知(5)后置通知1.3.3.5.JdbcTemplate增删改查配合数据库链接池1.3.3.6.Spring事务管理回忆事务XML配置实现Java配置实现1.3.3.7.Spring高级应用1.3.3.8.服务端校验普通校验分组校验校验注解1.3.3.9.数据回显默认方式Model方式@ModelAttribute(1)解决数据回显问题(2)方法返回值暴露为模型数据异常处理文件上传JSON数据交互(1)@RequestBody(2)@ResponseBodyRESTful支持(1)RESTful简介(2)SpringMVC对RESTful的支持静态资源访问拦截器==== 1.4.SpringMVC ====1.4.1.简介SpringMVC工做流程SpringMVC相关组件HelloWorld1.4.2.组件介绍1.4.2.1.DispatcherServlet1.4.2.2.Controller1.4.2.2.1.@RequestMapping(1)URL路径映射(2)窄化请求映射(3)请求方法限定1.4.2.2.2.Controller方法返回值返回ModelAndView返回void(1)使用request转向页面(2)经过response页面重定向(3)经过response指定响应结果返回字符串(1)逻辑视图名(2)Redirect重定向(3)forward转发1.4.2.2.3.参数绑定默认支持的参数类型简单数据类型(1)简单类型(2)@RequestParamPOJO(1)简单pojo(2)包装pojo自定义参数绑定集合类(1)字符串数组(2)Lis(3)tMap1.4.2.2.4.问题总结404Post时中文乱码1.4.2.3.其余组件=== 1.5.Freemarker ===1.5.1.Freemarker介绍Freemarker简介使用引入1.5.2.ftl基本语法if else语句list循环语句输出展现=== 1.6.SpringMVC+Freemarker案例 ====== 1.7.SpringMVC+AJAX实现动态树形菜单 ====== 1.8.MyBatis整合Spring ===1.8.1.MyBatis与Spring整合jar1.8.2.MyBatis配置文件1.8.3.Spring配置文件1.8.4.Mapper编写的三种方式Dao接口实现类继承SqlSessionDaoSupport使用org.mybatis.spring.mapper.MapperFactoryBean使用Mapper扫描器=== 1.9.MyBatis逆向工程 ===使用方式Mapper文件内容不覆盖而是追加Table schema问题=== 1.10.Struts2 ===1.10.1.Struts2概述1.10.2.Struts2框架入门1.10.3.Struts2执行过程1.10.4.Struts2核心配置文件标签package标签action标签result1.10.5.Struts2常量配置1.10.6.分模块开发1.10.7.Action编写方式1.10.8.访问Action的方法使用action标签method属性使用通配符实现1.10.9.结果页面配置全局结果页面局部结果页面Result标签的type属性1.10.10.Action获取表单提交数据使用ActionContext类获取使用ServletActionContext类获取在Action操做域对象1.10.11.Struts2封装获取表单数据方式属性封装模型驱动封装封装到集合中(1)封装数据到List集合中(2)封装数据到Map集合中Struts2拦截器概述拦截器底层原理重要概念自定义拦截器自定义登陆拦截器Struts2的标签库Struts2总结=== 1.11.Hibernate ===1.11.1.Hibernate概述什么是框架什么是hibernate框架什么是ORM思想1.11.2.Hibernate入门搭建Hibernate环境实现添加操做1.11.3.Hibernate配置文件详解Hibernate映射配置文件Hibernate核心配置文件1.11.4.Hibernate核心APIConfigurationSessionFactorySessionTransaction1.11.5.Hibernate主键生成策略1.11.6.实体类操做添加根据id查询修改操做删除操做1.11.7.Hibernate的一级缓存什么是缓存Hibernate缓存验证缓存Hibernate一级缓存执行过程Hibernate一级缓存特性1.11.8.Hibernate事务操做事务相关概念Hibernate事务代码规范写法Hibernate绑定session1.11.9.Hibernate的API的使用Query对象Criteria对象SQLQuery对象1.11.10.Hibernate一对多操做一对多映射配置一对多级联操做一对多级联保存一对多级联删除一对多修改操做1.11.11.Hibernate查询对象导航查询OID查询HQL查询QBC查询=== 1.12.Spring Boot ===1.12.1.Spring Boot概述什么是Spring BootSpring Boot的核心功能Spring Boot的优缺点1.12.2.Spring Boot快速搭建1.12.3.Spring Boot核心1.12.3.1.基本配置(1)入口类和@SpringBootApplication(2)关闭特定的自动配置(3)定制Banner(4)Spring Boot的配置文件(5)Starter pom(6)使用xml配置1.12.3.2.外部配置命令行参数配置常规属性配置类型安全配置1.12.3.3.日志配置1.12.3.4.Profile配置1.12.4.Spring Boot运行原理运做原理核心注解实例分析1.12.5.Spring Boot的Web开发支持1.12.6.Thymeleaf模板引擎Thymeleaf基础知识与Spring MVC集成Spring Boot的Thymeleaf支持案例1.12.7.Web相关配置Spring Boot提供的自动配置接管Spring Boot的Web配置注册Serlvet、Filter、Listener1.12.8.Tomcat配置配置Tomcat代码配置Tomcat替换TomcatSSL配置1.12.9.Favicon配置默认的Favicon关闭Favicon设置本身的Favicon1.12.10.WebSocket什么是WebSocketSpring Boot提供的自动配置案例1.12.11.基于Bootstrap和AngularJS的现代Web应用1.12.12.Spring Boot的数据访问Spring Data JPASpring Data REST声名式事务(1)回忆Spring 的事务机制(2)声名式事务(3)注解事务行为(4)类级别使用@Transactional(5)Spring Boot的事务支持(6)案例1.12.13.数据缓存CacheSpring的缓存支持Spring Boot的支持缓存切换技术案例1.12.14.Spring Boot企业级开发安全控制Spring Security批处理Spring Batch异步消息集成Spring Integration=== 1.13.Shiro ===1.13.1.Shiro简介1.13.2.HelloWorld1.13.3.Shiro集成Spring1.13.4.Shiro工做流1.13.5.权限URL配置细节1.13.6.认证思路分析1.13.7.实现认证流程1.13.8.实现认证Realm1.13.9.密码的比对1.13.10.密码的MD5加密1.13.11.密码的MD5盐值加密1.13.12.多Realm验证1.13.13.认证策略1.13.14.把realms配置给SecurityManager1.13.15.Shiro权限配置1.13.16.Shiro受权流程分析1.13.17.多Realm受权的经过标准1.13.18.实现受权1.13.19.标签1.13.20.权限注解1.13.21.从数据表中初始化资源和权限1.13.22.会话管理1.13.23.SessionDao1.13.24.缓存认证和记住个人区别1.13.25.Shiro实现Rememberme=== 1.14.Spring Cloud ========2.JavaEE进阶========= 2.1.Linux ====2.1.1.Linux简介简介Linux版本2.1.2.Linux系统安装VMware安装CentOs安装CentOs root用户CentOs 使用CentOs目录介绍2.1.3.Linux基本命令切换目录命令端口查看命令文件执行命令解压命令受权命令建立目录命令文件复制命令chkconfig命令2.1.4.vi编辑器&vim2.1.5.应用安装准备安装路径上传文件到Linux2.1.6.jdk安装2.1.7.Tomcat安装安装启动中止关闭防火墙安装zookeper安装mysql数据库==== 2.2.Redis ====2.2.1.NoSQL概述2.2.1.1.入门概述为何用NoSQL什么是NoSQLNoSQL能干什么2.2.1.2.3V+3高2.2.1.3.当下的NoSQL经典应用(以阿里巴巴为例)架构发展史阿里巴巴中文站商品信息存放(1)商品基本信息(2)商品描述、详情、评价信息(多文字类)(3)商品的图片(4)商品关键字(5)商品的波段性的热点高频信息(6)商品的交易、价格计算、积分累计大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方案难点解决办法UDSL2.2.1.4.NoSQL数据模型简介传统数据库模型NoSQL数据模型聚合模型2.2.1.5.NoSQL数据库的四大分类KV键值文档型数据库(bson格式比较多)列存储数据库(1)Cassandra, HBase(2)分布式文件系统图关系数据库四者对比2.2.1.6.分布式数据库中CAP原理传统的ACID分别是什么CAPCAP的3选2BASE是什么分布式和集群2.2.2.Redis入门介绍2.2.2.1.入门概述VMWare上安装Linux(1)VMWare虚拟机的安装(2)CentOS或者RedHad5的安装(3)VMTools的安装(4)设置共享目录(5)上述环境都OK后开始进行Redis的服务器安装配置2.2.2.2.Redis的安装Windows版安装重要提示:Linux版安装2.2.2.3.Redis启动后杂项基础知识讲解2.2.3.Redis的数据类型2.2.3.1.Redis的五大数据类型string(字符串)hash(哈希,相似java里的Map)list(列表)set(集合)zset(sorted set:有序集合)2.2.3.2.Redis 键(key)经常使用案例2.2.3.3.Redis字符串(String)经常使用案例2.2.3.4.Redis列表(List)经常使用案例(1)lpush/rpush/lrange(2)lpop/rpop (3)lindex,按照索引下标得到元素(从上到下) (4)Llen(5)lrem key 删N个value (6)ltrim (7)rpoplpush 源列表 目的列表 (8)lset key index value (9)linsert key before/after 值1 值2(10)性能总结2.2.3.5.Redis集合(Set)经常使用案例 (1)sadd/smembers/sismember (2)scard,获取集合里面的元素个数 (3)srem key value 删除集合中元素(4)srandmember key 某个整数(随机出几个数) (5)spop key 随机出栈 (6)smove key1 key2 在key1里某个值 (7)数学集合类① 差集:sdiff② 交集:sinter③ 并集:sunion2.2.3.6.Redis哈希(Hash)经常使用案例 (1)hset/hget/hmset/hmget/hgetall/hdel (2)hlen hexists key key里面的某个值的key (3)hkeys/hvals (4)hincrby/hincrbyfloat (5)Hsetnx2.2.3.7.Redis有序集合Zset(sorted set)经常使用案例 (1)zadd/zrange (2)zrangebyscore key 开始score 结束score (3)zrem key 某score下对应的value值 (4)zcard/zcount/zrank /zscore (5)zrevrank (6)zrevrange (7)zrevrangebyscore key 结束score 开始score2.2.4.解析配置文件redis.conf2.2.4.1.它在哪2.2.4.2.units单位2.2.4.3.INCLUDES包含2.2.4.4.GENERAL通用(1)daemonize(2)Pidfile(3)Port(4)tcp-backlog(5)Timeout(6)Bind(7)tcp-keepalive(8)Loglevel(9)Logfile(10)syslog-enabled(11)syslog-ident(12)syslog-facility(13)Databases2.2.4.5.SNAPSHOTTING快照(1)Save ① save 秒钟写操做次数② 禁用(2)stop-writes-on-bgsave-error (3)rdbcompression (4)rdbchecksum (5)dbfilename (6)Dir2.2.4.6.REPLICATION复制2.2.4.7.SECURITY安全2.2.4.8.LIMITS限制MaxclientsMaxmemorymaxmemory-policymaxmemory-samples2.2.4.9.APPEND ONLY MODE追加2.2.4.10.常见配置redis.conf介绍2.2.5.redis的持久化2.2.5.1.RDB(Redis DataBase)简介Fork配置位置如何触发RDB快照如何恢复优点劣势如何中止小总结2.2.5.2.AOF(Append Only File)概述配置位置AOF启动/修复/恢复(1)正常恢复(2)异常恢复Rewrite(1)是什么(2)重写原理(3)触发机制优点劣势小总结2.2.5.3.总结2.2.6.Redis的事务2.2.6.1.概述2.2.6.2.用法常见用法Redis事务错误处理watch监控(1)悲观锁/乐观锁/CAS(Check And Set)(2)初始化信用卡可用余额和欠额(3)无加塞篡改,先监控再开启multi, 保证两笔金额变更在同一个事务内(4)有加塞篡改 (5)Unwatch(6)小结3阶段3特性2.2.7.Redis的发布订阅概述命令案列2.2.8.Redis的复制(Master/Slave)2.2.8.1.是什么2.2.8.2.配置2.2.8.2.1.配从(库)不配主(库)2.2.8.2.2.从库配置:slaveof 主库IP 主库端口2.2.8.2.3.m2.2.8.2.4.经常使用3招一主二仆① M② 一个Master两个Slave③ 日志查看④ 主从问题演示薪火相传反客为主2.2.8.3.复制原理2.2.8.4.哨兵模式(sentinel)是什么使用步骤一组sentinel能同时监控多个Master2.2.8.5.复制的缺点2.2.9.Redis的Java客户端Jedis2.2.9.1.搭建环境2.2.9.2.Jedis经常使用操做测试连通性5+1事务提交(1)平常(2)加锁主从复制(1)6379,6380启动,先各自先独立(2)主写(3)从读2.2.9.3.JedisPool获取Jedis实例须要从JedisPool中获取用完Jedis实例须要返还给JedisPool若是Jedis在使用过程当中出错,则也须要还给JedisPool案例见代码(1)JedisPoolUtil(2)调用配置总结all2.2.10.Spring Data Redis简介案例==== 2.3.JPA ====2.3.1.JPA概述JPA简介JPA HelloWorld2.3.2.经常使用注解基本注解Transient注解Temporal注解Table主键生成策略2.3.3.JPA EntityManager2.3.4.JPA EntityTransaction2.3.5.JPA 映射单向多对一关联关系2.3.6.JPA 映射单向一对多关联关系2.3.7.JPA 映射双向一对多的关联关系2.3.8.JPA 映射双向一对一的关联关系2.3.9.JPA 二级缓存2.3.10.JPQLJPQL查询缓存ORDER BY和GROUP BY关联查询子查询和内建函数DELETE和UPDATE2.3.11.JPA整合Spring==== 2.4.分布式系统 ====2.4.1.RPC什么是RPCRPC使用场景2.4.2.分布式介绍分布式系统分布式种类分布式与集群的区别2.4.3.Dubbo使用dubbo服务器2.4.4.zookeper介绍2.4.5.zookeper安装2.4.6.服务端应用2.4.7.客户端应用2.4.8.分布式架构==== 2.5.支付宝支付 ======== 2.6.微信支付 ======== 2.7.消息队列 ======== 2.8.WebSocket ====2.8.1.建立第一个WebSocket应用建立WebSocket端点部署端点建立WebSocket客户端2.8.2.WebSocket端点2.8.3.编程式端点2.8.4.深刻Echo示例部署阶段接收第一个链接WebSocket消息通讯2.8.5.WebSocket生命周期2.8.6.高级消息处理检查链接异步发送WebSocket消息(1)经过Future发送消息(2)经过Handler发送消息(3)区别与联系WebSocket路径映射Portfolio应用2.8.7.保护WebSocket服务器端点2.8.8.Java EE平台中的WebSocket==== 2.9.Lucene ====2.9.1.Lucene简介什么是lucene全文检索的应用场景(1)搜索引擎(2)站内搜索(3)文件系统搜索(4)总结全文检索的定义lucene实现全文检索的流程2.9.2.入门案例2.9.2.1.需求2.9.2.2.搭建环境(1)数据库脚本初始化(2)lucene准备2.9.2.3.工程搭建2.9.2.4.索引流程为何采集数据采集数据的方式(1)网页采集(2)数据库采集索引文件的逻辑结构索引2.9.2.5.搜索流程输入查询语句搜索分词搜索索引2.9.3.Field域Field的属性Field的经常使用类型修改入门程序的代码2.9.4.索引维护需求添加索引删除索引修改索引2.9.5.搜索建立查询对象的方式经过Query子类来查询对象经过QueryParser建立查询对象TopDocs2.9.6.相关度排序什么是相关度排序设置bosst值影响打分2.9.7.中文分词器什么是中文分词器Lucene自带的中文分词器第三方中文分词器Ikanalyzer==== 2.10.Solr ====2.10.1.Solr介绍什么是SolrSolr和Lucene的区别2.10.2.Solr安装配置下载Solr运行环境SolrCore配置(1)SolrHome和SolrCore(2)目录结构(3)建立SolrCore(4)配置SolrCoreSolr工程部署管理界面功能介绍多SolrCore配置2.10.3.Solr基本使用schema.xml配置中文分析器配置业务FielddataimportHandler插件2.10.4.Solrj的使用什么是Solrj需求环境准备工程搭建代码实现(1)添加、修改索引(2)删除索引(3)查询索引2.10.5.案例需求分析(1)UI分析(2)架构分析环境准备工程搭建代码实现==== 2.11.Nginx ======== 2.12.Dubbo ======== 2.13.Docker ======== 2.14.Kubernetes ======== 2.15.lvs ======== 2.16.Activemq ======== 2.17.Rocketmq ======== 2.18.Kafka ======== 2.19.Mycat ======== 2.20.Sharding-jdbc ======== 2.21.Zookeeper ======== 2.22.RPC ==========五.工具的使用===========1.SVN使用==========2.Git使用 ========== 3.Eclipse开发工具的介绍 =====工做空间的概念工程的概念以及命名规范包的概念以及命名规范(1)建立包(2)导入包(3)建立包的命名规范经常使用快捷键的介绍工程的导入导出===== 4.VMware (虚拟机) ========== 5.IntelliJ IDEA ========== 6.StarUML ========== 7.Dreamweaver ========== 8.PdShell ========== 9.Postman ========== 10.Xshell 5 ========== 11.Xftp 5 ========== 12.RedisDesktopManager ========== 13.HiJson ========== 14.数据库图形化工具 =====