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
관리 메뉴

어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

23.03.28 / jsp - session 내장 객체 이용한 로그인 후 권한 관리 본문

Back - end/JAVA

23.03.28 / jsp - session 내장 객체 이용한 로그인 후 권한 관리

낫쏘링 2023. 3. 28. 15:57
728x90

내장 객체 : JSP 내에서 선언하지 않고 사용할 수 있는 객체 ( request / out / session 

jsp 내에 자동으로 포함되어 있는 멤버변수(메소드 매개변수 등의 참조 변수)

session.setAttribute("name", value); // 세션 셋팅

String 변수 = (String)session.getAttribute("name");  // 세션 겟팅

session.invalidate();  // 세션 종료

name = 값을 저장해서 서버에 넘길 때 사용 / 받은 값을 비교할 때 사용 (변수 같은 기능)
name을 userId라고 설정했을 때 사용자가 아이디를 id01이라고 입력하면 userId에 id01이 담겨 서버로 넘어간다.
서버에서는 userId에 담긴 id01와 데이터베이스에 저장되어있는 정보와 비교한다.

value = 버튼이나 텍스트 폼에 입력하면 입력한 글자가 화면에 출력된다.
버튼 태그에서 value를 회원가입이라고 설정했을 때 버튼에 회원가입이라는 글자가 나온다.

 

<script type="text/javascript">
	alert("<%= message%>"); //경고창 뜨게 하는 것(message는 자바에서 선언된 변수)
	location.href="<%= request.getContextPath() %>/index.jsp";
    //location.href 로 페이지 이동
</script>

 

0. DB에 회원 정보가 등록되어 있다고 가정한다. (login_action)
String dbid = "id001";

1. top에서 사용자의 아이디와 비번을 받는다
form 태그로 아이디와 비번과 버튼을 하나로 묶어준다.
form 태그의 action 속성으로 form 태그에 묶여 있는 로그인 버튼 눌렀을 때 동작할 페이지를 경로 설정해준다.
form 태그의 method 속성으로 데이터를 보낼 방식을 선택한다.
아이디는 name = id / 비번은 name = pw

2. top에서 받은 데이터를 불러와서 login_action에서 변수를 선언해서 할당해 준다. 
String 변수 = request.getParameter("name")
(사용자가 입력한 데이터를 불러올 때 사용하는 코드 request.getParameter
코드 작성자가 다른 클래스에 작성한 데이터를 불러올 때 사용하는 코드
클래스 객체참조변수 = new 클래스();
String 새로운변수명 = 객체참조변수.불러올데이터의변수
헷갈리지 않도록 한다.)

3. DB에 등록된 회원 정보와 입력받은 사용자의 정보가 일치한다면 (로그인 성공)
login_action에서 세션을 생성해서 사용자가 입력한 정보(value)를 name에 담는다.
session.setAttribute("name",value)   
name은 다른데서 쓴 걸 가져오는 것이 아니고 여기서 새롭게 생성해주는 것.

name = 값을 저장해서 서버에 넘길 때 사용 / 받은 값을 비교할 때 사용 (변수 같은 기능)
name을 userId라고 작성했을 때 사용자가 아이디를 id01이라고 입력하면 userId에 id01이 담겨 서버로 넘어간다.
서버에서는 userId에 담긴 id01와 데이터베이스에 저장되어있는 정보와 비교한다.
value = name 혹은 태그에 담긴 값
버튼이나 텍스트 폼에 입력하면 입력한 글자가 화면에 출력된다.
버튼 태그에서 value를 회원가입이라고 설정했을 때 버튼에 회원가입이라는 글자가 나온다.

4. top에서 세션에 3번에서 저장된 사용자가 입력한 정보(value)를 문자열로 저장한다.
String 새로운변수 = (String)session.getAttribute("name");
name은 3번에서 생성해준 것을 그대로 쓴다.

[이 과정과는 상관 없지만... 그냥 써두는 /문자열을 숫자로 형변환해서 저장하는 방법
int 새로운변수 = Integer.parseInt("name"); ]

5. top에 4번에서 생성된 새로운 변수(S_LEVEL)와 권한(관리자,판매자,구매자)를 비교해서
권한에 맞는 메뉴를 넣어준다.
만약 관리자라면 회원가입,회원조회,상품등록,상품조회 총 4개
판매자라면 회원가입, 상품등록, 상품조회 총 3개
구매자라면 회원가입, 상품조회 총 2개
로그인 전이라면 회원가입 총 1개


왜 어떤 코드는 top에 작성하고 어떤 코드는 login_action에 작성할까?
top에는 화면에 출력된 레이아웃에서 상단에 나타나는 내용 및 정보를 불러오는 코드을 작성하고
login_action은 top이 작동하는데 필요한 정보를 작성

layoutLoginMG.war
0.01MB

728x90