page
include
taglib
________________JSP四个域范围________________
pageScope
requestScope
sessionScope
applicationScope
________________JSP九大内置对象________________
request response
session application
pageContext page
config out
exception
EL表达式语言
expresion language
EL
功能:
获取数据:来源是四个域
执行运算:
操作web开发中的常用对象
调用java中的函数
JSTL:JSP标准标签库
和EL一样都是替换JSP中的尖括号,百分号
■■■■■■■■■■■■■■■■■■■■■■■反射■■■■■■■■■■■■■■■■■■■■■■■
反射与动态代理:注意使用在框架
Class
Constructor
Field
Method
反射:
获得类编译后的class被加载到内存中的class对象,通过字节码对象获得里面的构造器,属性,方法作用:
在通用性很高的代码或者是框架中使用反射
使用:
获得类的字节码对象在内存的表示:Class
获取Class文件的三种方式:
1、通过类的名称.class属性获得
2、通过实例对象.getClass属性获得
3、通过Class.forName("类的全路径")
通过类的字节码对象操作它的属性,方法,构造
JavaBean中的无参构造是为反射创建空参构造准备的
<servlet-class>全限定名是为反射准备的</servlet-class>
new BeanHandler<User>(User.class)
利用反射创建对象
总而言之,只要有全路径,就会有反射
■■■■■■■■■■■■■■■■■■■■■■■内省■■■■■■■■■■■■■■■■■■■■■■■
内省基于反射,没有反射前底层的一个技术,这个技术只能获得JavaBean中的属性和对应属性的get或set方法
Introspector
java.beans.Introspector
introspector vi., vt.内省;自省;反省
什么是JavaBean:
就是一个普通的java类,满足了一定的格式:
需要提供一个无参构造
类中的属性私有化
对私有化属性提供公有的get或set方法
JavaBean中的属性是由什么确定的呢?
根据类中的get和set方法确定的。只要有get或set方法,就是一个属性
■■■■■■■■■■■■■■■■■■■■■■■mysql事物的管理■■■■■■■■■■■■■■■■■■■■■■■
什么是事物?
事物指的是逻辑上的一组单元,组成这个逻辑上的各个单元要么一起成功,要么一起失败
多个操作绑定到一个事务里面
事务的作用:
保证数据的完整性
事务的使用:
MySql的命令的事务管理
JDBC的事务管理
MySql的事务管理
MySql数据库,默认是一条语句就是一个事物
Oracle不是的,默认事务不是自动提交的,需要手动提交
要在mysql中进行事务的管理:
★★★★mysql事务管理的方式一★★★★★
手动开启事务,手动提交或者回滚
start transaction 开启事务,下面的语句要么一起成功,要么一起失败
sql语句1
commit/rollback 提交事务/回滚事务
★★★★mysql事务管理的方式二★★★★★
设置mysql自动提交的参数,变为OFF
使用命令查看与commit提交相关的参数
show variables like '%commit%';
设置让它不自动提交
set autocommit=0; 0就是OFF 1就是ON
●●●●●●●●●●●●●●●●●●●●●面试常问●●●●●●●●●●●●●●●●●●●●●●●●●
事务的特性:
原子性
强调组成事务的各个单元是不可分割的
一致性
强调事务执行的前后数据的完整性应该保持一致
隔离性
强调一个事务执行的时候不应该受到其他事务的干扰
如果不考虑事务的隔离性,会引发哪些安全性问题●●●●●●
引发俩大类问题:
读问题
三类读问题
一:脏读 一个事务读到了另一个事务还没有提交的数据 (演示完毕,脏读)
二:不可重复读 一个事务读到了另一个事务已经提交到updated的数据,导致在一个事务中多次查询结果不一致
三:虚读/幻读 一个事务读到了另一个事务已经提交到insert的数据,导致在一个事务中多次查询结果不一致
不可重复读是由update引发的
虚读是由insert引发的
写问题
持久性
强调的是事务一旦结束,事务就持久的保存到数据库中
解决安全性问题:
设置数据库事务的隔离级别
read uncommitted :以上三种读问题都能发生
read committed :避免脏读,但是不可重复读和虚读有可能发生 oracle默认
repeatable read :避免脏读和不可重复读, mysql默认
serializable :避免以上三种读问题,但是虚读有可能发生 串型化,一个事务执行完,再执行另一个事务
serializable是不允许事务并发的
但是安全级别高了,性能就低了
但我们通常会设置2,3