AJAX基础教程-5 Ajax Validate

java 代码
  1. package ajax.foundations_of_ajax;   
  2.   
  3. import java.io.IOException;   
  4. import java.io.PrintWriter;   
  5. import java.text.ParseException;   
  6. import java.text.SimpleDateFormat;   
  7.   
  8. import javax.servlet.ServletException;   
  9. import javax.servlet.http.HttpServlet;   
  10. import javax.servlet.http.HttpServletRequest;   
  11. import javax.servlet.http.HttpServletResponse;   
  12.   
  13. public class ValidationServlet extends HttpServlet {   
  14.     /**  
  15.      * Handles the HTTP <code>GET</code> method.  
  16.      *   
  17.      * @param request  
  18.      *            servlet request  
  19.      * @param response  
  20.      *            servlet response  
  21.      */  
  22.     protected void doGet(HttpServletRequest request,   
  23.             HttpServletResponse response) throws ServletException, IOException {   
  24.         PrintWriter out = response.getWriter();   
  25.         boolean passed = validateDate(request.getParameter("birthDate"));   
  26.         response.setContentType("text/xml");   
  27.            
  28.         response.setHeader("Cache-Control""no-cache");   
  29.         String message = "You have entered an invalid date.";   
  30.         if (passed) {   
  31.             message = "You have entered a valid date.";   
  32.         }   
  33.         out.println("<response>");   
  34.         out.println("<passed>" + Boolean.toString(passed) + "</passed>");   
  35.         out.println("<message>" + message + "</message>");   
  36.         out.println("</response>");   
  37.         out.close();   
  38.     }   
  39.   
  40.     /**  
  41.      * Checks to see whether the argument is a valid date. A null date is  
  42.      * considered invalid. This method used the default data formatter and  
  43.      * lenient parsing.  
  44.      *   
  45.      * @param date  
  46.      *            a String representing the date to check  
  47.      * @return message a String representing the outcome of the check  
  48.      */  
  49.     private boolean validateDate(String date) {    
  50.         boolean isValid = true;   
  51.         if (date != null) {   
  52.             SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");   
  53.             try {   
  54.                 formatter.parse(date);   
  55.             } catch (ParseException pe) {   
  56.                 System.out.println(pe.toString());   
  57.                 isValid = false;   
  58.             }   
  59.         } else {   
  60.             isValid = false;   
  61.         }   
  62.         return isValid;   
  63.     }   
  64. }   
js 代码
  1. <script type="text/javascript">   
  2. var xmlHttp;   
  3. //创建xmlHttp对象   
  4.     function createXMLHttpRequest() {   
  5.         if (window.ActiveXObject) {   
  6.         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
  7.         }   
  8.         else if (window.XMLHttpRequest) {   
  9.         xmlHttp = new XMLHttpRequest();   
  10.         }   
  11.     }   
  12.        
  13.     function validate() {   
  14.         createXMLHttpRequest();   
  15.         var date = document.getElementById("birthDate");   
  16.         var url = "ValidationServlet?birthDate=" + escape(date.value);   
  17.         xmlHttp.open("GET", url, true);   
  18.         xmlHttp.onreadystatechange = callback;   
  19.         xmlHttp.send(null);   
  20.     }   
  21.        
  22.     function callback() {   
  23.         if (xmlHttp.readyState == 4) {   
  24.         if (xmlHttp.status == 200) {   
  25.             var mes =   
  26.             xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;   
  27.             var val =   
  28.             xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;   
  29.             setMessage(mes, val);   
  30.             }   
  31.         }   
  32.     }   
  33.     function setMessage(message, isValid) {   
  34.         var messageArea = document.getElementById("dateMessage");   
  35.         fontColor = "";   
  36.         if (isValid == "true") {   
  37.         fontColor = "green";   
  38.         }   
  39.   
  40.         messageArea.innerHTML = "<font color=" + fontColor + ">"  
  41.         + message + " </font>";   
  42.     }   
  43. </script>  

你可能感兴趣的:(JavaScript,Ajax,servlet,cache,Microsoft)