AJAX基础教程-5 Ajax Validate

本文介绍了一个使用Java Servlet进行日期格式验证的示例,并通过Ajax实现客户端与服务器端的交互。该示例展示了如何通过简单的Java代码来判断输入的日期是否符合特定格式,以及如何利用Ajax获取服务器端的响应并更新页面内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值