本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7586962
建立时间:2006年5月29日




[Java Open Source]动态检查文本框中的数据
软件技术

lhwork 发表于 2006/7/24 10:17:51

ajax技术现在越来越受到大家的欢迎,因为它能很好的解决一些以前不好解决的问题,动态检查文本框中的数据就是体现之一。现在已经加上了数据库mysql,可以说得上是一个比较完整的例子了。下面就是怎样实现动态检查文本框中的数据一个例子:工程目录如下:500)this.width=500'>CheckServlet.java:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/** *  */package com;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author Administrator * */public class CheckServlet extends HttpServlet {    public String[] usernameList;        public CheckServlet() {        super();        // TODO Auto-generated constructor stub    }        private boolean IsContain(String param){        for(int i=0;i<usernameList.length;i++){            if(usernameList[i].equals(param)){                return true;            }else{                continue;            }        }        return false;    }        public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{        String username=(String)request.getParameter("username");        String password=(String)request.getParameter("password");        String repassword=(String)request.getParameter("repassword");        String email=(String)request.getParameter("email");                if(username.equals("")||username==null){            request.setAttribute("error.message","用户名不能为空!");            RequestDispatcher requsetDispatcher=request.getRequestDispatcher("error.jsp");            requsetDispatcher.forward(request,response);        }else if(password.equals("")||password==null){            request.setAttribute("error.message","密码不能为空!");            RequestDispatcher requsetDispatcher=request.getRequestDispatcher("error.jsp");            requsetDispatcher.forward(request,response);        }else if(!password.equals(repassword)){            request.setAttribute("error.message","两次输入的密码不一致!");            RequestDispatcher requsetDispatcher=request.getRequestDispatcher("error.jsp");            requsetDispatcher.forward(request,response);        }else if(this.IsContain(username)){            request.setAttribute("error.message","您输入的用户名已经存在!");            RequestDispatcher requsetDispatcher=request.getRequestDispatcher("error.jsp");            requsetDispatcher.forward(request,response);        }else{            RequestDispatcher requsetDispatcher=request.getRequestDispatcher("success.jsp");            requsetDispatcher.forward(request,response);        }    }        public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{        doGet(request,response);    }        public void init(ServletConfig config) throws ServletException{        usernameList=new String[]{"Tom","Jerry","Brain"};    }    }PreServlet.java: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com;import java.io.IOException;import java.io.PrintWriter;import java.util.Iterator;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class PreServlet extends HttpServlet {    public List usernameList;     /**     * Constructor of the object.     */    public PreServlet() {        super();    }    /**     * Destruction of the servlet. <br>     */    public void destroy() {        super.destroy(); // Just puts "destroy" string in log        // Put your code here    }    /**     * The doGet method of the servlet. <br>     *     * This method is called when a form has its tag value method equals to get.     *      * @param request the request send by the client to the server     * @param response the response send by the server to the client     * @throws ServletException if an error occurred     * @throws IOException if an error occurred     */    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/xml");        response.setHeader("Cache-Control","no-cache");        String username=(String)request.getParameter("user_name");        System.out.println(username);        String xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";        if(username.equals("")||username==null){            xml+="<message><info>Username is required!</info></message>";        }        else if(this.IsContain(username)){            xml+="<message><info>The username has existes,Please choose other username!</info></message>";        }    else{            xml+="<message><info>Username is approved!</info></message>";        }        response.getWriter().write(xml);    }    /**     * The doPost method of the servlet. <br>     *     * This method is called when a form has its tag value method equals to post.     *      * @param request the request send by the client to the server     * @param response the response send by the server to the client     * @throws ServletException if an error occurred     * @throws IOException if an error occurred     */    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request,response);    }    /**     * Initialization of the servlet. <br>     *     * @throws ServletException if an error occure     */    public void init() throws ServletException {        // Put your code here        DBOperator dBOperator=new DBOperator();        usernameList=dBOperator.getUsernameList();    }        private boolean IsContain(String param){       //这里修改了以前的代码,现在是读取数据库的数据。        Iterator it=usernameList.iterator();        while(it.hasNext()){            if(it.next().toString().equals(param)){                return true;            }else{                continue;            }        }        return false;    }}DBOperator.java: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class DBOperator {    public DBOperator(){}        public Connection Connect(){        Connection con = null;        try {            Class.forName("com.mysql.jdbc.Driver").newInstance();            con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root","");        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return con;    }        public List getUsernameList(){        Connection con=Connect();        List usernameList=new ArrayList();        try {            Statement stmt=con.createStatement();            ResultSet rst=stmt.executeQuery("select * from m_stuinfo");            while(rst.next()){                usernameList.add(rst.getString("m_stuinfo_name"));            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return usernameList;    }}index.jsp: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ page language="java" contentType="text/html; charset=utf-8"%><html>    <head>            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">            <title>注册</title>            <SCRIPT type="text/javascript">                var req;                function UsrNameCheck()                {                    var username=document.getElementById('username').value;                    var url="pre?user_name="+username;                                        if(window.XMLHttpRequest)                    {                        req=new XMLHttpRequest();                    }else if(window.ActiveXObject)                    {                        req=new ActiveXObject("Microsoft.XMLHTTP");                    }                                        if(req)                    {                        req.open("GET",url,true);                        req.onreadystatechange=callback;                        req.send(null);                    }                                        function callback()                    {                        if(req.readyState == 4)                        {                            if(req.status == 200)                            {                                parseMessage();                            }else{                                alert("Not able to retrieve description"+req.statusText);                            }                        }else{                            document.getElementById('check_username').innerHTML="正在验证用户名500)this.width=500'>";                        }                    }                                        function parseMessage()                    {                        var xmlDoc=req.responseXML.documentElement;                        alert(xmlDoc);                        var node=xmlDoc.getElementsByTagName('info');                        document.getElementById('check_username').innerHTML=node[0].firstChild.nodeValue;                    }                                        function Form_Submit()                    {                        if(regForm.username.value=="")                        {                            alert("用户名不能为空");                            return false;                        }else if(regForm.password.value=="")                        {                            alert("密码不能为空");                            return false;                        }else if(regForm.password.value!=regForm.repassword.value)                        {                            alert("两次输入的密码不一致");                            return false;                        }                        regForm.submit();                    }                }            </SCRIPT>    </head>    <body>        <div align="center">        <form name="regForm" method="post" action="/reg/regservlet">            <table width="70%" border="1">                <tr align="center">                    <td colspan="2">用户注册</td>                </tr>                <tr>                    <td width="24%" align="center">用户名: </td>                    <td width="76%" ><input name="username" type="text" id="username" onBlur="UsrNameCheck()">                        <SPAN id="check_username"></SPAN>                    </td>                </tr>                <tr>                    <td align="center">密码: </td>                    <td ><input name="password" type="password" id="password"></td>                </tr>                <tr>                    <td align="center">重复密码: </td>                    <td ><input name="repassword" type="password" id="repassword"></td>                </tr>                <tr>                    <td align="center">email: </td>                    <td ><input name="email" type="text" id="email"></td>                </tr>                <tr align="center">                    <td colspan="2"><input type="button" name="Submit" value="提交" onClick="Form_Submit()"></td>                </tr>            </table>        </form>        </div>    </body></html>success.jsp: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ page language="java" contentType="text/html; charset=GB2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><title>注册成功</title></head><body>    恭喜你,注册成功!<br></body></html>error.jsp: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ page language="java" contentType="text/html; charset=GB2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=GB2312">        <title>失败</title>    </head>    <body>        <div align="center">            <table width="70%" border="1">                <tr>                    <td>注册失败</td>                </tr>                <tr>                    <td>&nbsp;<%=(String)request.getAttribute("error.message") %></td>                </tr>                <tr>                    <td><a href="index.jsp">返回注册页</a></td>                </tr>            </table>        </div>    </body></html>web.xml: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"     xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">        <display-name>reg</display-name>        <!-- Action Servlet Configuration -->    <servlet>        <servlet-name>regservlet</servlet-name>        <servlet-class>com.CheckServlet</servlet-class>    </servlet>    <servlet>        <servlet-name>PreServlet</servlet-name>        <servlet-class>com.PreServlet</servlet-class>    </servlet>        <!-- Action Servlet Mapping -->      <servlet-mapping>        <servlet-name>regservlet</servlet-name>        <url-pattern>/regservlet</url-pattern>      </servlet-mapping>    <servlet-mapping>        <servlet-name>PreServlet</servlet-name>        <url-pattern>/pre</url-pattern>    </servlet-mapping>          <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list></web-app>运行结果是:500)this.width=500'>


阅读全文(1564) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144754460 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号