黑马程序员技术交流社区

标题: 【石家庄校区】学习笔记(MVC,AJAX,JSON等) [打印本页]

作者: 笑也要笑疯狂    时间: 2018-5-27 16:10
标题: 【石家庄校区】学习笔记(MVC,AJAX,JSON等)
本帖最后由 笑也要笑疯狂 于 2018-5-27 16:25 编辑

MVC
service获取表单元素的value时,该表单元素一定要写上value值.
超链接的href属性和onclick()事件同时使用时,一定将href属性href="#"注销掉,
        否则,不执行onclick()时间,跳转到当前页面.
location.href="",超链接<a href="">和<form action="">跳转时,
        location.href,<a>默认提交方式是get
        form指定get或者post.
        这就要求后台根据get或post进行处理.
        
ACID特性:
        原子性,一致性,隔离性,持久性
隔离性导致的问题.
        脏读:读到另一个事务未提交的数据
        不可重复读:读到另一个事务提交的update数据,导致两次读到的数据不一致
        虚读/幻读:读到另一个事务提交的insert数据,导致两次查询的数据不一致
增删改查和分页
        int类型可以设置自动增长auto_increment
        String类型需要手动设置其唯一性,可以使用UUID.randomUUID()或者UUID+时间戳的方式.
添加功能要防止表单重复提高,采用令牌机制.
        表单提交会把隐藏的字段也提交.
        
        被双引号引起来的${}表达式就不用再用单引号引起来了.(视情况而定)
        "${pageContext.request.contextPath }/ProductFindByIdServlet?pid=${p.pid }"
        "del('${p.pid}')"
        
        分页SQL语句
        select * from xxx where... group by... having... order by... limit ?,?;
AJAX
同步和异步的区别:
        同步:一步一步顺序执行.(用户需要等待,页面全部刷新)
        异步:同时进行.(不需要等待,页面局部刷新)
功能:完成页面局部刷新(通过XML/JSON)
XMLHttpRequest:
        readystate:0-4        4请求发送成功.
        onreadystatechange:状态改变时触发
        status:响应状态.200成功,404失败...
        responseTest:获得响应文本
        responseXML:获得响应的XML
        
        open(请求方式,请求路径,是否异步):异步向服务器发送请求
                在js文件中把路径写活可以采用在jsp<script></script>中使用
                        var contextPath=${pageContext.request.contextPath}的方式.
        send(请求参数):发送请求,传递参数
        setRequestHeader(头信息,头的值):处理post请求方式的中文问题
        
创建XMLHttpRequest对象:
IE:ActiveXObject
Firefox:XMLHttpRequest

$("#form1").serialize();只要表单中有name属性,就获取其值,转换成json形式.
比如:$.get("路径",$("#form1").serialize(),function(){});

$.get(),$.post()不能定制,定制应采用$.ajax(),参数type:post/get,url,data,dataType:xml/text等,success,complete等
$.ajax()相当重要.!!!一定要会.
        $ajax({
        url:"",
        type:"POST",
        data:{
                "":"",
                "":""
        };
        success:function(){}
        error:function(){}
        complete:function(){}
        });

异步操作步骤:
        1.定义触发事件
        2.获得参数
        3.确定是哪个访问方法.($.get(),$.post(),$.ajax())
        4.完善function()内的业务
        5.写访问的servlet代码.

function createXMLHttp(){
        var xmlHttp;
        try{//Firefox,Opera 8.0+,Safari
                xmlHttp=new XMLHttpRequest();
        }catch(e){
                try{
                        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                }catch(e){
                        try{
                                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                        }catch(e){
                        }
                }
        }
        return xmlHttp;
}

XStream:
        xStream.alias("Area",Area.class)
        xStream.toXML(area);
        响应xml后,ajax接收包装成$(data)对象.再对文档进行操作.
        特别提醒:解析标签最好一层一层的解析...
JSON和监听器
JSON
格式:对象表示为键值对;{}表示对象;[]表示数组;
JSONArray:转换数组和list
JSONObject:转换对象和map
        fromObject()
JsonConfig
        jsonConfig.setExcludes(new String[]{""}) 在json队形中去除某些属性.
注意:遇到[]数组就遍历$.each();

监听器:监听其他Java状态的变化.

事件源:被监听的对象
监听器:监听对象
事件源与监听器绑定
时间:事件源的改变

事件源:三个域对象(ServletContext,HttpSession,ServletRequest)
监听器:实现8个接口
事件源和监听器的绑定:配置

三类八种:
1.监听三个域对象的创建和销毁
2.监听三个域对象属性的变化
3.监听HttpSession中JavaBean状态的改变(绑定,解除绑定,活化,钝化)

ServletContextListener:监听ServletContext的创建和销毁.
web.xml配置:<listener>
                <listener-class></listenner-class>
        </listener>
企业中的应用:
        1.加载框架的配置文件:Spring框架的ContextLoaderListener继承了ServletContextListener
        2.定时任务调度:Timer的schedule方法,TimerTask
        
        重要!!程序启动耗时的资源可以放在实现ServletContextListener监听器的类中.
        
HttpSession在访问JSP时会被创建(session是JSP的内置对象,肯定会调用getSession).
        访问servlet和HTML时不会被创建.






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