典型JavaWeb关键知识点1(注册登录模块)

15 篇文章 0 订阅
8 篇文章 0 订阅

注册模块

前端

注册表单采用典型JqueryAjax提交

$(function(){
	$("#registerFrom").submit(function(){
		$.post("refisterFrom",$(this).serialize(),function(data){
			//后端返回的data信息
			//判断data中flag的值来进行转跳或者报错
			
		});
	});
});

后端

1.获取所有表单的信息,以及后面要用到的验证码,同时将表单的信息绑定到JavaBean对象上.,创建用于装载错误信息的对象ResultInfo,

 //获表单参数,声明即将用到的对象
        Map<String, String[]> parameterMap = request.getParameterMap();
        User user  = new User();
        //获取验证码
        String session =(String) request.getSession().getAttribute("CHECKCODE_SERVER");
        //数据封装对象
        try {
            BeanUtils.populate(user,parameterMap);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

2.验证验证码正确性

 		//获取验证码
        String session =(String) request.getSession().getAttribute("CHECKCODE_SERVER");
        //获取用户输入的验证码
 		String check = request.getParameter("check");

3.调用dao层的方法查询数据库判断用户名是否存在

//调用Dao层的方法,会因为查不到而报错误,so need  try catch
        //默认查找的为null
        User userByName = null;
        try{
            userByName = userDao.findUserByname(user);
        }catch (Exception e){
        }
        //判断userByName的值
        if(userByName==null){
            //查不到相关数据,所以该用户可以注册
            resultInfo.setFlag(true);
        }else {
            //用户名存在,返回错误信息
            resultInfo.setFlag(false);
            resultInfo.setErrorMsg("用户名存在,请重试!");
        }
        return resultInfo;
    }

4.完成注册,保存数据

     //调用Dao层保存用户数据
        userDao.save(user);
        return true;

5.返回错误信息对象ResultInfo,封装为json数据

		//创建mapper对象
 		ObjectMapper mapper  = new ObjectMapper();
        //返回错误信息
        String json = mapper.writeValueAsString(resultInfo);
        //设置字符编码
        response.setContentType("application/json;charset=utf-8");
        //输出json数据
        response.getWriter().write(json);

数据库

改变数据库编码:

打开数据库配置文件,添加defult-charset=utf8,重启mysql服务
1.用于注册,保存数据的dao方法save()

 String sql = "insert into user (username,password,name,birthday,sex,telephone,email,status,code) values (?,?,?,?,?,?,?,?,?)";
        template.update(sql,
                user.getUsername(),
                user.getPassword(),
                user.getName(),
                user.getBirthday(),
                user.getSex(),
                user.getTelephone(),
                user.getEmail(),
                user.getStatus(),
                user.getCode());
    }

2.用于根据用户名查找数据findUserByname()(判断注册的用户名是否存在)

 		User user1 = null;
        //查找不到数据会报错,try  catch步过错误
        try{
            String sql = "select * from tab_user where username = ?";
            user1 = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), user.getUsername());
        }catch (Exception e){
        }
        return  user1;

剩余细节有待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值