首页 > 其他分享 >异步提交表单以及代码实现

异步提交表单以及代码实现

时间:2022-08-23 15:24:42浏览次数:55  
标签:username 异步 表单 public flag User 提交 email user

异步提交表单

在此使用异步提交表单是为了获取服务器响应的数据。因为我们前台使用的是html作为视图层,

不能够直接从servlet相关的域对象获取值 ,只能通过ajax获取响应数据

register.html页面:

        <script>
            /*
                表单校验:
                    1、用户名:单词字符,长度8到20位
                  2、密码:单词字符,长度8到20位
                  3、email:邮件格式
                  4、姓名:非空
                  5、手机号:手机号格式
                  6、出生日期:非空
                  7、验证码:非空
             */
            //校验用户名
            function checkUsername() {
                //1、获取用户名
                var usernmae = $("#username").val();
                //2、定义正则
                var reg_username = /^\w{8,20}$/;
                //判断给出提示信息
                var flag = reg_username.test(usernmae);
                if (flag){
                    //用户名合法
                    $("#username").css("border","");
                } else {
                    //用户名非法
                    $("#username").css("border","1px solid red");
                }
                return flag;

            }
            //校验密码
            function checkPassword(){
                //1、获取用户名
                var password = $("#password").val();
                //2、定义正则
                var reg_password = /^\w{8,20}$/;
                //判断给出提示信息
                var flag = reg_password.test(password);
                if (flag){
                    //用户名合法
                    $("#password").css("border","");
                } else {
                    //用户名非法
                    $("#password").css("border","1px solid red");
                }
                return flag;
            }
            //校验邮箱
            function checkEmail(){
                //1、获取邮箱
                var email = $("#email").val();
                //定义规则
                var reg_email = /^\w+@\w+\.\w+$/;
                //判断
                var flag = reg_email.test(email);
                if (flag){
                    $("#email").css("border","");
                }else {
                    $("#email").css("border","1px solid red");
                }
                return flag;
            }

            $(function () {
                $("#registerForm").submit(function () {
                    //发送数据到服务器
                    if (checkUsername() && checkPassword() && checkEmail()){
                        //校验通过发送ajax请求,提交表单的数据
                        $.post("registUserServlet",$(this).serialize(),function (data) {
                            //处理服务器响应的数据
                            
                        });
                    }
                    return false;
                });

                $("#username").blur(checkUsername);
                $("#password").blur(checkPassword);
                $("#email").blur(checkEmail);
            })
        </script>

 

 

 

 

 

 

 

Servlet代码实现

RegistUserServlet:

@WebServlet("/registUserServlet")
public class RegistUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1、获取数据
        Map<String, String[]> 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);
        //4、响应结果
        ResultInfo info = new ResultInfo();
        if (flag){
            //注册成功
            info.setFlag(true);
        }else {
            //注册失败
            info.setFlag(false);
            info.setErrorMsg("注册失败");
        }
        //将info对象序列化为json
        ObjectMapper mapper = new ObjectMapper();
        String string = mapper.writeValueAsString(info);
        //将json数据写回客户端
        //设置content-type
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write(string);

    }

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

 

Dao代码实现

UserDao接口:

public interface UserDao {

    /**
     * 根据用户名查询用户信息
     * @param username
     * @return
     */
    public User findByUsername(String username);

    /**
     * 用户保存
     * @param user
     */
    public void save(User user);
}

UserDaoImpl实现类:

public class UserDaoImpl implements UserDao {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

    @Override
    public User findByUsername(String username) {
        User user = null;
        try {
            //定义sql
            String sql = "select * from tab_user where username = ?";
            //执行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());

    }
}

 

 

 

 

service代码实现

UserService接口:

public interface UserService {

    boolean regist(User user);
}

UserServiceImpl实现类:

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

 

标签:username,异步,表单,public,flag,User,提交,email,user
From: https://www.cnblogs.com/xjw12345/p/16616055.html

相关文章

  • 函数式编程与 JS 异步编程、手写 Promise
    目录函数式编程与JS异步编程、手写Promise简答题函数式编程与JS异步编程、手写Promise简答题谈谈你是如何理解JS异步编程的?EventLoop、消息队列都是做什么的?......
  • 小程序提交审核提示接口未配置在app.json文件中
    以下接口未正确配置在app.json文件中,勾选协议可继续提交,该版本发布后,用户将无法使用相关接口能力。 接口未正确配置:wx.chooseLocation、wx.getLocation    ......
  • HtML中head、body、块级与行内、列表、表格、表单标签等
    目录1.HTML简介2.HTML文件的创建3.HTML文档说明4.head内常见标签5.body内基本的标签6.块级标签与行内标签7.body内基本符号8.body内布局标签9.body内常见标签10.标签俩大重......
  • 阻塞非阻塞与同步异步的区别
    阻塞非阻塞与同步异步的区别同步/异步关注的是消息通知的机制,而阻塞/非阻塞关注的是程序(线程)等待消息通知时的状态。以小明下载文件打个比方,同步阻塞:小明一直盯着下载......
  • springboot使用@Async实现异步调用
    异步与同步同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行......
  • Element Ui使用技巧——Form表单的校验规则rules详细说明;element的 form 表单rules详
    介绍 Form组件提供了表单验证的功能,只需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名即可。校验规则参见async-validator文档......
  • Git Conventional Commits (Git代码提交说明规范)
    ConventionalCommits(代码提交说明规范)ConventionalCommits是关于GitCommit提交代码时,填写的说明文字的一个规范.这个规范提供了一套易于理解和使用的规则,通......
  • 10.异步mysql
    python中操作mysql连接、操作、断开都是网络IO#安装支持异步aiomysql的模块pip3installaiomysqlasyncdefexecute():#网络IO操作,连接数据库,遇到IO切换任务......
  • 2022.8.21 Forkjoin与异步回调
    14、Forkjoin(分支合并)什么是ForkJoinForkJoin在JDK1.7, 并行执行任务!提高效率。在大数据量中!大数据:MapReduce(把大任务拆分为小任务)Forkjoin特点:工作窃取,这里......
  • 修改已提交的commit注释
    修改commit注释1.1修改最后一次commit注释:通过gitlog查看提交历史信息:输入命令:gitcommit--amend进入修改注释界面:第一行就是最后一次commit的注释信息,按i......