1、 register.jsp页面代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
11、heckNode = function(_node){ var nodeId = _node.id; if(_node.value!=""){ var xmlHttp=this.createXmlHttp(); xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState==4){ Checker.showInfo(nodeId+Checker._infoDivSuff
12、ix,xmlHttp.responseText); } } xmlHttp.open("POST",this._url,true); xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //alert(_node.id); //alert(_node.value); xmlHttp.send("name=
13、"+nodeId+"&value="+(_node.value)); } } //显示服务器反馈信息 this.showInfo = function(_infoDivId , text){ var infoDiv = document.getElementById(_infoDivId); //获取显示信息的div var status = text.substr(0,1); //反馈信息的第一个字符表示信息类型 if (status == "1") {
14、 infoDiv.className = "ok"; //检查结果正常 } else { infoDiv.className = "warning"; //检查结果需要用户修改 } infoDiv.innerHTML = text.substr(1); //写回详细信息 } //用于创建XMLHttpRequest 对象 this.createXmlHttp = function() { var xmlHttp = nu
15、ll; //根据window.XMLHttpRequest 对象是否存在使用不同的创建方式 if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); //FireFox、Opera 等浏览器支持的创建方式 } else { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE 浏览器支持的创建方式 } return xml
16、Http; } //检查两次输入的密码是否一致 this.checkPassword = function() { var p1 = document.getElementById("password").value; //获取密码 var p2 = document.getElementById("password2").value; //获取验证密码 //当两部分密码都输入完毕后进行判断 if (p1 != "" && p2 != "") {
17、 if (p1 != p2) { this.showInfo("password2" + Checker._infoDivSuffix, "0 密码验证与密码不一致。"); } else { this.showInfo("password2" + Checker._infoDivSuffix, "1 两次密码输入正确") } } else if (p1 != nul
18、l) { this.showInfo("password" + Checker._infoDivSuffix, "1"); } } } 验证码code.jsp代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page contentType="image/png" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <% Str
19、ing path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
20、
<% //设置页面不缓存 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); int width=50; //设置图片宽度 int height=20; // 设置图片高度 //创建缓存图像 B21、ufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); // 获取图形 g.setColor(new Color(000, 102, 153)); // 设置背景色 g.fillRect(0, 0, width, height); // 填充背景 g.setColor(new Color(000, 0
22、00, 000)); // 设置边框颜色 g.drawRect(0, 0, width-1, height-1); // 绘制边框 g.setFont(new Font("Arial", Font.PLAIN, 16)); //设定字体 Random random = new Random(); // 生成随机类 //随机产生4 位数字验证码 StringBuffer sbRan = new StringBuffer(); //保存验证码文本 for
23、int i=0; i<4; i++){ String ranNum = String.valueOf(random.nextInt(10)); sbRan.append(ranNum); //将验证码绘制到图像中 g.setColor(new Color(255, 255, 255)); g.drawString(ranNum, 10 * i + 5, 16); } g.dispose(); //部署图像 session.
24、setAttribute("_CODE_", sbRan.toString()); // 将验证码保存在session 对象中供对比 ImageIO.write(image, "PNG", response.getOutputStream()); //输出图像到页面 out.clear(); out = pageContext.pushBody(); %> UserAction代码如下: package register; import javax.servlet.http.HttpSer
25、vletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport implements Servlet
26、RequestAware ,ServletResponseAware{ /** * */ private static final long serialVersionUID = 1L; private HttpServletRequest request; private HttpServletResponse response; private UserDAO dao = new UserDAOImpl(); public void setServletRequest(HttpServletReque
27、st request) { this.request =request; } public void setServletResponse(HttpServletResponse response) { this.response = response; } @Override public String execute() throws Exception { String name = request.getParameter("name"); String value
28、 = request.getParameter("value"); // System.out.println(name); //System.out.println(value); String info = null; response.setContentType("text/html;charset=utf-8"); if("code".equals(name)){ String sessionCode = (String)request.getSession().getA
29、ttribute("_CODE_"); // System.out.println(sessionCode); if(value!=null && value.equals(sessionCode)){ response.getWriter().println("1验证码正确"); }else{ response.getWriter().println("0验证码错误"); } }else{
30、 if("username".equals(name)){ info="用户名"; }else if("email".equals(name)){ info="邮件地址"; } // System.out.println(dao.querySameValue(name, value)); if(dao.querySameValue(name, value)){ response.getWriter().println("0该"+info+"已存在,请更换"+info+"."); }else{ response.getWriter().println("1该"+info+"可以正常使用"); } } return null; } }






