yj o
64
2021-06-03 23:51:49
5
199

JSP 로그인 세션 질문입니다



<%@page import="util.DatabaseUtil"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>제주도 버스 정류장</title>
<style type="text/css">
*{margin: 0; padding:0;}
.main_wrap {
	width:  100%; min-width: 600px; max-width: 1000px;
	margin: 0 auto; position: relative;
}
h1{text-align: center;}
.data_wrap{width: 75%; height: 500px; background: pink; float: right;
margin: 0 auto; overflow-y: scroll; margin-top: 50px; position: relative;
}
.data_wrap ul{
width: 100%;
box-sizing: border-box;
display: flex;
}
.data_wrap ul li{width: calc(100% / 6); height: 50px; text-align: center;
list-style: none; border: 1px solid black; border-collapse: collapse;
display: flex; align-items: center; justify-content: center; 
}
.data_wrap .main_ul{background-color: orange;}
.data_wrap ul:nth-child(even) {
background-color: silver;	
}

 .login_wrap{
 	width: 25%; height: 500px; float: left;
 	background-color: rgb(236,186,158);
 	margin: 0 auto; border-radius: 15px;
 }
 
 .login_wrap h1{
 	text-align: center; padding: 50px 0;
 }
.login_wrap h4{
	text-align: center;
}
.login_wrap .fm{ 
	width: 80%; margin: 0 auto;
}
.login_wrap div{ 
	height: 50px; border-bottom: 1px solid black;
	display: flex; align-items: center;
}
.login_wrap .fm span {
	display: inline-block; float: left; width: 20%;
}
.login_wrap .fm input {
	height: 100%; width: 80%; font-size: 20px; background: none; 
	padding: 0 15px; box-sizing: border-box; border: none;
}
#login_bt {
	background-color: rgb(78, 213, 161);
	width: 100%; margin-top: 40px; cursor: pointer;
	padding: 10px 0;
}
#login_bt:hover {
	color: rgb(24,85,62);
	outline: 1px pink solid;
}
#logout_bt {
	background-color: rgb(35, 117, 86);
	width: 100%; margin-top: 40px; cursor: pointer;
	padding: 10px 0; display: none;
}
#logout_bt:hover {
	color: rgb(78, 213, 161);
	outline: 1px pink solid;
}
#singup_bt {
	background-color: rgb(35, 117, 86);
	width: 100%; margin-top: 40px; cursor: pointer;
	padding: 10px 0;
}
#singup_bt:hover {
	color: rgb(78, 213, 161);
	outline: 1px pink solid;
}


</style>
</head>
<body>
<div class = "main_wrap">
<h1>제주도 버스정보</h1>
<div class="">
	<form action="login.jsp" method="post">		
		<input class="bt" type="submit" value="회원전용" >		
	</form>		
</div>
<%@ page import="java.sql.DriverManager,
				 java.sql.Statement,
				 java.sql.ResultSet,
				 util.DatabaseUtil,
				 java.sql.Connection"%>

<% 
	String userID = null;
	
	if(session.getAttribute("userID") != null) {
		userID = (String) session.getAttribute("userID");
		//out.println("<script>alert('로그인상태');</script>");
	}
		
	Connection conn = DatabaseUtil.getConnection();
	/* out.println(conn);*/
	
	Statement stmt = conn.createStatement();
	
	String query = "SELECT * FROM jeju_bus_data";
	
	ResultSet rs = stmt.executeQuery(query);
	
	
	
%>
<div class="data_wrap">
	<ul class="main_ul">
		<li>정류소ID</li>
		<li>정류소명</li>
		<li>경도</li>
		<li>위도</li>
		<li>위치정보</li>
		<li>갱신날짜</li>
	</ul>
	<%while(rs.next()) {%>
	<ul>
		<li><%out.println(rs.getString("정류소ID"));%></li>
		<li><%out.println(rs.getString(2));%></li>
		<li><%out.println(rs.getString(3));%></li>
		<li><%out.println(rs.getString("위도"));%></li>
		<li><%out.println(rs.getString(5));%></li>
		<li><%out.println(rs.getString("데이터기준일자"));%></li>
	</ul>
	<%} %>
</div>

<div class="login_wrap">
		<h1>L o g i n</h1>
		<h4>오신걸 환영합니다.</h4>
		<form class="fm" action="userLoginAction.jsp" method="post">
			<div class="idpass">
				<span>ID</span>
				<input type="text" name="userID">
			</div>
			<div class="idpass">
				<span>PW</span>
				<input type="password" name="userPW">
			</div>
			<input id="login_bt" type="submit" value="LOG IN">
		</form>	
		<form class="fm" action="">
			<input id="logout_bt" type="submit" value="LOG OUT">		
		</form>
		<form class="fm" action="user_singup.jsp" method="post">
			<input id="singup_bt" type="submit" value="SING UP">		
		</form>
	</div>			 
</div>
<script type="text/javascript">
	var login_bt = document.querySelector("#login_bt");
	var singup_bt = document.querySelector('#singup_bt');
	var logout_bt = document.querySelector('#logout_bt');
	var idpass = document.querySelectorAll('.idpass');
	var h4 = document.querySelector('h4');
	
	var userID = <%=userID %>;
	//   js          java
	
	var ddd = <%=userID %>
	
	console.log("cccccccccc");
	
	if (ddd == null) {
		login_bt.style.display = "block";
		singup_bt.style.display = "block";
		logout_bt.style.display = "none";		
	}else {
		login_bt.style.display = "none";
		singup_bt.style.display = "none";
		logout_bt.style.display = "block";
		h4.innerHTML = userID+"님<br>에 오신걸 환영합니다.";
		idpass[0].style.display = "none";
		idpass[1].style.display = "none";
	}
	
	logout_bt.addEventListener("click", function() {
		<%session.invalidate();%>
		location.href = 'index.jsp';
	});
	
	


</script>
</body>
</html>

로그인을 하면 로그인탭쪽이 바뀌게 작성 해놨는데..

콘솔에서 보시는거 처럼 아이디를 찾을수 없다고 나옵니다..

스크립트 부분을 지우고 얼럿으로 띄워보면 로그인이 되있다고 뜨는데

스크립트 부분을 다시 넣고 해보면 로그인 유지가 안되는거 같습니다..

도대체 뭐가 문제인지 모르겠습니다 ㅜㅜ 도와주세요


0
  • 답변 5

  • 제리뿅
    131
    2021-06-04 00:26:13
    ""로 감싸도 안되나요?
  • kim0833
    305
    2021-06-04 00:33:48

    따옴표로 안감싸시면 변수를 찾습니다.

  • yj o
    64
    2021-06-04 01:38:07

    감사합니다 ㅜㅜ

    따옴표 넣으니 아이디값 제대로 들어가네요

    질문 하나만 더 해도 될까요

    로그인을 해도 화면이 바뀌질 않아서 로그를 다 찍어 봤는데...

    콘솔로 보니 로그인을 해도 else문이 작동을 안해요 ㅜㅜ

    else문이 문젠가 싶어서 강제로 not null 주고 돌려보니 또 로그가 제대로 찍힙니다..

    뭐가 문제일까요 ㅜㅜ



    ------------------------------------------------------------------------------------------------------------------------------------------




  • 제리뿅
    131
    2021-06-04 03:23:15
    우선 if의 조건을 userID!=null && userID==("")로 하고 else문에 있던걸 넣어보시겠어요?
  • yj o
    64
    2021-06-04 11:47:11

    제리뿅 


    if문에다가 userID!=null && userID==("") 하니까 로그인 전에도 else문만 출력이 되네요..

    처음부터 다시 해봐야겠습니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.