[Login.jsp]
<%@ page import="example.servlet.loginServlet" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/login.js"></script>
</head>
<body>
<div class="login">
<form id="loginForm" action="/Example/login" method="post">
<h1>로그인 해주세요!</h1>
아이디: <input type="text" name="id" placeholder="아이디"></br>
비밀번호: <input type="text" id="pw" name="password" placeholder="비밀번호">
<button type="submit">로그인</button>
</form>
</div>
</body>
</html>
[Login.js]
document.addEventListener("DOMContentLoaded", () => {
const loginForm = document.querySelector('#loginForm');
const pw = document.querySelector('#pw');
loginForm.addEventListener('submit', () => {
if (pw.value.length < 10) {
alert('비밀번호는 10자리 이상 입력해주세요.');
event.preventDefault(); // 새로시작 멈춤
return false;
}
return true;
});
});
[loginServlet.java]
package example.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "loginServlet", urlPatterns = "/login")
public class loginServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("id");
String password = req.getParameter("password");
HttpSession session = req.getSession();
session.setAttribute("id", id);
session.setAttribute("password", password);
resp.sendRedirect("/Example/loginSuccess.jsp");
}
}
[loginSuccess.jsp]
<%@ page import="example.servlet.loginServlet" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 성공 페이지</title>
</head>
<body>
<%= session.getAttribute("id") %> 님 안녕하세요!
로그인 성공하셨습니다!
<form action="/logout"></form>
<button type="submit">로그아웃</button>
</body>
</html>
[logoutServlet.jsp]
package example.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "logoutServlet", urlPatterns = "/logout")
public class logoutServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 로그인 페이지로 다시 보내주기
resp.sendRedirect("/ServletJSP_Ch3/logout.jsp");
}
}
[logout.jsp]
<%@ page import="example.servlet.logoutServlet" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그아웃 페이지</title>
</head>
<body>
<%= session.getAttribute("id") %> 님 안녕히 가세요 <!-- 여기까지는 session이 남아있음 -->
<% session.invalidate(); %> <!-- 세션 만료 -->
</body>
</html>