비전공개미 개발노트
[JSP] 로그인페이지 기본처리 본문
반응형
SMALL
loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginProc.jsp" method="post">
ID : <input type="text" name="userId"><br>
PW : <input type="password" name="userPwd"><br>
<input type="submit" value="로그인">
</form>
<br>
<a href="loginProc.jsp">로그아웃</a>
</body>
</html>
loginProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if(request.getMethod().equals("POST")){ %>
<%
//인코딩변경 utf-8(한글깨짐 방지)
request.setCharacterEncoding("UTF-8");
//Parameter값 가져오기
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
//값이 비어있을때 로그인페이지로 이동
if(userId.isEmpty() || userPwd.isEmpty()){
RequestDispatcher rd = request.getRequestDispatcher("loginForm.jsp");
rd.forward(request, response);
return;
}
//아이디와 비밀번호 확인
if(userId.equals("admin") && userPwd.equals("admin")){
response.sendRedirect("loginSuccess.jsp");
}else{
//response.sendRedirect("loginFail.jsp");
}
//로그인 처리(session)
if(session.isNew() || session.getAttribute("userId") == null){
session.setAttribute("userId", userId); //userId란 이름으로 userId등록
out.print("로그인 성공");
}else{
out.print("이미 로그인 상태입니다");
//session.invalidate(); //session.destroy
//관리자모드 application -> cookies -> url우클릭 -> clear
}
%>
<br>
아이디 : <%=userId %> / 비밀번호 : <%=userPwd %>
<%
}else if(request.getMethod().equals("GET")){
if(session != null || session.getAttribute("userId") == null){
session.invalidate();
out.print("로그아웃 되었습니다");
}
}else{
out.print("현재 로그인상태가 아닙니다");
}
%>
</body>
</html>
인코딩 변경(한글깨짐 방지)
- request.setCharacterEncoding("utf-8");
<% request.setCharacterEncoding("utf-8"); %>
Parameter값 가져오기
<%
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
%>
Parameter값이 비어있을때 로그인페이지로 다시 되돌리기
<!-- RequestDispatcher -->
<%
if(userId.isEmpty() || userPwd.isEmpty()){
RequestDispatcher.rd = request.getRequestDispatcher("loginForm.jsp");
rd.forward(request, response);
return
}
%>
로그인 처리
<!-- session값이 isNew()새로운값이거나 session의 userId값이 비어있으면 -->
<%
if(session.isNew() || session.getAttribute("userId") == null){
session.setAttribute("userId", userId);
out.print("로그인 성공");
}else{
out.print("이미 로그인 상태입니다.");
}
%>
로그아웃 처리
<!-- session값이 null이 아니거나 session의 userId값이 null이 아닌경우 -->
<!-- session.invalidate() => 세션의 무효화 -->
<%
if(session != null || session.getAttribute("userId") != null){
session.invalidate();
out.print("로그아웃 성공");
}else{
out.print("현재 로그인 상태가 아닙니다.");
}
%>
반응형
LIST
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP] jsp:include를 이용해서 페이지 불러오기 (0) | 2022.10.12 |
---|---|
[JSP] 세션 설정하기 (0) | 2022.10.11 |
[JSP] jsp:include를 사용해 페이지 불러오기 (1) | 2022.10.11 |
[JSP] jsp:forward를 사용해 페이지 불러오기 (1) | 2022.10.11 |
[JSP] web.xml파일을 이용해 초기 id, pw 설정 및 확인 (0) | 2022.10.11 |
Comments