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

本文介绍了基于SSM框架搭建的物业管理系统,包括登录(记住密码功能)、注册、找回密码的实现。密码使用MD5加密,找回密码通过邮件发送验证码。同时,文章还提到了防止HTML注入的处理方法和JavaMail的使用。
摘要由CSDN通过智能技术生成

搭建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
本项目使用IDEA作为IDE,bootstrap(HTML5 CSS JS)做前端,springMVC做后端,mySQL做数据库。 UI请使用蓝色和白色为主色调。不用做得太华丽,做得像一个正常的毕设就行。 首先是登录,分为业主和管理员两种身份。不同的身份看到的模块数量和内容不一样。 系统管理模块,我设想的是每个人对自己这个账户的基本信息的修改。这一部分我不太确定,可以适当自由添加一点功能。 楼盘管理,业主只能看到自己的住房信息。管理员这边,可以显示这个小区有哪些大楼,选择大楼可以看到大楼内部有哪些房间,还可以显示这些房间与哪些业主相关联(即被谁买下),可以查找指定业主的住房。管理员可以添加、删除、更新业主和房屋的关联(表示入住或者搬离)。 收费管理,初步想法是管理员向业主发出收费通知(物业、水电等),可以向所有业主群发,也可以向指定业主发送。业主的界面会收到通知,业主线下缴费后线上确认,然后管理员确认即可完成缴费全过程。 停车管理,业主只能看到自己的车位信息。管理员界面显示小区内所有车位,以及这些车位的状态,无人归属或者归谁所有,可以查找指定业主的车位,或者指定车位的业主。可以添加、更新和删除业主和车位的关联(表示购买车位、车位转让、车位到期等)。 业主管理,业主看不到这个模块。业主注册时向管理员发出信号,管理员批准后业主注册正式完成。该模块可以显示有哪些业主,业主的基本信息。管理员也可以删除业主的账号(表示业主已经搬离该小区,与小区没有关联了)。 保修和投诉两个模块是类似的,业主在自己这里发出具体的请求,管理员界面可以看到这些请求。管理员可以接受请求,等待线下任务完成后,业主确认完成后,管理员确认完成,即正式完成,本次保修、投诉结束。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值