java 代码
- package ajax.foundations_of_ajax;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class ValidationServlet extends HttpServlet {
- /**
- * Handles the HTTP <code>GET</code> method.
- *
- * @param request
- * servlet request
- * @param response
- * servlet response
- */
- protected void doGet(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- PrintWriter out = response.getWriter();
- boolean passed = validateDate(request.getParameter("birthDate"));
- response.setContentType("text/xml");
- response.setHeader("Cache-Control", "no-cache");
- String message = "You have entered an invalid date.";
- if (passed) {
- message = "You have entered a valid date.";
- }
- out.println("<response>");
- out.println("<passed>" + Boolean.toString(passed) + "</passed>");
- out.println("<message>" + message + "</message>");
- out.println("</response>");
- out.close();
- }
- /**
- * Checks to see whether the argument is a valid date. A null date is
- * considered invalid. This method used the default data formatter and
- * lenient parsing.
- *
- * @param date
- * a String representing the date to check
- * @return message a String representing the outcome of the check
- */
- private boolean validateDate(String date) {
- boolean isValid = true;
- if (date != null) {
- SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
- try {
- formatter.parse(date);
- } catch (ParseException pe) {
- System.out.println(pe.toString());
- isValid = false;
- }
- } else {
- isValid = false;
- }
- return isValid;
- }
- }
js 代码
- <script type="text/javascript">
- var xmlHttp;
- //创建xmlHttp对象
- function createXMLHttpRequest() {
- if (window.ActiveXObject) {
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- else if (window.XMLHttpRequest) {
- xmlHttp = new XMLHttpRequest();
- }
- }
- function validate() {
- createXMLHttpRequest();
- var date = document.getElementById("birthDate");
- var url = "ValidationServlet?birthDate=" + escape(date.value);
- xmlHttp.open("GET", url, true);
- xmlHttp.onreadystatechange = callback;
- xmlHttp.send(null);
- }
- function callback() {
- if (xmlHttp.readyState == 4) {
- if (xmlHttp.status == 200) {
- var mes =
- xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
- var val =
- xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
- setMessage(mes, val);
- }
- }
- }
- function setMessage(message, isValid) {
- var messageArea = document.getElementById("dateMessage");
- fontColor = "";
- if (isValid == "true") {
- fontColor = "green";
- }
- messageArea.innerHTML = "<font color=" + fontColor + ">"
- + message + " </font>";
- }
- </script>