[20221017] myweb 로그인

kangsun·2022년 10월 16일
0

JSP

목록 보기
9/16

로그인




회원가입페이지를 만든다는 것은 업무분석이 끝났다는 것이다.


sql


(1) 회원등급 지정

  • 관리자 : 모든 권한을 이용할 수 있는 등급 / 의사결정권자
  • 일반 사용자: 회원가입 시 기본
  • 탈퇴한 회원: 사용자가 탈퇴해도 정보를 남겨놓는다 delete or update - D등급에서 F등급으로 내려간다.

→ 등급에 따라 보여지는 화면이 달라야한다.
→ A1, A2, A3처럼 관리자 안에서도 또 등급이 달라질 수도 있다.

(2) 회원테이블 생성


  • cmd로 테이블 생성하고 commit까지 완료하기

(3) index.jsp와 header.jsp에 링크 걸려있는지 확인하기



(4) ./member/loginForm.jsp 생성




(5) net.member package 생성



(6) MemberDTO.java

  • sql문 테이블 긁어와서 멤버변수, 기본생성자 작성

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
  • getter, setter 소스 자동 생성
  • toString() 자동 생성


(7) MemberDAO.java

  • 설명




scope


임시캐비넷 번호


  • 사용자가 내 서버에 요청을하면 1차적으로 공용공간에 접근한다.
  • 2차로 나만의 공간에 들어간다. (임시로 나만 접근할 수 있는 번호를 준다.)
  • 각 사용자를 구별할 수 있는 임시 캐비넷번호를 준다.

임시캐비넷 번호 확인방법


  • get방식
  • 코드상태 정상 작동되고 있다는 의미

  • 서버가 임시로 나에게 주는 캐비넷 번호.

  • 이런식으로 캐비넷이 추가되는 것이다.

  • Application : 모든 사람이 이용할 수 있는 공용 공간
  • Session : 나만 이용할 수 있는 전용 공간

  • Application 저장소 : 서블릿 컨텍스트(Context)
    웹어플리케이션 단위로 정보를 서버 쪽에 유지할 수 있게 하는 객체


내장객체 및 내부변수

/scope/01_scopeTest.jsp

JSP 내장객체

  • JSP페이지가 서블릿에서 변환될때(.class) JSP컨테이너(Tomcat웹서버)가 자동적으로 제공
  • JSP페이지 내에서 제공하는 특수한 레퍼런스(참조)타입의 변수이다.
  • 객체 생성없이 바로 사용할 수 있는 JSP의 객체

1) out : 출력객체
2) pageContext : JSP페이지 자체의 Context 제공(현재페이지에서만 가능)
3) request : 요청에 관한 정보
4) response : 응답에 관한 정보
5) session : 요청에 관한 Context 제공
6) application : 서블릿 및 외부 환경 정보 Context 제공


Scope의 종류

  • myweb 프로젝트에서 페이지들간에 값을 공유하기 위해 사용 (내장객체에 있는 함수를 잘 사용하면 된다.)

1) pageContext : 현재 페이지에서만 유효하다. 기본값
2) request : 부모페이지와 자식페이지에서만 유효
3) session : myweb프로젝트의 모든 페이지에서 유효 (사용자 개별 접근, 시간)
4) application : myweb프로젝트의 모든 페이지에서 유효 (모든 사용자 접근, 서버 정보)


내부변수 선언 형식- setAttribute()

1) pageContext.setAttribute("변수명", 변수 안에 넣을 값)
2) request.setAttribute("변수명", 값)
3) session.setAttribute("변수명", 값)
4) application.setAttribute("변수명", 값)


내부변수값 가져오기 - getAttribute()

1) pageContext. - getAttribute("변수명") : 페이지에서만
2) request.getAttribute("변수명") : 요청한 애들끼리만
3) session.getAttribute("변수명") : 나만
4) application.getAttribute("변수명") : 공용

※ 1 -> 4 순서대로 기억하기!


실습해보기


변수에 담기

  • getAttribute함수의 내부객체 자동완성을 보면 object로 반환한다는 것을 알 수 있다. 변수에 담기 위해선 Object 안에 담아야한다.



로그인 하기위해선 session영역을 사용해야한다.



내부변수 삭제 - removeAttribute()

  • null값이 나온다.



웹페이지의 SCOPE (유효범위)

02_scopeTest.jsp


페이지 이동 종류

1) <a href=""></a>
2) location.href=""
3) <form action=""></form>
4) <jsp:forward page=""></jsp:forward>
5) response.sendRediredt("")

  • 값 세팅



02_scopeResult.jsp

1) <a href=""></a>




2) <form action=""></form>


3) location.href=""



4) <jsp:forward page=""></jsp:forward>


  • request 값이 나온다.

➡️ request 내부변수는 부모페이지(02_scopeTest.jsp)와 자식페이지(02_scopeResult.jsp)에서만 유효한다.
➡️ bbsList 페이지에서는 사용할 수 없다.

5) response.sendRediredt("")

JSP 내부객체에 있는 함수

★ 6) response.sendRediredt("")



➡️ 4)<jsp:forward page=""></jsp:forward> 보다 6)번을 더 많이 사용해야한다.

  • request만 신경써서 사용하면 된다.


웹서버에서 사용자들이 입력한 값을 서블릭에서는 request를 이용해 값을 불러올 수 있다. request에 모두 저장된다.


session 내장객체


03_sessionTest.jsp

아이디가 없을 때 서버에 요청을 하면 임시로 캐비넷이 생성된다. (ex.200번)그 캐비넷 번호가 서버에 저장이되고(ex.200번) 그 이후엔 다시 쓸 수 없다.

아이디가 생성되면 생성된 아이디에 캐비넷이 발급(ex.107번)되는데 그 이후엔 계속 그 캐비넷 번호로 계속 저장된다.(ex.107번) 아이디가 생성된후 캐비넷이 생성되면 페이지를 이동해도 캐비넷 번호는 계속 유지된다.메일로 가도 107번, 다른 페이지로 이동해도 107번이 유지된다.

  • HttpSession session
  • 요청한 사용자에게 개별적으로 접근(나만의 캐비넷, 방) - 이름을 만들어줌
  • 선언한 세션변수는 전역적 상태로 유지된다. 즉, 내 방번호
  • 요청한 정보의 상태를 유지하기 위해서
  • 일정시간동안 이벤트가 발생되지 않으면 자동 삭제 (일정시간이 지나면 재로그인 해야되는 것)

세션 내장객체에서 발급해주는 임시 아이디 - getId()




세션변수

세션변수값 가져오기

getAttribute()

세션변수 강제 제거 01 (로그아웃할 때) → null값

removeAttribute()



세션변수 강제 제거 02 세션영역에 있는 모든값 전부 강제 삭제

session.invalidate();

removeAttribute(), invalidate() 둘 다 사용할 수 있다.




세션시간


세션시간 변경





/WEB-INF/web.xml 배치관리자에서 세션시간 변경


  • custom tag : 사용자 정의 태그

  • 이부분을 추가해준다.





application


04_applicationTest.jsp


application 내장객체

  • ServletContext application
  • 사용자 모두가 공유하는 전역적 의미의 객체
  • 서버에 대한 정보를 관리하는 객체

  • 물리적인 경로가 나온다




aplication 내부 변수







response 내장객체






로그인/로그아웃 연습


sql

  • cmd에서 행추가하기



로그인 sql문 작성

  • 아이디와 비밀번호가 일치하면 회원등급을 가져올 것이다
  • (1등급인 사람에게는 1등급화면을 보여주고, 2등급인 사람에게는 2등급만 볼 수 있는 화면을 보여줄 것이다.)
  • 유효한 회원 - A1,B1,C1,D1 만 조건을 따로 주어야 한다.(비회원과 탈퇴회원은 제외)


로그인 DAO 작성




  • 물음표에 이 값을 넣어주면 된다.


  • 기존 bbs 폴더안에 있던 ssi.jsp를 복사해와서 저 부분만 바꾸어준다.

  • loginForm.jsp에서 ssi.jsp를 include해주고, form이 전송될 수 있도록 action=""기능을 넣어준다.
  • loginProc.jsp로 loginForm이 보내진다.

실행확인

  • webmaster / A1 - 로그인 성공




  • itwill / D1 - 로그인 성공




  • user1 / F1 - (탈퇴회원) 로그인 실패





⚠️ 에러 : 로그인 실패 오류 해결방법

  • cmd 창에서 테이블 commit; 해준 후 다시 실행시키니 정상 로그인 되었다.





profile
코딩 공부 💻

0개의 댓글