按了登录一片空白,代码是老师源码

来源:5-2 登陆与个人中心实现-界面(登陆)

慕尼黑7895541

2019-06-21 11:13:11

控制器

package com.imooc.sm.controller;

import com.imooc.sm.entity.Staff;
import com.imooc.sm.service.SelfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@Controller("selfController")
public class SelfController {

   @Autowired
   private SelfService selfService;

   /*用于识别是超级管理员、管理员、员工*/
   private boolean flag;

   private boolean superFlag;

   //      /toLogin.do
   public void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       /*退出登录*/
       flag = false;
       superFlag = false;
       request.getRequestDispatcher("login.jsp").forward(request, response);
   }

   //      /login.do
   public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String account = request.getParameter("account");
       String password = request.getParameter("password");

       Staff staff = selfService.login(account, password);

       if ("管理员".equals(staff.getStatus())) {
           flag = true;
       }

       if ("超级管理员".equals(staff.getStatus())) {
           flag = true;
           superFlag = true;
       }

       if (staff == null) {
           response.sendRedirect("toLogin.do");
       } else {
           HttpSession session = request.getSession();
           session.setAttribute("USER", staff);
           session.setAttribute("flag", flag);
           session.setAttribute("superFlag", superFlag);
           response.sendRedirect("main.do");
//            request.getRequestDispatcher(request.getContextPath()+"/main.do").forward(request,response);
       }
   }

   //      /logout.do 退出
   public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       HttpSession session = request.getSession();
       session.setAttribute("USER", null);
       session.setAttribute("flag", null);
       session.setAttribute("superFlag", null);
       response.sendRedirect("toLogin.do");
   }

   //      /main.do
   public void main(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("index.jsp").forward(request, response);
   }

   //      /self/info.do
   public void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../info.jsp").forward(request, response);
   }

   //      /self/toChangePassword.do
   public void toChangePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../change_password.jsp").forward(request, response);
   }

   //      /self/changePassword.do
   public void changePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String password = request.getParameter("password");
       String password1 = request.getParameter("password1");
       HttpSession session = request.getSession();
       Staff staff = (Staff) session.getAttribute("USER");
       if (!staff.getPassword().equals(password)) {
           response.sendRedirect("toChangePassword.do"); //相当于重新输入不过是清空信息了
       } else {
           selfService.changePassword(staff.getId(), password1);
           //response.sendRedirect("../logout.do");
           response.getWriter().print("<script type=\"text/javascript\">parent.location.href=\"../logout.do\"</script>");
       }
   }
}

登录jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <title>登录</title>
   <%

       String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";

   %>
   <link rel="stylesheet" type="text/css" href="<%=basePath%>css/reset.css"/>
   <link rel="stylesheet" type="text/css" href="<%=basePath%>css/common.css"/>
   <link rel="stylesheet" type="text/css" href="<%=basePath%>css/thems.css"/>
   <script type="text/javascript" src="<%=basePath%>js/jquery-1.8.3.min.js"></script>
   <!--框架高度设置-->
   <script type="text/javascript">
       $(function () {
           //自适应屏幕宽度
           window.onresize = function () {
               location = location
           };

           var w_height = $(window).height();
           $('.bg_img').css('height', w_height + 'px');

           var bg_wz = 1920 - $(window).width();
           $('.bg_img img').css('margin-left', '-' + bg_wz / 2 + 'px')

           $('.language .lang').click(function () {
               $(this).siblings('.lang_ctn').toggle();
           });
       })
   </script>
   <!--框架高度设置-->
</head>

<body>
<!--登录-->
<div class="login">
   <div class="bg_img"><img src="<%=basePath%>images/login_bg.jpg"/></div>
   <div class="logo">
       <a href=""><img src="<%=basePath%>images/logo.png" alt=""/></a>
   </div>
   <div class="login_m">
       <form action="Login.do" method="post" name="login_form">
           <ul>
               <li class="wz">用户名</li>
               <li><input name="account" type="text"></li>
               <li class="wz">密码</li>
               <li><input name="password" type="password"></li>
               <li class="l_btn">
                   <a href="javascript:login_form.submit();">登录</a>
               </li>
           </ul>
       </form>
   </div>
</div>
<!--登录-->
</body>
</html>

写回答

2回答

好帮手慕柯南

2019-06-21

同学你好!同学的控制台是否报了以下异常呢

http://img.mukewang.com/climg/5d0c72ad0001f7ab09280130.jpg

原因是因为:同学做了用户角色的验证,如果输入的账号无效,查询出来的staff为空,此时调用staff的方法会包空指针异常。建议同学将此处的判断去掉,或者当staff不为null时再进行判断。

http://img.mukewang.com/climg/5d0c733300015b6c07910306.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

1

慕尼黑7895541

提问者

2019-06-21

题目写错了。。。。 是没有有效账号或密码和账号为空点进去是空白的

0

0 学习 · 4317 问题

查看课程