방명록 foother, scope, filter, fetch 함수

두부링·2025년 1월 9일

웹프로그래밍

목록 보기
5/20

웹프로그래밍

1. 방명록

foother

  • Dto는 static을 붙힐 필요가 없다. 왜냐면 그렇게 하면 공간이 하나만 생겨서 하나의 정보밖에 담지 못함
  • 그리고 이건 생성자와는 상관은 없음

2. 로그인 기능 전 사전 학습

2 . 로그인

2-1. scope

Scope는 request 혹은 session에 데이터를 담아서 jsp에 전달해서 작업을 위임하는 과정

request.setAttribute("키", value);

데이터를 "키 : 내용" 형식으로 담는다.

request.getRequestDispatcher("전달할 경로");

  • 참고로 dispatch는 보내다의 의미임
  • fetch : 가지고 오다 vs dispatch : 보내다

    전달한 경로를 scope가 얻어온다.
    쉽게 사용하기 위해서 변수에 담음

rd.forward(request,response)

경로를 이동해서 매개 객체를 사용하겠다.

request.getAttribute(키값)


<ArrayList 타입의 표현>

scope에 담겨있는 데이터를 가지고 온다.
object type이으몰 반드시 데이터 타입 변경을 해야하며
서버에서 받은 데이터이므로 getAttribute

2-2.El

${requestScope.키값}

데이터를 가져오는 표현식을 간단하게 사용(단 키값을 이용함)

EL의 다양한 표현

2-3. Session

웹브라우저를 열고있는 동안 scope 영역을 넓혀라!

request는 일회성
session은 웹브라우저를 닫기 전까지 넓혀라

3. 로그인 & 로그아웃

3-1. 내가 로그인 & 아웃 기능을 만들기 위해서는?

로그인
1. form 양식으로 아이디 정보 받아오기
2. sessio.getAttribute로 정보를 받아오고
3. null이 아니면 save.jsp 페이지로 이동해서 저장 성공
4.

request와 session은 데이터를 담는 그릇이라고 생각하기(키 :value)

4. Filter

웹브라우저가 요청을 하고 응답을 주는 중간에 새로운 길을 만들어서 검증하는 느낌이다!

우리가 사용하는 필터는 jakarta Filter 이다.

4-1. AdminFilter

  • session은 무엇인가?
    웹브라우저 종료 전까지 데이터가 담기는 공간
    request(일회성 데이터를 저장하는 공간) -> session(기억할 데이터를 저장하는 공간)

  • session.getAttribute 와 request.getParameter의 공통점과 차이점?
    공통점 : 데이터를 가져오는 역할
    차이점 : 데이터가 저장되는 공간과 가져오는 방식

session.getAttribute
1. 웹브라우저가 작동될 때까지 데이터가 공간에 있음
2. object 형식으로 가져옴
3. 서버에서 관리하는 데이터
4. 로그인 상태 유지

request.getParameter
1. 한번의 요청과 응답하면 데이터가 공간에서 사라짐
2. String 형식으로 가져옴
3. 사용자가 입력하는 값을 가져옴
4. HTML의 형식 입력, 인터넷 상태에서 하는 설문조사

같은 폼에 담기더라도 어떤 공간에 담기느냐에 따라서 유지되는 시간이 다름

원래의 작업으로 돌아가고 필터길 없애자!

4-2. LoginFilter

  • 로그인의 유무를 필터에서 확인 후 게임 구매 사이트를 갈지 말지

4-3. LogFilter

  • getRequestURI() : 접속한 페이지의 자원의 위치
  • getRemoteAddr() : 접속한 유저의 ip 알아내기
  • LocalDateTime.now() : 접속한 시간을 알아낼 때

유저의 정보를 알고싶을 때 사용

  1. ServletRequest를 HttpServletRequest로 casting해서 기능 확장
  2. 확장한 객체로 기능 이용

request(일회성 데이터를 저장하는 공간)-> session(기억할 데이터를 저장하는 공간)

5. fetch 함수

= 데이터를 가져와!

5-1. fetch의 다양한 표현


5-2. fetch의 최종 완성본

루트 경로에 요청을 보냄 -> 응답을 받아서 text로 변환 -> 변환된 데이터를 받아서 콘솔에 출력

  • fetch 함수로 요청을 보내고 가져오기에 페이지를 이동하지 않고
    한 페이지에서 해결 가능하게 된다.

페이지 이동 없이 결과를 받아오고 싶을 때 사용함.
회원 가입 시 아이디 중복 검사할 때 사용함.

<보완>
1. 자바스크립트의 역활, +, backtic
2. 서블릿 추가하면 서버를 껐다가 켜야함
3. req는 웹브라우저가 서버에 요청 / resp는 서버가 어떻게 응답할지
=> req에서는 웹브라우저의 요청말 , resp는 서버의 응답말
4. 빈문자열과 null의 차이가 있는가? 있음

  • 빈문자열("") : 길이가 0인 문자열 객체 = 빈상자
  • null : 참조형 객체가 아무 것도 가리키고 있지 않음 = 빈상자도 없는 상태
profile
하이하잉

0개의 댓글