zoukankan      html  css  js  c++  java
  • 使用Ajax完成用户名异步校验--【SSH】

    1.事件触发--onblur

    <td><!-- onblur用户离开输入框的时候执行 -->
      <input type="text" id="username" name="username" class="text" maxlength="20" onblur="checkUsername()">
      <span id="span1"></span>
    </td>
    

    2.编写Ajax代码

    //使用Ajax完成用户名是否异步的校验
    	function checkUsername(){
    	
    		//获得文本框的值
    		var username=document.getElementById("username").value;
    		//1.创建异步交互对象Xml
    		
    		var xhr=createXmlHttp();
    		//2.设置监听
    		xhr.onreadystatechange=function(){
    		// 0 未连接 1 打开连接 2 发送请求 3 交互 4 完成交互,接手响应
    			if (xhr.readyState==4){
    				if(xhr.status==200){//表示处理结果ok
    					document.getElementById("span1").innerHTML=xhr.responseText;
    				}
    			}
    		}
    		//3.打开链接
    		xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+new Date().getTime()+"&username=" +username,true);
    		//4.发送
    		xhr.send(null);
    		
    	}
    	
    	function createXmlHttp(){
    		var xmlHttp;
    		try{ //Firefox ,Opera 8.0+,Safari
    			xmlHttp=new XMLHttpRequest("Msxml2.XMLHTTP");
    		}catch(e){
    			try{ //Internet Explorer
    				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    			}catch(e){
    			
    				try{
    					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    				}
    				catch(e){
    				
    				}
    			}
    		}
    		return xmlHttp;
    	}
    

    3.编写Action

      接受username:模型驱动接受

    import cn.itcast.shop.user.service.UserService;
    import cn.itcast.shop.user.vo.User;
    
    import com.opensymphony.xwork2.ActionSupport;
    /*
     * 用户模块Action的类
     * @author 王美
     * 
     */
    import com.opensymphony.xwork2.ModelDriven;
    
    public class UserAction extends ActionSupport implements ModelDriven<User>{
    	//模型驱动要使用的对象
    	private User user=new User();
    	public User getModel(){
    		return user;
    	}
    	//注入UserService
    	private UserService userService;
    	
    	public void setUserService(UserService userService) {
    		this.userService = userService;
    	}
    
    	
    	/*
    	 * 跳转到注册页面的执行方法
    	 *  
    	 */
    	
    	public String registPage(){
    		return "registPage";
    	}
    	
    	/**
    	 * AJAX进行异步校验用户名的执行方法
    	 * @throws IOException
    	 */
    	public String findByName() throws IOException{
    		//调用Service进行查询
    		User existUser = userService.findByUsername(user.getUsername());
    		//获得response对象,项页面输出
    		HttpServletResponse response=ServletActionContext.getResponse();
    		response.setContentType("text/html;charset=UTF-8");
    		//判断
    		if (existUser!=null){
    			//查询到该用户:用户名已经存在
    			response.getWriter().println("<font color='red'>用户名已经存在</font>");
    		}else{
    			//没有查询到该用户:用户名可以使用
    			response.getWriter().println("<font color='greem'>用户名可以使用</font>");
    		}
    		return NONE;
    	}
    }
    

      编写实体类

        User

    package cn.itcast.shop.user.vo;
    /*
     * 用户模块实体类:
     * @author 
     * CREATE TABLE `user` (
      `uid` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(255) DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL,
      `name` varchar(255) DEFAULT NULL,
      `email` varchar(255) DEFAULT NULL,
      `phone` varchar(255) DEFAULT NULL,
      `addr` varchar(255) DEFAULT NULL,
      `state` int(11) DEFAULT NULL,
      `code` varchar(64) DEFAULT NULL,
      PRIMARY KEY (`uid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
     * */
    
    public class User {
    	private Integer uid; //用户id
    	private String username;//用户名
    	private String password;//用户密码
    	private String name;//用户姓名
    	private String email;//用户Email
    	private String phone;//用户电话
    	private String addr; //用户地址
    	private Integer state;//用户状态:激活
    	private String code;//
    
    	//自动生成get,set, Source--Generate Getters and Setters
    	public Integer getUid() {
    		return uid;
    	}
    	public void setUid(Integer uid) {
    		this.uid = uid;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	public String getAddr() {
    		return addr;
    	}
    	public void setAddr(String addr) {
    		this.addr = addr;
    	}
    	public Integer getState() {
    		return state;
    	}
    	public void setState(Integer state) {
    		this.state = state;
    	}
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code = code;
    	}
    	
    	
    }
    

        User.hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
      
        <hibernate-mapping>
        	<class name ="cn.itcast.shop.user.vo.User" table="user">
        		<id name="uid">
        			<generator class="native"></generator>
        		</id>
        		<property name="username"></property>
        		<property name="password"></property>
        		<property name="name"></property>
        		<property name="email"></property>
        		<property name="phone"></property>
        		<property name="addr"></property>
        		<property name="state"></property>
        		<property name="code"></property>
        	</class>
        </hibernate-mapping>
    

        配置到Spring中

    4.编写DAO

      继承HibernateDaoSupport

    package cn.itcast.shop.user.dao;
    import java.util.List;
    
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    
    import cn.itcast.shop.user.vo.User;
    /*
     * 用户模块持久层代码
     * @author 
     * */
    public class UserDao extends HibernateDaoSupport{
    
    	//按照名称查询是否有该用户:
    	public User findByUserName(String username){
    		String hql="from User where username=?";
    		List<User> list =this.getHibernateTemplate().find(hql,username);
    		if (list!=null && list.size()>0){
    			return list.get(0);
    		}
    		return null;
    	}
    }
    

        配置文件中注入sessionFactory

    5.编写Service

      注入UserDao

          事务管理

    <!-- 事务管理: -->
    	<!-- 事务管理器 -->
    	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
    
    	<!-- 开启注解事务 -->
    	<tx:annotation-driven transaction-manager="transactionManager" />
    
    
     <!--================================== Action配置============================================================ -->
    	
    	<!-- 首页访问的Action -->
    	<bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction" scope="prototype">
    	</bean>
    
    	<!-- 用户模块的Action -->
    	<bean id ="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype">
    		<!-- 注入Service -->
    		<property name="userService" ref="userService"></property>
    	</bean>
    	
    	
    	<!--================================== Service配置============================================================ -->
    	<bean id="userService" class="cn.itcast.shop.user.service.UserService">
    		<property name="userDao" ref="userDao"></property>
    	</bean>
    	
    	<!-- =================================Dao配置 ===================================================== -->
    	<bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
    
    
    
  • 相关阅读:
    TX2 刷机教程
    ROS2 树莓派SBC镜像安装
    OP3 默认ID图
    OP3 镜像恢复
    ROS2 BringUp
    学习笔记3:Linux面试题
    学习笔记2:Linux简单指令
    学习笔记1:Git简单指令
    编程小白入门分享五:Vue的自定义组件
    编程小白入门分享四:Vue的安装及使用快速入门
  • 原文地址:https://www.cnblogs.com/wangmei/p/4852261.html
Copyright © 2011-2022 走看看