基于SSH框架注册登录功能设计

注册登录功能设计流程图
基于SSH框架注册登录功能设计_第1张图片



注册表单代码

<form  action="${pageContext.request.contextPath}/user_regist.action" method=post onsubmit=" return checkForm()">
    <tr>
        <TD >登 录 名:TD>
        <TD ><INPUT id=user_code name=user_code onblur="checkCode()">TD>
        <TD ><SPAN id="codeId" style="FONT-WEIGHT: bold;">SPAN>TD>
    tr>
    <tr>
        <TD >登 录 密 码:TD>
        <TD ><INPUT id=user_password name=user_password >TD>
    tr>
    <tr>
      <TD><input type="submit" value="注册" /> TD>
     tr>
form>


登录名输入框失去焦点,字段合法性性检验js代码

<STYLE>
.error{
    color:red;
}
STYLE>
<script type="text/javascript">
    function checkCode(){
        var code =  $("#user_code").val(); //获取登录名
        if(code.trim()==""){ //除去空格后判断登录名为空,给出提示内容
            $("#codeId").addClass("error"); //提示内容:给span添加error,css类
            $("#codeId").html("登录名不能为空");//提示内容:给span添加内容,登录名不能为空          
        } else {//除去空格后判断登录名不为空,发送请求检验登录名是否被占用
            var url = "${pageContext.request.contextPath}/user_checkCode.action";
            var param = {"user_code":code};
            $.post(url,param,function(data){
                if(data && data=="no"){
                    $("#codeId").addClass("error");
                    $("#codeId").html("登录名已被占用");  
                } 
                if(data && data=="yes"){
                    $("#codeId").removeClass("error");
                    $("#codeId").html("登录名可以使用");  
                }

            })
        }
    }
script>


表单检验js代码
功能需求是当表单存在字段不合法时,不允许提交表单

function checkForm(){
        checkCode();
        //因为表单存在不合法字段就会添加error css类,所以判断表单里面是否有error类就可以得到是否有不合法字段
        if($(".error").size()>0){          
            return false;
        }
    }


检查登录是否被占用的action代码

/**
     * 检查登录名是否被占用
     * @return
     */
    public String checkCode(){
        //调用service层checkCode(),实质是把登录名传到dao层,进行查询,如果可查询到,说明登录名已被占用,返回对象u不为空,反之为空
        User u = userservice.checkCode(user.getUser_code()); 
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/html;charset=UTF-8");

        try{
            //ajax通过输出流向前台传回返回值
            PrintWriter writer = response.getWriter();
            if(u!=null){
                writer.print("no");
            } else {
                writer.print("yes");
            }

        } catch(Exception e){
            e.printStackTrace();
        }

        return NONE;
    }


字段检查合法登录可以使用注册成功

/**
     * 注册
     * @return
     */
    public String regist(){
        userservice.save(user);
        return LOGIN;
    }


登录模块action代码

public String login(){
        //System.out.println("user:"+user.getUser_code()+user.getUser_password());
        //调用service层,实质是将数据传到dao层进行检验,如果登录名密码正确返回u对象就不为空
        User u = userservice.login(user);
        if(u!=null){
        //将用户绑定到session对象
            ServletActionContext.getRequest().getSession().
                                setAttribute("existUser", u);
            return "loginOK";
        }
        return LOGIN;
    }


用户退出系统action代码
用户退出系统,只需要把用户数据从session中移除

public String exit(){
        ServletActionContext.getRequest().getSession().
                        removeAttribute("existUser");
        return LOGIN;
    }


MD5密码加密
为安全起见,用户在进行注册时,应进行密码加密,可以在前端js进行加密,防止网络传输过程中被拦截密码是明文,然后也可以在service层进行密码加密,存入数据库时就是加密后的代码,所以在进行查询检验时也要先加密再查询

你可能感兴趣的:(SSH框架)