AJAX异步和JSON ThreadLocal
作用:把指定对象绑定到当前线程中
把指定对象绑定到当前线程中:
ThreadLocal<绑定对象 T >
方法:
get() 获取当前对象
set(绑定对象) 设置当前对象
例子:
ThreadLocal<对象> xx = new ThreadLocal<>();
事务的特性
原子性:强调事务的不可分割
一致性:保证数据的完整性前后保持一致
隔离性:一个事务在执行(操作数据)时,保证不受其他事务的干扰
不考虑事务的隔离性,引发一些安全性问题:
脏读: 一个事务读到另一个事务还没有提交的数据
不可重复读: 一个事物读到了另一个事务已经提交的update数据
1.执行事务前被查询一次(一个结果),执行完事务后,又查询一次(另外一种结果)
持久性:一旦提交,数据永久性写到数据库
事务隔离级别:
read uncommitted :未提交读,脏读,不可重复读,虚读都可能发生
read committed :已提交读,避免脏读,但是不可重复读和虚读有可能发生
repeatable read :可重复读,避免脏读,不可重复读,虚读
EE经典三层:
客户端层
WEB层
业务层
持久层
---------
UUID
生成随机字符串类
randomUUID() 生成随机字符串
解决重复提交问题
表单提交时省城随机字符串,提交上传一份
Session存储一份,存储完之后删除Session中随机字符串
分页实现
物理分页:
缺点:经常需要和数据库交互,点一页查询一页
优点:数量特别大时不会导致内存溢出
逻辑分页:
缺点:如果数据量打容易导致内存溢出
优点:与数据库交互次数少
MySQL:
limit :控制分页
Oracle:使用SQL嵌套
AJAX
AJAX:JavaScript And XML
作用:
传统页面整个页面刷新,异步只会加载某个部分
代码实现:
XMLHttpRequest
属性:
onreadystatechange :当XMLHttpRequest状态改变时触发函数
readyState :当前请求状态
0 未初始化
1 初始化
2 发送数据
3 数据传送中
4 完成
status :返回页面响的状态码
responseText :获得相应的文本数据
responseXML :获取相应的XML数据
方法:
open(请求方法,请求路径,是否异步) :一部去向服务器发送请求
send(请求参数) :发送请求
setRequestHeader(头信息,头的值) :处理Post请求方式的中文问题
创建XMLHttpRequest对象:
IE :将XMLHttpRequest对象封装在一个ActiveXObject组件。
Firefox :直接就可以创建XMLHttpRequest
异步整体步骤:
1.创建异步对象
2.设置请求状态改变监听 onreadystatechange
监听下判断响应后状态码是不是响应成功
成功后获取响应后数据
3.设置请求路径
GET:
open("Get".....)
Post:
open("POST".....)
4.发送请求
Get
send(NULL)
POST:
send("xx=xxx&xxxx=xxx.....");
JQuery AJAX封装
三种方法
JQ对象.load(路径,参数,回调方法(响应回来的数据){....})
请求完后自动把相应的数据方法到JQ对象中
$.get(路径,参数,回调方法)
$.post(路径,参数,回调方法)
$.ajax() 自定义AJAX方法
ajax({
键:值,
...
})
complete:fun 执行完异步(不管成功失败)
success:fun 成功后执行
error:fun 错误后执行
JQ对象.serialize() 把form表单数据转换成JQuery请求AJAX传递的参数
---------
JSON
AJAX响应数据类型:
文本,HTML数据,XML,JSO四种
JSON数据格式:
简单写法:
{键:值}
[{键:值},{键:值}]
复杂写法:
{
键:{“键”:值,键:值}
....
}
xStream 可以把集合数组对象转换成XML
方法:
toXML() 把指定对象转换成xml字符串
alias("类名",Class对象) 转换成XML后,节点名是指定名称(默认节点名时包名+类名)
useAttributeFor(Class,String(属性)) 把实体类属性当作节点属性
JQuery解析XML
JQ对象
方法:
数组 find(字符串) 查找DOM树中的指定所有节点
节点 children(字符串) 查找DOM中制定单个节点
字符串 text() 获取节点下文本
JSONLIB生成工具
JSONArray :将数组转换成JSON
JSONArray fromObject(Object) 创建JSONArray对象/指定对象转换成JSON格式
JSONObject :把MAP集合转换成JSON
JSONConifg配置:
setExcludes(new String[]{String (排除的字段)})
fromObject(Object,JSONConfig配置对象)
监听器Listener:
1.事件源
2.监听器
3.事件源和监听器的绑定
4.事件
WEB中的监听器:
WEB中监听器三类八种:
三类:
一类:监听创建和销毁
1.监听三个域对象的创建和销毁的监听器
ServletContextListener
HttpSessionListener
ServletRequestListener
二类:监听属性改变添加
2.监听三个域对象的属性变更的监听器
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
三类:监听JavaBean状态改变
不用配置,让实体类实现
3.监听HttpSession中的JavaBean的状态绑定
HttpSessionBindListener
HttpSessionActivationListener
使用监听器:
创建类 实现 xxxxListener
在xml配置
<listener>
<listener-class>类路径</listener-class>
</listener>
监听器应用:
1.加载框架时的配置文件
2.定时任务
优化Session
1.配置Context标签配置定时session序列化
在tomcat/conf/context.xml中配置Context 所有主机和所有路径都会
在tomcat/confg/Catalina/localhost/context.xml配置
|
|