本帖最后由 kunwenli 于 2018-5-27 16:11 编辑
[石家庄校区]web阶段笔记
#--day19--
背后的思想:程序的解耦和
## JDBC的事务管理
事务的管理的对象:Connection conn
### 事务管理的核心的思想:
逻辑上的一组操作使用的是同一个Connection对象
### 事务管理的核心步骤:
开启事务:conn.setAutoCommit(false)
业务逻辑的操作
所有的业务逻辑操作都成功后提交事务:conn.commit()
一旦有异常回滚事务:conn.rollback()
### 事务特性及问题(面试)
#### ACID特性
原子性 一致性 隔离性 持久性
#### 不考虑隔离性引发的问题
脏读:一个事务读到了另一个事务未提交的数据
不可重复读:一个事务读到了另一个事务已经提交的update数据,导致前后查询结果不一致
虚读/幻读:一个事务读到了另一个事务已经提交的insert数据,导致前后查询结果不一致
#### 隔离级别
read uncommitted
read committed
repeatable read
serializable
#--day21--
1.
原生的异步代码
如果将来用到可以改以下几部分
3请求路径部分,get方式就用这种,换一下路径
如果是get方式可以将项目名称写成活的更灵活
在jsp中写一段接收代码,但是这段代码必须写在引入此js文件的上面
var contextPath = '${ pageContext.request.contextPath }';
在js中在路径部分写context+"路径"
将数据写到输出,即以下的将数据写到div中部分,这部分写自己的业务逻辑代码
function ajax_get() {
// 1.创建异步对象
var xhr = createXMLHttp();
// 2.设置状态改变的监听 回调函数.
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){ // 请求发送成功
if(xhr.status == 200){ // 响应也成功
// 获得响应的数据:
var data = xhr.responseText;
// 将数据写入到DIV中:
document.getElementById("d1").innerHTML = data;
}
}
}
// 3.设置请求路径
xhr.open("GET","/day15/ServletDemo1?name=aaa&pass=123",true);
// 4.发送请求
xhr.send(null);
}
function createXMLHttp() {
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {// Internet Explorer
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
return xmlHttp;
}
2.
("#form1").serialize()将表单序列化,相当于将表表单中的值实现了键值对的形式
3.
## 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(){ //不管成功还是失败都执行
}
});
```
#--day22--
1.
监听器:Listener
* 事件源:指的是被监听的对象.(汽车)
* 监听器:值的是监听的对象.(报警器)
* 事件源与监听器的绑定:就是在汽车上安装报警器.
* 事件:指的是事件源的改变.(踹汽车一脚)---主要的功能获得事件源对象.
WEB中的监听器:
WEB中的Listener和Filter是属于Servlet规范中的高级的技术.
WEB中的监听器共有三类八种(监听三个域对象)
* 事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
* 监听器:自定义类实现8个接口.
* 事件源和监听器的绑定:配置.
一类:监听三个域对象的创建和销毁的监听器:
ServletContextListener:监听ServletContext对象的创建和销毁:
【ServletContext对象的创建和销毁】:
* 创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
* 销毁:服务器关闭或者项目从服务器中移除的时候.
json异步
servlet代码:
//创建JsonConfig对象,来调用JsonConfig的一个方法,这个方法可以去除也就是不包含那个属性
JsonConfig jsonConfig = new JsonConfig();
//setExcludes方法里面传一个字符串数组就new string[]数组后面是属性名例如:{"pid"}
jsonConfig.setExcludes(new String[]{"pid"});
//创建JSONArray对象来接收,JSONArray调用fromObject的数据,方法中传入的参数为上面查询的集合或是其他的,还可传jsonConfig对象
//集合,数组用JSONArray map,对象用JSONObject
JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig);
//在控制台打印,看效果
System.out.println(jsonArray.toString());
//解决post方式乱码
response.setContentType("text/html;charset=utf-8");
//服务器响应,输出数据
response.getWriter().println(jsonArray.toString());
js代码:
$(function(){
//为省绑定下拉列表改变事件
$("#province").on("change",function(){
//获得下拉列表中的省的值
var pid = $(this).val();
$.post(
"/day21/ServletDemo4",
{"pid":pid},
function(data){
var $city = $("#city");
//替换上次遍历的值
$city.html("<option>-请选择-</option>");
$(data).each(function(i,n){
$city.append("<option value='"+n.cid+"'>"+n.cname+"</option>");
});
},"json");
});
}); |
|