[jsp] 로그인 session에 아이디 저장하기 / 다른 브라우저로 접근하여 session값 없을 때

seulki·2022년 10월 20일
0

jsp

목록 보기
39/51
post-custom-banner

🎈login_db.jsp - 로그인 성공 시 session에 id저장

<%@page import="com.koit.web.dao.UserDAO"%>
<%@page import="com.koit.web.dao.UserDAO"%>
<%@ 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>

<!-- 로그인 기능 -->
<!-- 성공 시 -> 메인 -->
<!-- 실패 -> 로그인 -->
<!-- 정보파라미터를 받아와서 DB, DAO -->

<%
	String userid = request.getParameter("userid");
	String userpw = request.getParameter("userpw");
	
	UserDAO udao = new UserDAO();
	boolean result = udao.login(userid, userpw);
	
	if(result){
		session.setAttribute("userid", userid);
%>
	<script type="text/javascript">
		location.href = "main_view.jsp"
	</script>
	<%
	}else{
	%>
	<script type="text/javascript">
		alert("로그인 실패");
		history.go(-1);
	</script>
	<%
	}
	%>

</body>
</html>
  • UserDAO에 사용자가 로그인시 입력한 id, pw를 파라미터로 보내서 로그인 성공시 true 반환
  • 로그인 성공 시, session 객체에 userid 저장


🎈main_view.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>
	<%
	String userid = (String)session.getAttribute("userid");
	if(userid == null){
	%>
		<script>
			alert("로그인 후 이용해주세요");
			location.href='login_view.jsp';
		</script>
	<%	
	}else{
	%>
		<script type="text/javascript">
			alert("<%=userid%>님 안녕하세요!");
		</script>
	<%
	}
	%>	
	
	<p>
		<%=userid %>님 <input type="button" value="로그아웃">
	</p>
</body>
</html>
  • session 객체는 브라우저마다 각각 존재하기 때문에,
    Chrome에서 로그인 후, main화면으로 넘어가면 session 객체에 담긴 id값을 가져오지만, Edge 브라우저에서 메인화면에 접근할 시 session 객체에 저장된 id값이 없어 null로 표시된다.
  • 크롬
  • 엣지
  • 그래서 다른 session값이 null일때는 로그인페이지로 이동시켜야한다.
profile
웹 개발자 공부 중
post-custom-banner

0개의 댓글