主页面
需要登录才能进入,所以需要设置一个登录拦截的功能
//获取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 {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected 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)){
//登录成功
//获取session
HttpSession 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 = "";
//获取cookie
Cookie[] 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;
}
}