基于SSM的物业管理系统(登录、注册、找回密码、MD5、JavaMail、防止html注入篇)

搭建SSM

      对新手来说搭建SSM框架是痛苦的(我就是),通过朋友和这篇博客:SSM第一篇 最简单的SSM框架搭建过程–SSM简单整合的帮助最后还是搭建好了。

提几个搭建时候遇到的问题:
      1. 逆向生成工具是自动生成Dao、Mapping、Pojo的工具,路径放在跟src同目录下可以避免生成路径的烦恼。
      2. 生成的Dao文件名为xxMapper,如有需要可以改为xxDao,我这里嫌麻烦就没有改。
      3. 注意不要拦截静态文件(css等),不然前端样式无法显示,我是在web.xml中配置的。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>

      4. 在编写SendMail类的时候,要将类注释为控件(@Component),在声明该类的时候要用@Autowired标注在类上,完成自动装配的工作。

    @Autowired
    SendMail sendMail;

接下来进入正题

登录

      登录界面具有记住密码找回密码登录注册功能。登录:首先判断账号密码是否为空,之后判断数据库是否存在该账号,最后判断密码是否正确,由于密码采用MD5加密,所以通过对输入的密码进行MD5之后再与数据库的密码进行比较,正确则进入系统;找回密码:采用给邮箱发验证码的形式进行重置(MD5无法反编码);记住密码:用cookie保存用户账号、密码;注册:采用Java mail工具类,用自己的QQ邮箱给用户邮箱发送验证码。
FrontLoginController.java:

    /**
     * 跳转到前台登录页面
     * @return login.jsp
     */
    @RequestMapping("/login")
    public String login(){
        return "/front/login";
    }

login.jsp:

  <form id="frontLoginForm" action="${pageContext.request.contextPath}/frontLogin/check" method="post"> 
   <fieldset> 
    <div> 
     <c:choose> 
      <c:when test="${not empty loginEmail}"> 
       <input value="${requestScope.loginEmail}" id="email" name="email" type="email" autofocus="" /> 
      </c:when> 
      <c:otherwise> 
       <input placeholder="E-mail" id="email" name="email" type="email" autofocus="" /> 
      </c:otherwise> 
     </c:choose> 
    </div> 
    <div > 
     <input placeholder="密码" id="password" name="password" type="password" value="" /> 
    </div> 
    <div > 
     <label> <input id="remember" name="remember" type="checkbox" value="Remember Me" />记住密码 </label> 
    </div> 
    <div >
    <a href="${pageContext.request.contextPath}/frontLogin/forget" style="float:right"> 忘记密码 </a>
    <a href="${pageContext.request.contextPath}/frontRegister/register"> 注册 </a>
    </div> 
    <font size="4" color="red"> ${loginError} </font> 
    <button type="submit" class="btn btn-lg btn-success btn-block">登录</button>
   </fieldset> 
  </form>
记住密码
<script>
        window.onload = function(){
    
            var oForm = document.getElementById('frontLoginForm');
            var oUser = document.getElementById('email');
            var oPswd = document.getElementById('password');
            var oRemember = document.getElementById('remember');
            //页面初始化时,如果帐号密码cookie存在则填充
            if(getCookie('email') && getCookie('password')){
              oUser.value = getCookie('email');
              oPswd.value = getCookie('password');
              oRemember.checked = true;
            }
            //复选框勾选状态发生改变时,如果未勾选则清除cookie
            oRemember.onchange = function(){
    
              if(!this.checked){
                delCookie('email');
                delCookie('password');
              }
            };
            //表单提交事件触发时,如果复选框是勾选状态则保存cookie
            oForm.onsubmit = function(){
    
              if(remember.checked){ 
                setCookie('email',oUser.value,7); //保存帐号到cookie,有效期7天
                setCookie('password',oPswd.value,7); //保存密码到cookie,有效期7天
              }
            };
        };
        //设置cookie
        function setCookie(name,value,day){
    
            var date = new Date();
            date.setDate(date.getDate() + day);
            document.cookie = name + '=' + value + ';expires='+ date;
        };
        //获取cookie
        function getCookie(name){
    
            var reg = RegExp(name+'=([^;]+)');
            var arr = document.cookie.match(reg);
            if(arr){
              return arr[1];
            }else{
              return '';
            }
        };
        //删除cookie
        function delCookie(name){
    
            setCookie(name,nul
  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值