短影片商城系統,session和cookie實現登入

zhibo系統開發發表於2024-01-13


短影片商城系統,session和cookie實現登入

專案準備
1.登入頁面的login.html
2.主頁index.html
3.處理登入的方法
4.獲取session中資料的方法
5.過濾器

登入頁面
在static目錄下新建一個檔案叫做login.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="
        <input type="text" name="username"/>
        <input type="password" name="password">
        <input type="submit" value="登入">
    </form>
</body>
</html>

登入邏輯處理
透過request獲取到登入輸入的使用者名稱和密碼,這裡不做校驗,直接把使用者名稱放到session當中,然後重定向到index.html。

@PostMapping("/login")
public void userLogin (HttpServletRequest request, HttpServletResponse response) {
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    HttpSession httpSession = request.getSession();
    httpSession.setAttribute("username", username);
    response.sendRedirect("index.html");
}

主頁
在index.html頁面中透過點 擊 獲 取 使用者名稱獲取username的值

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="獲取使用者名稱</a>
</body>
</html>

從session中獲取值

@GetMapping("/index")
public String index(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();
    return (String) session.getAttribute("username");
}

過濾器
過濾器,用於判斷使用者是否登入,即是否從session中能獲取到使用者名稱稱,如果能獲取到說明使用者是登陸了的,如果不能就跳轉到登入頁面。

@Component
@WebFilter(filterName="LoginFilter",urlPatterns="/*")
public class LoginFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) servletRequest;
        HttpServletResponse res = (HttpServletResponse) servletResponse;
        String path = req.getServletPath();
        if (!StringUtils.equals("/login", path) && !path.contains("html")) {
            HttpSession session = req.getSession();
            String username = (String)session.getAttribute("username");
            if (StringUtils.isEmpty(username)) {
                res.sendRedirect("login.html");
            }
        }
        filterChain.doFilter(servletRequest, servletResponse);
    }
}

以上就是短影片商城系統,session和cookie實現登入, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69978258/viewspace-3003740/,如需轉載,請註明出處,否則將追究法律責任。

相關文章