异步(ajax)提交表单

1962-小同学

发表文章数:94

热门标签

, ,
首页 » Java » 正文


6.3.3异步(ajax)提交表单
在此使用异步提交表单是为了获取服务器响应的数据。因为我们前台使用的是html作为视图层,不能够直接从servlet相关的域对象获取值,只能通过ajax获取响应数据
6.3.4代码实现
6.3.5编写RegistUserServlet
@WebServlet("/registUserServlet")
public class RegistUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    //验证校验
    String check = request.getParameter("check");
    //从sesion中获取验证码
    HttpSession session = request.getSession();
    String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
    session.removeAttribute("CHECKCODE_SERVER");//为了保证验证码只能使用一次
    //比较
    if(checkcode_server == null || !checkcode_server.equalsIgnoreCase(check)){
        //验证码错误
        ResultInfo info = new ResultInfo();
        //注册失败
        info.setFlag(false);
        info.setErrorMsg("验证码错误");
        //将info对象序列化为json
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(info);
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write(json);
        return;
    }

    //1.获取数据
    Map map = request.getParameterMap();

    //2.封装对象
    User user = new User();
    try {
        BeanUtils.populate(user,map);
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }

    //3.调用service完成注册
    UserService service = new UserServiceImpl();
    boolean flag = service.regist(user);
    ResultInfo info = new ResultInfo();
    //4.响应结果
    if(flag){
        //注册成功
        info.setFlag(true);
    }else{
        //注册失败
        info.setFlag(false);
        info.setErrorMsg("注册失败!");
    }

    //将info对象序列化为json
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(info);

    //将json数据写回客户端
    //设置content-type
    response.setContentType("application/json;charset=utf-8");
    response.getWriter().write(json);


}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    this.doPost(request, response);
}

}
6.3.6编写UserService以及UserServiceImpl
public class UserServiceImpl implements UserService {

private UserDao userDao = new UserDaoImpl();
/**
 * 注册用户
 * @param user
 * @return
 */
@Override
public boolean regist(User user) {
    //1.根据用户名查询用户对象
    User u = userDao.findByUsername(user.getUsername());
    //判断u是否为null
    if(u != null){
        //用户名存在,注册失败
        return false;
    }
    //2.保存用户信息
    userDao.save(user);
    return true;
}

}

6.3.7编写UserDao以及UserDaoImpl
public class UserDaoImpl implements UserDao {

private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

@Override
public User findByUsername(String username) {
    User user = null;
    try {
        //1.定义sql
        String sql = "select * from tab_user where username = ?";
        //2.执行sql
        user = template.queryForObject(sql, new BeanPropertyRowMapper(User.class), username);
    } catch (Exception e) {

    }

    return user;
}

@Override
public void save(User user) {
    //1.定义sql
    String sql = "insert into tab_user(username,password,name,birthday,sex,telephone,email) values(?,?,?,?,?,?,?)";
    //2.执行sql

    template.update(sql,user.getUsername(),
                user.getPassword(),
            user.getName(),
            user.getBirthday(),
            user.getSex(),
            user.getTelephone(),
            user.getEmail());
}

}

未经允许不得转载:作者:1962-小同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《异步(ajax)提交表单》 发布于2021-10-12

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录