A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kunwenli 中级黑马   /  2018-5-27 16:03  /  410 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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");
        });
});

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马