반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

[JSP] 로그인페이지 기본처리 본문

프로그래밍/JSP

[JSP] 로그인페이지 기본처리

비전공개미 2022. 10. 11. 19:38
반응형
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
Comments