登陆进管理后台的首页

jsp的东西:jstl和el 请再看一边

登陆

login.jsp
在这里插入图片描述
两个input标签 一个checkbox选择 一个button提交
<input name> 属性用于对提交到服务器后的表单数据进行标识,只有设置了 name 属性的表单元素才能在提交表单时传递它们的值

  • 用户名和密码那里本地cookie的中存储之前的记录 当再次登陆的时候会先去缓存中查看
	 <% String username = "";
	         String password = "";
	         获取当前站点的所有Cookie
	         Cookie[] cookies = request.getCookies();
	         for (int i = 0; i < cookies.length; i++) {
	         对cookies中的数据进行遍历,找到用户名、密码的数据
	             if ("username".equals(cookies[i].getName())) {
	                    username = cookies[i].getValue();
	             } else if ("password".equals(cookies[i].getName())) {
	                 password = cookies[i].getValue();
	             }
	         }
         %>

下面的返回博客—利用href标签跳转会/ index.jsp
在这里插入图片描述
对于客户输入的用户名和密码先进行非空判断,然后与controller交互看数据库中是否有这个用户
代码是button的登陆事件的函数,根据表单id取对应的变量,然后保证非空后,如果输入为空用alert来提醒,调用ajax等待返回结果后再操作,是同步的

$("#button").click(
function()
{
 var xx=$("#input标签id").val();
 if(xx==""){alert("用户名不可为空")}
  $.ajax({
                async: false,//同步,待请求完毕后再执行后面的代码
                type: "POST",
                url: '/loginVerify',
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                data: $("#loginForm").serialize(),
                dataType: "json",
                success: function (data) {
                    if(data.code==0) {
                        alert(data.msg);
                    } else {
                        window.location.href="/admin";

                    }
                },
                error: function () {
                    alert("数据获取失败")
                }
            })
})

success的fuction(data)里面的形参data作为json对象传给服务器经过controller---/loginVerify执行后返回 返回的结果有code属性 code属性为0时不是管理员而且会显示msg属性 是管理员就会跳转到/admin

现在来看一下这个loginVerify的控制器方法究竟是如何解析name和pwd?

首先从前端获取信息 request.getParamter("input标签的name是唯一和数据库对应的 这里就写标签的name");

通过map<String,Object>用来记录登陆情况map<"code",1/0> map<"msg","具体的错误/正确">最后再将map装入json中返回给前端
1.通过byname查找user如果为空直接map.put<“code”,0> map.put<“msg”,“用户名无效”>

2.查到名字了,通过get user的属性user-pass如果密码不对map.put<“code”,0> map.put<“msg”,“密码错误”>

3.如果全部都对map.put<“code”,1> map.put<“msg”,"">不用alert任何东西
并且将user放入request.getSession().setAttribute("user", user);里 选择记住用户的话 还会为密码和用户两个信息都设置cookie,response.addcookie(),再更新user表的最后登陆时间

  request.getSession().setAttribute("user", user);
            //添加cookie
            if(rememberme!=null) {
                //创建两个Cookie对象
                Cookie nameCookie = new Cookie("username", username);
                //设置Cookie的有效期为3天
                nameCookie.setMaxAge(60 * 60 * 24 * 3);
                Cookie pwdCookie = new Cookie("password", password);
                pwdCookie.setMaxAge(60 * 60 * 24 * 3);
                response.addCookie(nameCookie);
                response.addCookie(pwdCookie);
            }

进入后台首页–index.jsp

后端直接将要显示的东西 以model的形式返给request中 然后前端通过${} 表达式获取后端结果 最终以指定格式显示

学习时间标签的输出格式 限定个数遍历集合的方式

<div id="published-posts" class="activity-block"><h3>最近发布</h3> <br>
         <ul>
  <c:forEach items="${articleList}" begin="0" end="4" step="1" var="a">
     <li>
    <span><fmt:formatDate value="${a.articleCreateTime}"
  pattern="HH:mm MM月dd日"/>
   </span>
   <a href="/article/${a.articleId}" target="_blank">${a.articleTitle}  
  </a>
    </li>
       </c:forEach>
            </ul>
                 </div>

在这里插入图片描述
还有显示最新的5个评论 但是多了< img>标签可以放头像 以及能够对鼠标停留的评论编辑 回复 删除

 <c:forEach items="${commentList}" begin="0" end="4" step="1" var="c">
    <li class="comment   thread-even comment-item approved">
  <img alt="" src="${c.commentAuthorAvatar}"    class="avatar avatar-50 photo" height="50" width="50">

在这里插入图片描述

退出后台 撤销attribute 销毁session

   @RequestMapping(value = "/admin/logout")
    public String logout(HttpSession session)  {
        session.removeAttribute("user");
        session.invalidate();
        return "redirect:/login";
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值