实例一 会员注册唯一性检查
会员注册唯一性检查是所有会员系统的基本功能之一。在本实例中,会员注册唯一性检查的业务逻辑由一个名为CheckUser的HttpServlet来实现,CheckUser在web.xml中配置后,在会员注册界面checkUser.jsp中使用AJAX技术异步调用CheckUser完成会员注册有效性的检查
一:CheckUser.java
package demo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CheckUser extends HttpServlet{
public void destory(){
super.destroy();
}
public void doGet(HttpServletRequest request,HttpServletResponse response){
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response){
response.setContentType("text/html");
try {
PrintWriter out =response.getWriter();
//这里假设注册了四个用户
String[] logined ={"admin","tom","hanks","qingxin"};
//接受从客户端提交的loginName参数
String loginName =request.getParameter("loginName");
//创建一个存放相应内容的字符串
String responseContext ="true";
for(int i=-0;i<logined.length;i++){
if(loginName.equals(logined[i])){
responseContext="false";
}
}
//将处理结果返回客户端
out.println(responseContext);
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void init() throws ServletException{}
}
2.checkUser在web.xml中的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- CheckUser 配置始 -->
<servlet>
<servlet-name>CheckUser</servlet-name>
<servlet-class>demo.CheckUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckUser</servlet-name>
<url-pattern>/CheckUser</url-pattern>
</servlet-mapping>
<!-- CheckUser配置终 -->
</web-app>
3.使用Ajax技术的测试页面checkUser.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
//定义一个用于存放XMlHttpRequest对象
var xmlHttp;
//该函数用于创建一个XMLHttpRequest对象
function createXMLHttprequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTp");
} else if (window.XMLHttprequest) {
xmlHttp = new XMLHttpRequest();
}
}
//这是一个用于启动AJAX异步通信的方法
function beginCheck() {
var tempLoginName = document.all.loginName.value;
if (tempLoginName == "") {
alert("对不起,请输入注册名!");
return;
}
//创建一个XMLHttpRequest对象
createXMLHttprequest();
//将状态触发器绑定到一个函数
xmlHttp.onreadystatechange = processor;
//通过Get方法向指定的URL建立服务器的调用
xmlHttp.open("GET", "CheckUser?loginName=" + tempLoginName);
//发送请求
xmlHttp.send(null);
}
//这是一个用于处理状态改变的函数
function processor() {
//定义一个变量用于存放从服务器返回相应的结果
var responseContext;
if (xmlHttp.readyState == 4) { //如果相应完成
if (xmlHttp.status == 200) { //如果返回成功
//取出服务器的相应内容
responseContext = xmlHttp.responseText;
if (responseContext.indexOf("true") != -1) {
alert("恭喜你,该注册名有效!");
} else {
alert("对不起,该注册名已经被使用!");
}
}
}
}
</script>
<title>注册用户唯一性检查</title>
</head>
<body>
<form action="form1" action="CheckUser" method="post">
请输入注册用户名:
<input name="loginName" type="text" id="loginName" />
<input type="button" name="checkLoginName" value="有效性检查"
οnclick=beginCheck();>
</form>
</body>
</html>