🎈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>
<%
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일때는 로그인페이지로 이동시켜야한다.