charsetgb18030 httpServletResponse.setContentTypetext/htmlcharsetutf-8 PrintWriter out httpServletResponse.getWriter Integer inte Integer httpServletRequest.getSession.getAttributetotal int temp 0 if inte null temp 1 else temp inte.intValue 1 httpServletRequest.getSession.setAttributetotaltemp //1.取参数 String old httpServletRequest.getParametername //String name new Stringold.getBytesiso8859-1UTF-8 String name URLDecoder.decodeoldUTF-8 //2.检查参数是否有问题 ifold null old.length 0 out.println用户名不能为空 else // String name URLDecoder.decodeoldUTF-8 // byte by old.getBytesISO8859-1 // String name new Stringbyutf-8 // String name URLDecoder.decodeoldutf-8 //3.校验操作 // String name old ifname.equalswangxingkui //4。
和传统应用不同之处。
这一步需要将用户感兴趣的数据返回给页面段而不是将一个新的页面发送给用户 //写法没有变化本质发生了改变 out.println用户名 name 已经存在请使用其他用户名 temp else out.println用户名 name 尚未存在可以使用该用户名注册 temp catchException e e.printStackTrace AJAX还有一个比较重要那就是XMLHttpRequest。
下面给出例2. 使用XMLHttpRequest进行用户名验证其中xmlHttpRequest考虑了多中浏览器的兼容问题。
这些一般也就是一个套路了以后也就没有必要再写创建XMLHttpRequest对象的代码了这些都可以进行复用软件工程的思想后面实际上也要考虑Servlet传回来的数据的类型html的文本格式还是xml格式的这里就不再详述了。
//例2.使用XMLHttpRequest进行用户名验证 //用户名校验的方法 //这个方法将使用XMLHTTPRequest对象来进行AJAX的异步数据交互 var xmlhttp function verify //0。
使用dom的方式获取文本框中的值 //document.getElementByIduserName是dom中获取元素节点的一种方法一个元素节点对应HTML页面中的一个标签如果 //。
value可以获取一个元素节点的value属性值 var userName document.getElementByIduserName.value //1.创建XMLHttpRequest对象 //这是XMLHttpReuquest对象无部使用中最复杂的一步 //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码 if window.XMLHttpRequest //针对FireFoxMozillarOperaSafariIE7IE8 xmlhttp new XMLHttpRequest //针对某些特定版本的mozillar浏览器的BUG进行修正 if xmlhttp.overrideMimeType xmlhttp.overrideMimeTypetext/xml else if window.ActiveXObject //针对IE6IE5.5IE5 //两个可以用于创建XMLHTTPRequest对象的控件名称保存在一个js的数组中 //排在前面的版本较新 var activexName MSXML2.XMLHTTPMicrosoft.XMLHTTP for var i 0 i activexName.length i try //取出一个控件名进行创建如果创建成功就终止循环 //如果创建失败回抛出异常然后可以继续循环继续尝试创建 xmlhttp new ActiveXObjectactivexNamei break catche //确认XMLHTtpRequest对象创建成功 if xmlhttp alertXMLHttpRequest对象创建失败 return else alertxmlhttp.readyState //2.注册回调函数 //注册回调函数时之需要函数名不要加括号 //我们需要将函数名注册如果加上括号就会把函数的返回值注册上这是错误的 xmlhttp.onreadystatechange callback //3。
设置连接信息 //第一个参数表示http的请求方式支持所有http的请求方式主要使用get和post //第二个参数表示请求的url地址get方式请求的参数也在url中 //第三个参数表示采用异步还是同步方式交互true表示异步 xmlhttp.openGETAJAXServername userNametrue //POST方式请求的代码 //xmlhttp.openPOSTAJAXServertrue //POST方式需要自己设置http的请求头 //xmlhttp.setRequestHeaderContent-Typeapplication/x-www-form-urlencoded //POST方式发送数据 //xmlhttp.sendname userName //4.发送数据开始和服务器端进行交互 //同步方式下send这句话会在服务器段数据回来后才执行完