[Web] 세션을 이용한 로그인 정보 바인딩하기
2024. 8. 19. 21:11ㆍ자바 웹 개발/세션 쿠키 필터 리스너
톰캣이 종료되어도 세션이 메모리에서 삭제되지 않는 경우가 있어서 다음과 같이 설정을 해주어야 한다.
<Manager pathnam="" /> 주석을 해제한다.
login2.html 파일을 작성한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="frmLogin" method="post" action="login" encType="UTF-8">
아이디 :<input type="text" name="user_id"><br>
비밀번호 :<input type="password" name="user_pw"><br>
<input type="submit" value="로그인">
<input type="reset" value="다시 입력">
</form>
</body>
</html>
setAttribute() 메서드를 이용해 user_id로 사용자 ID를 바인딩하도록 구현한다. 톰캣을 껐다가 다시 키지 않는한 session이 저장된 user_id대로 로그인 정보가 남아있다.
@WebServlet("/login")
public class SessionTest4 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doHandle(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doHandle(req, resp);
}
private void doHandle(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
HttpSession session = req.getSession();
String user_id = req.getParameter("user_id");
String user_pw = req.getParameter("user_pw");
if(session.isNew()) {
if(user_id != null) {
session.setAttribute("user_id", user_id);
out.print("<a href='login'>로그인 상태 확인</a>");
} else {
out.print("<a href='login2.html'>다시 로그인 하세요!!</a>");
session.invalidate();
}
} else {
user_id = (String) session.getAttribute("user_id");
if(user_id != null && user_id.length() != 0) {
out.print("안녕하세요 " + user_id + "님!!!");
} else {
out.print("<a href='login2.html'>다시 로그인 하세요!!</a>");
session.invalidate();
}
}
}
}
'자바 웹 개발 > 세션 쿠키 필터 리스너' 카테고리의 다른 글
[Web] 서블릿 속성과 스코프 (0) | 2024.08.21 |
---|---|
[Web] encodeURL 사용 (0) | 2024.08.19 |
[Web] 세션 유효 기간 설정 / 세션 삭제하기 (0) | 2024.08.19 |
[Web] 세션을 이용한 웹 페이지 연동 기능 (0) | 2024.08.19 |
[Web] 팝업창 띄우지 않기 (0) | 2024.08.18 |