黑马程序员技术交流社区

标题: [石家庄校区]web第四次笔记 [打印本页]

作者: 雪落    时间: 2018-5-27 16:03
标题: [石家庄校区]web第四次笔记
本帖最后由 雪落 于 2018-5-27 16:21 编辑

[石家庄校区]web第四次笔记

## 反射

###反射介绍
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法
        对于任意一个对象,都能够调用它的任意一个方法
        这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制.
通过反射技术, 我们可以拿到该字节码文件中所有的东西, 例如成员变量, 成员方法, 构造方法, 而且还包括私有
### 获得类的字节码对象Class对象.三种获得的方式.
1.类名.class;                           这是一个静态的属性, 只要知道类名, 就可以获取
   Class clazz1 = Person.class;
2.类的实例.getClass();   此方法来自于Object  对象已经存在的情况下, 可以使用这种方式
   Person person = new Person();
   Class clazz2 = person.getClass();
3.Class.forName(“com.itheima_01.Student”);      通过Class类中的静态方法, 指定字符串, 该字符串是类的全类名(包名+类名)
   Class clazz3 = Class.forName("com.itheima.demo3.reflect.Person");
### 获得构造器:Constructor
   Constructor c = clazz.getConstructor(String.class,Integer.class);
### 获得属性:Field     
   Field field1 = clazz.getDeclaredField("name");
### 获得方法:Method
   Method method = clazz.getDeclaredMethod("run");

## JDBC的事务管理

事务的管理的对象:Connection conn
### 事务管理的核心的思想:
逻辑上的一组操作使用的是同一个Connection对象
### 事务管理的核心步骤:
开启事务:conn.setAutoCommit(false)
业务逻辑的操作
所有的业务逻辑操作都成功后提交事务:conn.commit()
一旦有异常回滚事务:conn.rollback()
### 事务特性及问题(面试)
#### ACID特性
原子性  事务的不可分割
一致性  事务执行的前后,数据完整性保持一致
隔离性  一个事务的执行不应该受到另一个事务的干扰
持久性  事务一旦结束,将会永久修改到数据库
#### 不考虑隔离性引发的问题
脏读:一个事务读到了另一个事务未提交的数据
不可重复读:一个事务读到了另一个事务已经提交的update数据,导致前后查询结果不一致
虚读/幻读:一个事务读到了另一个事务已经提交的insert数据,导致前后查询结果不一致
#### 隔离级别
read uncommitted    未提交读.脏读,不可重复读,虚读都可能发生
read committed      已提交读.避免脏读.但是不可重复读和虚读有可能发生
repeatable read     可重复读.避免脏读,不可重复读.但是虚读有可能发生
serializable        串行化的.避免脏读,不可重复读,虚读的发生
MYSQL隔离级别:repeatable read  Oracle隔离级别:read committed

##JDBC的添加,修改,删除查询.


###查询:
    在首页点击查询:提交到Servlet--调用业务层--调用DAO
###添加:
    在首页点击添加:提交到添加的JSP.在JSP中输入一些信息.提交到Servlet.
         在Servlet中接收参数,封装参数,调用业务层,调用DAO.
         使用令牌机制完成重复提交的问题.
###修改:
    在列表页面中点击编辑:提交到Servlet.查询某个商品.显示到页面.
        在页面中输入一些信息,点击确定.提交到修改的Servlet.
        接收参数,封装,调用业务层,调用DAO.
###删除:
   在列表页面中点击删除:提交到Servlet.
        在Servlet中接收id,调用业务层,调用DAO.
        使用JS进行提示.
###分页查询:
      1 分页分类:
         一次性查询几条记录.
         一次性查询所有记录.对记录进行切分.
      2  一次性查询几条:limit
      3 封装一个分页的Bean:
        提供参数:currPage,pageSize,totalCount,totalPage,List.
      4 在业务层需要将PageBean进行封装.

## AJAX

```javascript
$.get(
    "url",
    {
        "":"",
        "":""
    },
    function(data){ //data:服务器对当前这次请求的响应
        
    },
    "响应的类型"
);
$.post(
    "url",
    {
        "":"",
        "":""
    },
    function(data){ //data:服务器对当前这次请求的响应
        
    },
    "响应的类型"
);

$.ajax({
    url:"",
    type:"请求方式",
    data:{
        "":"",
        "":""
    },
    success:function(data){ //成功后执行
        
    },
    error:function(){ //出错之后执行
        
    },
    beforeSend:function(){ //发送之前执行
        
    },
    complete:function(){ //不管成功还是失败都执行
        
    }
});
```
##监听器

###Listener        :
    * 监听器就是一个JavaBean用来监听其他Bean变化.
    * 事件源:被监听的对象.
    * 监听器:监听的对象.
    * 事件源与监听器的绑定:
    * 事件:事件源改变.通过事件对象获得事件源对象.
    * Servlet的监听器:
        * 事件源:三个域对象.ServletContext,HttpSession,ServletRequest
    * 三类:
        * 一类:监听三个域对象的创建和销毁的监听器.
        * 二类:监听三个域对象的属性变更监听器.
        * 三类:监听HttpSession中的JavaBean的状态的改变的监听器.
###Filter                :
    * 过滤器就是对从客服端发送到服务器的请求进行过滤的.
    * FilterConfig:过滤器配置.
        * 获得初始化参数
        * 获得ServletContext
        * 获得过滤器的名称
   * FilterChain:过滤器链.
   * 生命周期:服务器启动的时候进行创建,服务器关闭的时候销毁.
   * 过滤器的配置:
        * <url-pattern>的配置
        * <servlet-name>的配置
        * <dispatcher>的配置:
            * REQUEST
            * FORWARD
            * INCLUDE
            * ERROR
   * 自动登录:
   * 网站乱码的解决:









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2