티스토리 뷰

41기 개발자과정

20210917 jsp-session

segment 2021. 9. 17. 23:43

로그인 session 실습

 

index.jsp

<%@ include file="/module/top.jsp" %>
<%@ include file="/module/left.jsp" %>		 
	          <a href="#">Download this CSS Layout</a>		 
<%@ include file="/module/hadan.jsp" %>

 

<%@ include file ="top.jsp" %>  : top.jsp 코드가 index.jsp에 포함되어 실행된다.

 


top.jsp

<form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post">
아이디	<input type="text" name="id">		
비번		<input type="text" name="pw">	
		<input type="submit" value="로그인버튼">
</form>

<%= request.getContextPath() %> : 특정 jsp나 폴더 경로를 잡아주기위한 문법

 

 

login_action.jsp

<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
System.out.println(id + "<- id ");
System.out.println(pw + "<- pw ");
String dbid = "id001";
String dbpw = "pw001";
String dbname = "홍길동";
String dblevel = "관리자";	//구매자 또는 판매자 또는 관리자 또는 최고관리자 권한 변경 테스트
if(id.equals(dbid)){
	System.out.println("1-1 아이디 일치");
	
	if(pw.equals(dbpw)){
		System.out.println("2-1 로그인 성공");
		session.setAttribute("S_ID", dbid);
		session.setAttribute("S_NAME", dbname);
		session.setAttribute("S_LEVEL", dblevel);
		response.sendRedirect(request.getContextPath() + "/index.jsp");
		
	}else{
		System.out.println("2-2 비번 불일치");
	}
}else{
	System.out.println("1-2 아이디 불일치");
}
%>

getParameter()메서드로 사용자가 입력한 데이터를 가져올 수 있다.

form 데이터에 <input type = "text" name ="id"> / <input type = "password" name="pw"> 를 입력하고 submit으로 서블릿을 호출할때 request.getParameter("name값") 으로 올 수 있다.

getParameter는 항상 String 형태로 반환하므로 int 타입으로 값을 저장하고 싶다면 변환을 해주어야 한다.

 

아이디, 비밀번호 일치 -> 로그인 성공

아이디 불일치 -> 아이디 불일치

아이디 일치, 비밀번호 불일치 -> 비번 불일치

 

session.setAttribute(String name, Object value);
세션에 데이터를 저장. name이 저장할 데이터의 이름이 되고, value에 저장할 값을 지정.

 

session 객체(영역)
data 영역
s_id : "id001";
s_name : "일길동";
s_level : "관리자";

 

response.sendRedirect : 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 응답하는 기능

아이디, 비밀번호가 일치하면 index 페이지로 경로를 찾아간다. 이동하지 않으면 login_action 빈화면에서 끝난다.


top.jsp

<%
String S_ID = (String)session.getAttribute("S_ID");
String S_NAME = (String)session.getAttribute("S_NAME");
String S_LEVEL = (String)session.getAttribute("S_LEVEL");
System.out.println(S_ID + "<--S_ID");
System.out.println(S_NAME + "<--S_NAME");
System.out.println(S_LEVEL + "<--S_LEVEL");
%>

session 영역 확인

실행 전 null<--S_ID
null<--S_NAME
null<--S_LEVEL
실행 후 id001<--S_ID
일길동<--S_NAME
관리자<--S_LEVEL

 

 

String str = (String) session.getAttribute("ID");  : 세션에 저장된 값을 조회한다.


logout.jsp

<%
	session.invalidate(); //세선종료
%>
<script type ="text/javascript">
	alert('로그아웃');
	location.href='<%= request.getContextPath()%>/index.jsp';
</script>

session.invalidate() : 세션을 종료하고 값을 초기화한다.

 

null<--S_ID
null<--S_NAME
null<--S_LEVEL

 


<script type ="text/javascript">
alert('로그인 성공');
location.href='<%= request.getContextPath()%>/index.jsp';
</script>

알림창 : 로그인 성공


<!-- 1.1 로그인 전 화면 시작    -->
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<form action ="<%= request.getContextPath() %>/login/login_action.jsp" method="post">
id : <input type ="text" name ="id">
pw : <input type ="password" name="pw">
<input type="submit" value="로그인버튼">
</form>

<!-- 1.2 로그인 후 화면 끝 -->
<%
}else { 
	if(S_LEVEL.equals("구매자")){

%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="#">04상품검색</a>

<%
	}else if(S_LEVEL.equals("판매자")){
%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="#">03상품등록</a>
<a href="#">04상품검색</a>
<%
}else if(S_LEVEL.equals("관리자")){
%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="<%= request.getContextPath() %>/user/user_list.jsp">02회원검색</a>
<a href="#">03상품등록</a>
<a href="#">04상품검색</a>	<br/>
<%
}
%>

<!-- 1-2. 로그인 후 화면 시작 -->
<%= S_NAME %>님, <%= S_LEVEL %>권한으로 로그인 중
<a href="<%= request.getContextPath() %>/login/logout.jsp">로그아웃</a>

<!-- 1-2. 로그인 후 화면 끝	 --> 
<%
}
%>

1.1 로그인 전 시작 화면 

: 01 회원가입 메뉴만 보여준다.

 

1.2 로그인 성공

: 권한이 구매자 --> 회원가입, 상품검색

권한이 판매자 --> 회원가입, 상품등록, 상품검색

권한이 관리자 --> 회원가입, 회원검색, 상품등록, 상품검색

 

<%= %> 표현식(expression) : out.print(" 이부분에 들어갈 문자열이나 값");

 

관리자권한

 

로그인 전 화면

 


팀프로젝트 주제정하기.

 

1. 공공데이터 사이트 활용

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

실시간이나 정보를 받아올 수 있다.

open api 활용

 

 

 

'41기 개발자과정' 카테고리의 다른 글

20210924 mysql 접근 오류페이지  (0) 2021.09.24
20210923 - mysql DBMS 구축  (0) 2021.09.23
20210915  (0) 2021.09.15
20210914 js - push, 실습예제  (0) 2021.09.14
20210913 js 실습예제 ~ 배열  (0) 2021.09.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/04   »
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
글 보관함