Filter&Listener&Ajax
Filter&Listener&Ajax1. Filter1.1  Filter概述Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了,Filter和Listener 我们今天都会进行学习。
过滤器可以把对资源的请求==拦截==下来,从而实现一些特殊的功能。
如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)
而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问资源之前会先经过 Filter,如下图
拦截器拦截到后可以做什么功能呢?
==过滤器一般完成一些通用的操作。==比如每个资源都要写一些代码完成某个功能,我们总不能在每个资源中写这样的代码吧,而此时我们可以将这些代码写在过滤器中,因为请求每一个资源都要经过过滤器。
我们之前做的品牌数据管理的案例中就已经做了登陆的功能,而如果我们不登录能不能访问到数据呢?我们可以在浏览器直接访问首页 ,可以看到 查询所有 的超链接
当我点击该按钮,居然可以看到品牌的数据
这显然和我 ...
Vue&&Element
VUE&Element今日目标:
能够使用VUE中常用指令和插值表达式
能够使用VUE生命周期函数 mounted
能够进行简单的 Element 页面修改
能够完成查询所有功能
能够完成添加功能
1. VUE1.1  概述接下来我们学习一款前端的框架,就是 VUE。
==Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。==
我们之前也学习过后端的框架 Mybatis ,Mybatis 是用来简化 jdbc 代码编写的;而 VUE 是前端的框架,是用来简化 JavaScript 代码编写的。前一天我们做了一个综合性的案例,里面进行了大量的DOM操作,如下
学习了 VUE 后,这部分代码我们就不需要再写了。那么 VUE 是如何简化 DOM 书写呢?
==基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。==之前我们是将关注点放在了 DOM 操作上;而要了解 MVVM 思想,必须先聊聊 MVC 思想,如下图就是 MVC 思想图解
C 就是咱们 js 代码,M 就是数据,而 V 是 ...
Request&&Response
Request&Response1,Request和Response的概述==Request是请求对象,Response是响应对象。==这两个对象在我们使用Servlet的时候有看到:
此时,我们就需要思考一个问题request和response这两个参数的作用是什么?
request:==获取==请求数据
浏览器会发送HTTP请求到后台服务器[Tomcat]
HTTP的请求中会包含很多请求数据[请求行+请求头+请求体]
后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中
所存入的对象即为request对象,所以我们可以从request对象中获取请求的相关参数
获取到数据后就可以继续后续的业务,比如获取用户名和密码就可以实现登录操作的相关业务
response:==设置==响应数据
业务处理完后,后台就需要给前端返回业务处理的结果即响应数据
把响应数据封装到response对象中
后台服务器[Tomcat]会解析response对象,按照[响应行+响应头+响应体]格式拼接结果
浏览器最终解析结果,把内容展示在浏览器给用户浏览
对 ...
Cookie&&Session
会话技术1. 会话跟踪技术的概述对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会话跟踪:
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含==多次==请求和响应。
从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立了
会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着
浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程就被称之为==会话==。
用实际场景来理解下会话,比如在我们访问京东的时候,当打开浏览器进入京东首页后,浏览器和京东的服务器之间就建立了一次会话,后面的搜索商品,查看商品的详情,加入购物车等都是在这一次会话中完成。
思考:下图中总共建立了几个会话?
每个浏览器都会与服务端建立了一个会话,加起来总共是==3==个会话。
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间==共享数据==。
服务器会收到多个请求,这多个请求可能来自多个浏览器,如 ...
MySQL
MySQL    面试题1. MySQL 中有哪几种锁?
表级锁: 开销小, 加锁快; 不会出现死锁; 锁定粒度大, 发生锁冲突的概率最高, 并发度最低。
行级锁: 开销大, 加锁慢; 会出现死锁; 锁定粒度最小, 发生锁冲突的概率最低, 并发度也最高。
页面锁: 开销和加锁时间界于表锁和行锁之间; 会出现死锁; 锁定粒度界于表锁和行锁之间, 并发度一般。 
2. MySQL 中有哪些不同的表格?共有 5 种类型的表格: 
MyISAM
Heap 
Merge
INNODB
ISAM
3. 简述在MySQL 数据库中 MyISAM 和InnoDB 的区别MyISAM:不支持事务, 但是每次查询都是原子的; 支持表级锁, 即每次操作是对整个表加锁; 存储表的总行数;
一个 MYISAM 表有三个文件: 索引文件. 表结构文件. 数据文件;
采用菲聚集索引,  索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致, 但是辅索引不用保证唯一性。 
InnoDb:支持 ACID 的事务, 支持事务的四种隔离级别; 支持行级锁及外键约束: 因此可以支持写并发; 不 ...
Redis
Redis    面试题1. 什么是Redis?Redis 是完全开源免费的,遵守 BSD 协议, 是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis 不仅仅支持简单的 key-value 类型的数据, 同时还提供 list, set, zset, hash 等数据结构的存储。
Redis 支持数据的备份, 即 master-slave 模式的数据备份。
Redis 优 势性能极高 – Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 。
丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及Ordered Sets 数据类型操作。
原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
丰富的特性  ...
Mybatis
MyBatis    面试题1、什么是Mybatis?
Mybatis 是一个半 ORM( 对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, 不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能, 灵活度高。 
MyBatis 可以使用 XML 或注解来配置和映射原生信息, 将  POJO 映射成数据库中的记录, 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
通过 xml 文件或注解的方式将要执行的各种 statement 配置起来, 并通过java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。( 从执行 sql 到返回 result 的过程)。
2、Mybaits 的优点:
基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一 ...
Http&Servlet&Tomcat
HTTP&Tomcat&Servlet1. Web概述1.1 Web和JavaWeb的概念==Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。==在我们日常的生活中,经常会使用浏览器去访问百度、京东、传智官网等这些网站,这些网站统称为Web网站。我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义==JavaWeb就是用Java技术来解决相关web互联网领域的技术栈
1.2 JavaWeb技术栈了解JavaWeb技术栈之前,有一个很重要的概念要介绍。
1.2.1 B/S架构什么是B/S架构?B/S 架构:Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。大家可以通过下面这张图来回想下我们平常的上网过程:
打开浏览器访问百度首页,输入要搜索的内容,点击回车或百度一下,就可以获取和搜索相关的内容
思考下搜索的内容并不在我们自己的点上,那么这些内容从何而来?答案很明显是从百度服务器返回给我们的 ...
前端工程化
前端开发(Webpack)什么是前端工程化?在企业级的前端项目开发中,把前端开发所需要的工具,技术,流程,经验等进行规范化,标准化
模块化:js的模块化,css的模块化,资源的模块化
组件化:复用现有的UI结构,样式,行为
规范化:目录结构的划分,编码规范化,接口规范化,文档规范化,Git分支模块管理
自动化:自动化构建,自动部署,自动化测试
企业中的Vue项目和React才能够木,都是基于工程化的方式进行开发的
Webpack的基本使用概念:webpack是前端项目工程化的具体解决方案
主要功能:它提供了友好的前端模块开发支持,以及代码压缩混淆,处理浏览器JavaScript的兼容性,性能优化
等强大的功能。
优点:提高了前端开发效率和项目的可维护性。
Spring-Learn(四)
Spring-AOP1、AOP 基本概念 (1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
 (2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能
 (3)使用登录例子说明 AOP
2、AOP(底层原理)AOP 底层使用动态代理 ,动态代理有两种情况:
第一种 有接口情况使用 JDK 动态代理 ;创建接口实现类代理对象,增强类的方法
第二种 没有接口情况使用 CGLIB 动态代理;创建子类的代理对象,增强类的方法
3、AOP(JDK 动态代理)(1)使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象调用 newProxyInstance 方法,方法有三个参数:
1234public static Object newProxyInstance(ClassLoader loader,                                      Class<?>[] interfaces,                  ...
