본문 바로가기
레거시

2022.1.14의 기록

by GroovyArea 2022. 1. 14.

▶ 나는 어떤 사람(목표)이 되고 싶은가 (매일 고민하자) 

> 단순 성공 => 돈 많이 버는 사람?


▶ 오늘 실현 가능한 세부 목표

=> 세미팀프로젝트 계획 3개 나눈다.

1) 오늘 디자인 범위 여부 2) 노트북 없는 친구 나올지 말지 여부 3) 내일 팀 회의 상세 계획

1.  내일 팀 회의 때 디자인 관련 파트 구체적으로 팀원 별로 나눌 예정

2.  본격적 디자인 시점부터 집에서 디코로 참석.

3.  쇼핑몰을 보며 첫번째 구상한 DB 컬럼 참조관계 하나하나 파헤쳐 볼 생각.

 => 오늘 배운 JSP 예제로 코드 만들기.


공부 내용

JSP

표준 액션 태그

  1. include Directive : 외부파일(JSPF)의 코드 (HTML, Java 등) 포함
  • ⇒ JSP 문서에 외부파일의 코드를 포함하여 페이지 구현
  • ⇒ 외부파일의 코드가 변경될 경우 JSP 문서가 변경된 것과 동일하므로 서블릿 변환 발생

⇒ file 속성값으로 표현식 (Expression) 사용 불가능 - 속성값으로 설정된 파일의 코드만 포함(정적 포함)

2. include ActionTag : 스레드가 이동된 다른 JSP 문서의 실행결과(HTML) 포함 (req,res 객체도 똑같이 넘겨줌)

  • 형식) <jsp:include path=”JSP”><\jsp:include>
  • ⇒ 현재 JSP 문서에서 page 속성값으로 설정된 JSP 문서로 스레드를 이동시켜 실행결과를 얻어와 현재 JSP 문서에 포함하여 페이지 구현
  • ⇒ page 속성값으로 설정된 JSP 문서를 변경해도 현재 JSP 문서에는 미영향
  • ⇒ page 속성값으로 표현식 사용 가능 - 표현식에 사용된 변수값에 따라 다른 JSP 문서의 실행 결과를 포함 (동적 포함)
  • ⇒ page 속성값으로 설정된 JSP 문서가 없는 경우 500 에러 발생
  • param 태그 : 스레드가 이동되는 JSP 문서에 값을 전달하는 태그
  • ⇒ 리퀘스트 바디에 전달값을 저장하여 JSP 문서에 값 전달
  • 주의 ) include 태그 내부에는 param 태그와 다른 코드가 존재할 경우 500 에러 발생
  • ⇒ jsp 주석문은 예외

include 액션 태그 실행 시 도식도. 결과 값을 본 요청 문서에 포함한다!

  • 스레드가 이동된 JSP문서는 요청 JSP 문서의 request, response 내장 객체를 전달받아 사용
  • ⇒ 스레드가 이동된 JSP 문서에서는 다른 JSP 문서의 내장객체를 사용하므로 사용에 제한 발생함.
  • 스레드가 이동된 JSP 문서에서는 request 내장객체에 대한 리퀘스트 메시지의 정보 변경 불가능
  • ⇒ 주의)request.setCharacterEncoding() 메소드를 호출하여 캐릭터 셋 변경 불가능
  • ⇒ 해결) 클라이언트의 요청 JSP 문서에서 request 내장객체에 대한 리퀘스트 메시지의 정보request.setCharacterEncoding() 메소드 호출
  • ⇒ 주의) 스레드가 이동된 JSP 문서에서는 response 내장객체를 이용하여 에러코드 전달이나 URL 주소 전달 불가능. sendError, sendRedirect 메소드 사용 불가. (클라이언트에 주는 것이기 때문)
  • =⇒ 스레드가 이동된 JSP 문서에서는 응답 결과(HTML)를 요청 JSP 문서로 제공하기 때문.
  • ⇒ 해결) response.sendRedirct() 메소드 대신 자바스크립트를 이용하여 페이지 이동 가능

 

템플릿 페이지

  • 클라이언트의 모든 요청에 대한 응답 결과를 제공하기 위한 JSP 문서

템플릿 페이지 예시 컨텐트의 내용을 JSP로 받아온다.&nbsp;

  • 동적인 액션 태그 사용 (없으면 500 에러)
  • Content 영역은 템플릿페이지 (index.jsp) 요청 시 전달되는 값에 따른 다른 JSP 문서의 실행 결과를 동적으로 포함하여 응답
  • ⇒ 스레드가 이동될 JSP 문서가 없는 경우 ServletException 발생 (500)

해당 컨텐트가 작성된 jsp 파일을 값으로 직접 요청한다,

  • 값을 요청 받아 같은 템플릿 페이지 내에서 include로 포함
  • 상대경로 표현 : 클라이언트 요청 JSP 문서의 경로를 기준으로 리소스 파일의 경로 표현
  • 템플릿 페이지의 JSP 문서 경로를 기준으로 리소스 파일 경로 표현 가능
  • ⇒ 템플릿 페이지가 아닌 스레드가 이동된 JSP 문서를 요청한 경우 404 에러코드 발생함. (경로 문제)
  • 템플릿 페이지를 이용한 사이트에서는 요청 JSP 문서 경로와 응답 JSP 문서 경로가 서로 다르므로 리소스를 상대경로로 표현한 경우 404 에러코드가 발생
  • ⇒ 리소스 경로를 절대경로로 표현하는 것을 권장
  • 절대경로: 최상위 디렉토리를 기준으로 리소스 파일의 경로 표현
  • ⇒ 클라이언트에서 실행되는 언어(HTML,CSS,JS)는 서버 디렉토리를 최상위 디렉토리로 표현
  • 컨텍스트명이 변경될 경우 리소스 파일의 절대경로도 변경되어 404 에러코드 발생 가능
  • ⇒ 컨텍스트 경로가 변경될 경우 리소스 파일의 절대경로도 변경되도록 설정

메소드를 이용하여 현재 경로를 반환받아 표현식에 작성으로 경로 표현.

forward 액션 태그

  • forward 태그 : 현재 JSP 문서에서 page 속성값으로 설정된 JSP 문서로 스레드를 이동시켜 명령 실행 후 처리 결과를 클라이언트에게 전달(응답)하도록 구현 - 포워드 이동

포워드 후 마지막 값을 그대로 클라이언트에게 응답

⇒ 포워드 이동 후 값을 클라이언트에게 전달

⇒ page 속성 값으로 표현식 사용가능

  • 포워드 이동 : 요청 JSP 문서에서 응답 JSP 문서로 스레드를 이동하여 응답
  • ⇒ 클라이언트와 상관없이 서버의 웹프로그램에서 이동 - 클라이언트 브라우저의 URL 주소 변경 x

Usebean 액션 태그

  • Java 명령을 사용하여 다른 JSP 문서로 응답되도록 구현하는 방법
  1. 리다이렉트 이동 : 클라이언트에게 URL 주소를 전달하여 다른 JSP 문서를 요청해 응답
  • ⇒ 클라이언트 브라우저의 URL 주소 변경 - 클라이언트를 이용하여 페이지 이동
  • ⇒ session 내장객체의 속성값으로 저장하여 응답 JSP 문서에서 사용 - 사용 후 속성값 반환 후 제거 (다른 JSP웹문서가 못 쓰게)

  2. 회원정보를 저장하기 위한 클래스 - VO, DTO, JavaBean

  • JavaBean 클래스 : 웹프로그램(JSP)에서 전달값을 저장할 목적의 클래스
  • 작성 규칙
  • ⇒ 전달값의 이름(입력 태그의 name 속성값)과 동일한 이름으로 필드 선언
  • ⇒ public 접근지정자를 이용한 기본 생성자 작성
  • ⇒ 필드값을 반환하는 Getter 메소드와 필드값을 변경하는 Setter 메소드 작성 - 필드명 이용

각 이벤트 요청 도식도

  1. 리다이렉트 이동: 클라이언트에게 URL 주소를 전달하여 다른 JSP 문서를 요청해 응답
  • ⇒ 클라이언트 브라우저 URL 주소 변경 - 클라이언트를 이용하여 페이지 이동
  • ⇒ session 내장객체의 속성값으로 저장하여 응답 JSP 문서에서 사용 - 속성값 반환 후 제거
  1. 포워드 이동 : 요청 JSP 문서에서 응답 JSP 문서로 스레드 이동하여 응답
  • 클라이언트 브라우저의 URL 주소 미변경 - 서버 웹프로그램의 스레드를 이용하여 페이지 이동
  • ⇒ request 내장객체의 속성값으로 저장하여 응답 JSP 문서에서 사용
  • forward 태그 대신 포워드 이동하는 Java명령
  • ⇒ request.getRequestDispatcher(String url) : RequestDispatcher 인스턴스를 반환하는 메소드
  • RequestDispatcher : 다른 웹프로그램(JSP)으로 스레드를 이동시키는 기능을 제공하는 인스턴스
  • → 서버에 존재하는 웹프로그램의 URL 주소만 전달받아 RequestDispatcher 인스턴스에 저장 가능
  • RequestDispatcher.forward(servletRequest request, servletResponse response) : RequestDispatcher- 인스턴스에 저장된 URL 주소의 웹프로그램으로 스레드를 이동하여 응답하는 메소드
  • => forword 태그 대신 포워드 이동하는 Java 명령

 

세미 팀플

-


스터디 내용&결과

> include directive & include action Tag 의 차이?

-> 정적 (파일 자체(텍스트 or 자바)를 본 흐름에 포함시킴) 표현

-> 동적 (본 스레드에서 다음 파일에 스레드로 넘겨짐 (파일을 읽고 그 값을 본 흐름에 포함시킴)

 

 

 

반응형

'레거시' 카테고리의 다른 글

2022.1.18의 기록  (0) 2022.01.18
2022.1.17의 기록  (0) 2022.01.17
2022.1.13의 기록  (0) 2022.01.13
2022. 1 . 11 의 기록  (0) 2022.01.11
2022.1.10의 기록  (0) 2022.01.11