MVC&事务
1,获得字节码对象的三中方法:
2,Java中的内省技术:
概念:用来获得JavaBean的属性及属性的get或set方法.JavaBean:就是一个满足了特定格式的 Java类:
*需要提供无参数的构造方法:
* 属性私有
* 对私有的属性提供public的get/set方法.
3,JSP + Servlet + JavaBean 称为MVC的设计模式.
MVC:
M:Model:模型层
V:View:视图层
C:Controller:控制层
4,属性由get/set方法决定
5,MYSQL数据库事务是默认提交的,Qracle数据库事务默认是不自动提交的。
手动开启事务:
start transaction ---开启事务
多条sql:
commit/roolback
设置一个自动提交参数:
show variables like ‘%commit%’;----查看与commit相关参数
set autocommit=0;----将autocommit参数设置为OFF
6,事务的特性:
原子性:强调事务的不可分割性
一致性:强调的是事务的执行的前后,数据的完整性要保持一致
隔离性:一个事务的执行不应该受到其他事务的干扰
持久性:事务一旦结束(提交/回滚)数据就持久保存到了数据库
7,如果不考虑事务的隔离性就会引发一些安全性问题:
一类是读问题(重点)三种:
脏读:一个事务读到了另一个事务还没提交的数据
不可重复读:一个事务读到了另一个事务提交的update数据,导致在当前的事务中多次查询结果不一致
虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致在当前事务中多次查询结果不一致
二类是写问题:
引发两类丢失更新:
8,解决引发的读问题:
设置事务的隔离级别:
read uncommited : 未提交读,脏读不可重复读,虚读都有可能发生
read commited :已提交读,避免脏读,但不可重复读,虚读有可能发生
repeatable : 可重复读。避免脏读,不可重复读,但虚读有可能发生
aerializable: 串行化的,避免脏读,不可重复读,虚读的发生。
MYSQL隔离级别默认是 repeatable,
Oracle默认是read commited
9,EE开发的三层结构:
客户端层:HTML,CSS,JS,(之前是Java Applet)
WEB层:Servlet+JSP
业务层:EJB
持久层:
异步AJax
异步AJax:
原生的JS写法实现
框架的
1,AJAX概述:
- AJAX:异步的 JavaScript And Xml。
- 异步与同步区别:
- AJAX的功能:完成页面的局部刷新,不中断用户的体验。
- 早期时候JS技术根本不受重视,后台开发人员经常将JS当成一种玩具语言。后来发现JS中有一个对象XMLHttpRequest对象 可以向服务器异步发送请求
2,XMLHttpRequest:
- 属性:
- readyState :XMLHttpRequsest的状态:
- 0(未初始化):对象已建立未初始化
- 1(初始化):对象已建立,尚未调用send方法
- 2(发送数据):send方法 已调用,但是当前的状态及http头未知
- 3(数据传送中):已接受部分数据,因为响应及http头不全,这时通过resposeBode和responseText获取部分数据会出现错误。
- 4(完成):数据接受完毕,此时可以通过responseBody和responseText获取完整的回应数据。
- onreadystatechage :当XMLHttpRequest状态改变的时候触发一个函数
- status
- responseText;
- responseXML
- 方法:
- open(请求方式,请求路径,是否异步):异步去向服务器发送请求
- send(请求参数):发送请求
- setRequestHeader(头信息,头的值):处理POST请求方式的中文问题
- 创建XMLHttpRequest对象:
- IE:将XMLHttpRequest对象封装在一个ActtiveXObject组件
- Firefox:直接就可以创建XMLHttpRequest对象。
3,JQuery的AJAX:
- 部分方法
- JQ的对象.load(路径,参数,回调函数);
- $.get(路径,参数,回调函数,数据类型);
- $.post(路径,参数,回调函数,数据类型);
- $.ajax();
- serialize(); -- JQ的AJAX传递参数的时候需要使用的方法.
xml/json
1,AJAX的响应的数据:
文本,一段HTML的数据,XML,JSON
2,Json:
- 键值对形式,可以直接被Js识别
- 表示形式;
- 概述:
- JSON的数据格式的介绍
- {“id”:1,“name”:aaa}
- [{"id":1,"name":aaa},{"id":2,"name":bbb}]
- JSON的生成工具:
3,监听器Listener
- 概念:就是一个Java类,用来监听其他Java的状态的变化
- 用途:
- 用来监听其他的对象的变化
- 主要应用在图形化的界面中比较多
- 术语:
- 事件源:指的是被监听的对象。(汽车)
- 监听器:指的是监听的对象。(报警器)
- 事件源与监听器的绑定:在汽车上安装报警器
- 事件:指的是事件源的改变。(踹汽车一脚)
- WEB中的监听器:
- WEB中的Listener和Filter是属于Servlet规范中的高级的技术
- WEB中的监听器共有三类八种(监听三个域对象)
- 事件源:Servlet中的三个域对象。ServletContext,HttpSession,ServletRequest
- 监听器:自定义实现8个接口
- 事件源和监听器的绑定:配置。
- WEB中的监听器分类(三类八中):
- 一类:监听三个域对象的创建和销毁的监听器
- ServletContextListener
- HttpSessionListener
- ServletRequestListener
- 二类:监听三个域对象的属性变更的监听器(属性添加,移除,替换):
* ServletContextAttributeListener
* HttpSessionAttributeListener
* ServletRequestAttributeListener
- 三类:监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
* HttpSessionBindingListener
* HttpSessionActivationListener
- WEB中的监听器的使用:编写一个类实现监听器的接口:通过配置文件配置监听器
|
|