九五美食网
您的当前位置:首页详解javascript传统方法实现异步校验_javascript技巧

详解javascript传统方法实现异步校验_javascript技巧

来源:九五美食网


学习JavaScript异步校验时往往是从最传统的XMLHttpRequest学起,本文来谈一下对传统校验的认识:
代码1index.jsp文件:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<% 
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; 
%> 
 
 
  
 如何使用传统方法异步验证用户名的唯一性 
 

代码2demo1.jsp文件:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<% 
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; 
%> 
 
 
  
 使用的servlet中的doGet方法 
 

代码3demo2.jsp文件:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<% 
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; 
%> 
 
 
  
 使用的servlet中的doPost方法 
 

代码4AjaxCheckUserNameServlet.java文件:

package com.ghj.packagofserlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class AjaxCheckUserNameServlet extends HttpServlet { 
 
 private static final long serialVersionUID = 6387744976765210524L; 
 
 /** 
 * 处理demo1.jsp中异步验证 
 * 
 * @author GaoHuanjie 
 */ 
 public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { 
 try{ 
 response.setCharacterEncoding("UTF-8"); 
 request.setCharacterEncoding("UTF-8"); 
 PrintWriter out = response.getWriter(); 
 //System.out.println(1/0);//故意出现异常,以检查demo1.jsp中xmlHttpRequest.status!=200的分支语句是否可用 
 String userName=request.getParameter("userName");//获取“用户名” 
 System.out.println("处理demo1.jsp中异步验证,用户名为:"+userName); 
 if ("admin".equals(userName)) { 
 out.print("1");//“1”表示用户名不可用。 
 } else { 
 out.print("2");//“2”表示用户名可用。 
 } 
 out.flush(); 
 out.close(); 
 }catch (Exception e) { 
 e.printStackTrace(); 
 response.setStatus(405); 
 } 
 } 
 
 /** 
 * 处理demo2.jsp中异步验证 
 * 
 * @author GaoHuanjie 
 */ 
 public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { 
 try{ 
 response.setCharacterEncoding("UTF-8"); 
 request.setCharacterEncoding("UTF-8"); 
 PrintWriter out = response.getWriter(); 
 //System.out.println(1/0);//故意出现异常,以检查demo2.jsp中xmlHttpRequest.status!=200的分支语句是否可用 
 String userName=request.getParameter("userName");//获取“用户名” 
 System.out.println("处理demo2.jsp中异步验证,用户名为:"+userName); 
 if ("admin".equals(userName)) { 
 out.print("1");//“1”表示用户名不可用。 
 } else { 
 out.print("2");//“2”表示用户名可用。 
 } 
 out.flush(); 
 out.close(); 
 }catch (Exception e) { 
 e.printStackTrace(); 
 response.setStatus(405); 
 } 
 } 
} 

代码5web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
 
 
  
 AjaxCheckUserNameServlet 
 com.ghj.packagofserlet.AjaxCheckUserNameServlet 
  
 
  
 AjaxCheckUserNameServlet 
 /AjaxCheckUserNameServlet 
  
 
  
 index.jsp 
  
 
显示全文