Java Web笔记三

来源:互联网 发布:二分折半查找范围算法 编辑:程序博客网 时间:2024/06/06 09:53

 

FORWARD表示内部转发指指定资源,才经过该过滤器

 

 

 

监听器:

ServletContextListener 上下文监听器 在服务器启动的时候创建,在修改代码后保存时,会先销毁,在创建

 

ServletContextAttributeListener上下文对象属性监听器

 

HttpSessionBindingListener 是为唯一一个不需要注册的监听器

 

 

AJAX 基础:

涉及7项技术: javascript 、XMLHttpRequest、Dom、css、html、XML以及相关服务器的API

创建:

var ajaxObj;

         //创建AJAX对象,利用该对象代替form表单向服务器发送请求

         functioncreateAJAX() {

                   if(window.ActiveXObject) { //IE

                            ajaxObj= new ActiveXObject("Microsoft.XMLHTTP");

                   }else if (window.XMLHttpRequest) {//firefox

                            ajaxObj= new XMLHttpRequest();

                   }

         }

 

用get方式提交(不能有中文,中文需要用post):

 

function check() {

                   createAJAX();

                   //alert(ajaxObj);

                   varnameTxt = document.getElementById("userName").value;

                   //向服务器发送一个异步请求,第一个参数为请求方式,第二个参数为URL,get方式需要在后面附加表单数据

                   //第三个参数固定为true,表示发出的是异步请求

                   ajaxObj.open("GET","/ajax/checkName?userName=" + nameTxt, true);

                   //当准备状态变化时,调用press函数,利用该函数处理响应信息

                   ajaxObj.onreadystatechange= press;

                   //设置请求消息体,并将请求发送给服务器。对于GET方式而言,消息体为空

                   ajaxObj.send(null);

         }

 

 

用POST方式提交

 

function checkPost(){

                   createAJAX();

                   varnameTxt= document.getElementById("userName").value;

                   ajaxObj.open("post","/ajax/checkName",true);

                   //设置请求头,指定请求消息的内容格式为键值对方式的表单数据

                   ajaxObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

                   ajaxObj.onreadystatechange= press;

                   ajaxObj.send("userName="+nameTxt);

                  

         }

 

使用JQuery的方式来实现ajax:

 

function check(){

                   //向服务器发送post方式的异步请求。第一个参数为URL,第二个参数为表单数据的键值对

                   //第三个参数为回调函数,用于处理响应信息,参数为响应信息的消息体内容

                   $.post("/ajax/checkName","userName="+$("#userName").val(),

                                     function(data){

                            if(data=="ok"){

                                     $("#nameSpan").html("该用户已存在");

                                     $("#nameSpan").css({"color":"red"});

                            }else{

                                     $("#nameSpan").html("可以使用");

                                     $("#nameSpan").css({"color":"green"});        

                            }

                   });

         }

 

 

同步提交和异步提交:

表单提交、超链接提交、浏览器访问servlet都属于同步提交,这时。响应信息会直接显示在客户端浏览器中,并且将客户端原来的内容全部清空。

当客户端发出AJAX请求,为异步提交。这时,响应信息会由客户端的js对象进行接收。完成JS处理后,再将处理结果显示在页面。不会清空客户端页面原来的内容。实现页面的局部刷新。由于异步提交,只更新页面一块儿内容,所以客户端和服务器之间交互的数据较少,速度较快。

 

<input type=”submit” onclick=”check()”>写法错误,不能给服务器同时提交两种提交方式

 

 

把字符串转换为JSON格式

 

方法一利用eval

如eval(“(”+jsonObj+”)”)

 

方法二,在方法里面添加参数

$.post(“/json/aaa”,”test=”+test,function(data){},”json”)

 

 

 

 

 

 

失血模型:一个类中只有属性及属性的get/set方法,而没有逻辑处理方法

贫血模型:一个类中除了有属性外,另外提供处理本类中属性的方法,但是不涉及业务和持久化。

充血模型:一个类中除了有属性外,另外提供处理和保存属性的方法,但不涉及业务方法。(dao)

涨血模型:一个类中除了有属性外,另外提供处理、保存和该类相关的业务方法。(dao以及service)

 

 

将对象转换为JSON格式的字符串:

JSON.stringify(OBJ);

 

 

泛型:在一个类中使用<T> 可以给该类定义泛型。如果产生该类的对象时,可以指定T的类型。那么在该类的方法中,凡事引用T的地方,要求必须和定义该类对象时指定的类型一致。

 

 

 

                            ps=con.prepareStatement("insertinto t_order(o_name,o_address,o_tel)"

                                               +"values(?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS);

PreparedStatement.RETURN_GENERATED_KEYS

会将新增记录的自动增长列,放入结果集

 

//得到自动增长列的值

                            set=ps.getGeneratedKeys();

                            if(set.next()){

                                     return set.getInt(1);

                            }

0 0