2016/3/3日志总结 运用Jsp和Servlet实现网站的注册模块

一、代码部分

 这里只列出主要代码。

(1)register.jsp

<script type="text/javascript">
    //验证表单
    function check(input) {
        var content=input.value;//获取输入值
        var id="msg_"+input.id;
        var msg=document.getElementById(id);
        var regexp=null;
        if(content=="") {
            msg.innerHTML="<img src='image/false.gif'/>不能为空";
            return false;
        }
        else{
            if(input.id=="userName") {
                if(content.match("\\w{6,16}")!=content) {
                    msg.innerHTML="<img src='image/false.gif'/>用户名由数字字母组成,长度在6-16范围内";
                    return false;
                } else{
                    msg.innerHTML="<img src='image/right.gif'/>";
                }
            } else if(input.id=="password") {
                regexp=/[a-z][A-Z][0-9]/;
                var result=content.match(regexp);
                if(content.match(".{6,16}")!=content) {
                    msg.innerHTML="<img src='image/false.gif'/>密码必须是6到16位";
                    return false;
                }else{
                    msg.innerHTML="<img src='image/right.gif'/>";
                }
            } else if(input.id=="repassword") {
                var password=document.getElementById("password");
                if(input.value!=password.value) {
                    msg.innerHTML="<img src='image/false.gif'/>密码确认和密码不一致";
                    return false;
                } else{
                    msg.innerHTML="<img src='image/right.gif'/>";
                }
            }else if(input.id=="tel") {
                if(content.match("\\d{11}")!=content) {
                    msg.innerHTML="<img src='image/false.gif'/>手机号码格式不正确";
                    return false;
                } else{
                    msg.innerHTML="<img src='image/right.gif'/>";
                }
            }else{
                msg.innerHTML="<img src='image/right.gif'/>";
            }
        }
    }
</script>

<body>
    <form action="RegisterServlet" method="post">
           用户名:<input type="text" id="userName" name="userName" οnblur="check(this)"/>
           <span style="color:red;" id="msg_userName"><img src="image/require.gif"/>用户名6-16位</span><br/>
           密&nbsp;&nbsp;码:<input type="password" id="password" name="password" οnblur="check(this)"/>
           <span style="color:red;" id="msg_password"><img src="image/require.gif"/>密码6-16位,必须包含字母数字</span><br/>
           密码确认:<input type="password" id="repassword" name="repassword" οnblur="check(this)"/>
           <span style="color:red;" id="msg_repassword"><img src="image/require.gif"/></span><br/>
           邮&nbsp;&nbsp;件:<input type="email" id="email" name="email" οnblur="check(this)"/>
           <span style="color:red;" id="msg_email"><img src="image/require.gif"/></span><br/>
          个人简介:<textarea rows="3" cols="30" id="introduce" name="introduce" οnblur="check(this)"></textarea>
           <span style="color:red;" id="msg_introduce"><img src="image/require.gif"/></span><br/>       
          上传头像<input type="text" id="photo" name="photo" οnblur="check(this)"/>
           <span style="color:red;" id="msg_photo"><img src="image/require.gif"/></span><br/>       
           手机号码:<input type="tel"  id="tel"name="tel" οnblur="check(this)"/>
           <span style="color:red;" id="msg_tel"><img src="image/require.gif"/></span><br/>
    <input type="hint" name="user" value="Customer" style="display:none"/>
    <input type="submit" name="submit" value="注册" οnsubmit="return check()"/>
    </form>
</body>

(2)RegisterServlet.java

@Override
    public void doPost(HttpServletRequest request,HttpServletResponse response)
            throws ServletException, IOException  {
        doGet(request,response);
    }
    @Override
    public void doGet(HttpServletRequest request,HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        //获取从客户端发送的数据
        String userName=request.getParameter("userName");
        System.out.println("从客户端获取的数据是"+userName);
        String password=request.getParameter("password");
        String photo=request.getParameter("photo");
        String tel=request.getParameter("tel");
        String email=request.getParameter("email");
        String introduce=request.getParameter("introduce");
        User user=new User(userName,password,email,introduce,photo,tel);
        UserDao dao=new UserDao();
        System.out.println("dao已经执行");
        int result=dao.add(user);
        PrintWriter out=response.getWriter();
        if(result>0) {
            request.setAttribute("msg","注册成功,请登录");
            request.getRequestDispatcher("index.jsp").include(request, response);
        } else{
            request.setAttribute("msg","注册失败,请稍后重试");
            request.getRequestDispatcher("index.jsp").include(request, response);
        }
    }

二、小结

 在做这个模块的过程中遇到许多问题,现在都已经解决。

1、在Oracle中使用PreparedStatement对象时应该注意,setXXX( )方法的index是从1开始的。

2、JSP变量的可见性,即<%! int i=0;%>和<%int i=0;%>的区别

     <%! %>内的变量是一个成员变量,而声明在<% %>内的变量是个局部变量。

3、HTML5中的textarea标签没有正常显示,并且将写在textarea后的元素覆盖,原因是textarea标签没有正确闭合,

正确的写法是<textarea></textarea>而不是<textarea/>

4、使用PreparedStatement的execute( )方法进行插入数据的操作时,执行成功,却返回false,原因如下:

     boolean execute( )返回的是一个布尔值,以指示第一个结果的形式,如果结果是ResultSet对象,则返回true,否则返回false.

而boolean executeUpdate( ) 返回的是SQL 数据操作语言 (DML) 语句的行数, 对于无返回内容的 SQL 语句,返回 0。

5、点击button按钮,跳转到另一个页面的方法

  <input type="button" value="注册" οnclick="window.location=‘register.jsp’"/>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值