主页面
需要登录才能进入,所以需要设置一个登录拦截的功能
//获取session作用域中的数据
Object obj = session.getAttribute(“loginUser”);
if(obj==null){
//没有登录,进入登录页面
response.sendRedirect(“login.jsp”);
return;//结束这个页面
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@page import="com.mt.pojo.User" %><%//获取session作用域中的数据Object obj = session.getAttribute("loginUser");if(obj==null){//没有登录,进入登录页面response.sendRedirect("login.jsp");return;//结束这个页面}%><html><head><title>主页</title></head><body><h1>后台管理的主页</h1><h2>欢迎[<%=((User)obj).getUname()%>]</h2></body></html>
servlet
做一个登录的servlet,在登录的时候做一个查询用户,找到用户并且验证成功以后将用户添加到session作用域,重定向到主页面。如果验证失败就返回到登录界面;
/*** @author:刘倩云* @createTime:2021-02-25*/public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取请求参数String uname = req.getParameter("uname");String password = req.getParameter("password");String remember = req.getParameter("remember");//获取用户User user = UserData.queryUserByName(uname);if(user!=null&&user.getPassword().equals(password)){//登录成功//获取sessionHttpSession session = req.getSession();//将用户对象信息放入session的作用域session.setAttribute("loginUser",user);//直接进入主页面resp.sendRedirect("main");}else {resp.sendRedirect("login.jsp");}}}
登录页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><meta charset="UTF-8"><title>用户登录</title><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"><script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script><script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script><script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script><style>form{margin: 0 auto;margin-top: 100px;width: 350px;}</style></head><%--判断客户端是否有数据--%><%String uname = "";String utoken = "";//获取cookieCookie[] cookies = request.getCookies();if(cookies!=null){for(Cookie cookie:cookies){if(cookie.getName().equals("uname")){uname = cookie.getValue();//记录在客户端的用户名}if(cookie.getName().equals("utoken")){utoken = cookie.getValue();//记录在客户端的token}}}%><body><div class="container"><form action="login" method="post"><div class="form-group"><label for="uname">用户名:</label><input type="text" class="form-control" name="uname" id="uname" placeholder="用户名"></div><div class="form-group"><label for="pwd">密码:</label><input type="password" class="form-control" name="password" id="pwd" placeholder="密码"></div><div class="form-check"><label class="form-check-label"><input class="form-check-input" type="checkbox" name="remember" value="1"> 记住密码</label></div><button type="submit" class="btn btn-primary">登录</button></form></div></body></html>
用户数据
/*** @author:刘倩云* @createTime:2021-02-25*/public class UserData {private static List<User> users = new ArrayList<>();static {addUser(new User("admin","123456",""));addUser(new User("xiaoliu","123456",""));addUser(new User("xiaowang","123456",""));addUser(new User("haha","123456",""));addUser(new User("Cherry","123456",""));addUser(new User("Tracer","123456",""));}//添加用户public static void addUser(User user){users.add(user);}//通过用户名查找public static User queryUserByName(String name){//遍历集合for(User user:users){if(user.getUname().equals(name)){return user;}}return null;}}
