본문 바로가기
레거시

2022.1.13의 기록

by GroovyArea 2022. 1. 13.

- 하루 정리 - 

  • DB 정의 DRD 관계선 및 엑셀정리
  • JSP 복습 코딩

- 오늘 공부 내용 - 

JSP

  • 응답방식은 json, xml로도 응답가능한데 이건 rest
  • WAS에 의해 jsp 웹 문서가 서블릿 클래스로 컴파일 될 때 9개의 내장 객체가 자동으로 선언된다. 젤 많이 쓰는게 request, response, session 객체

join_form.jsp

비정상적인 요청에 대한 응답 처리

  1. response.sendRedirect(String url) : 클라이언트에게 301 상태코드와 URL 주소를 전달하여 클라이언트 브라우저의 요청 URL 주소를 변경하여 재요청하도록 지시하는 메소드 - 리다이렉트 이동 (경로는 최상위 루트 \ 로 잡음 , 원래는 contextroot가 기본이지만(자바일경우) )

  • ⇒ 리다이렉트 이동은 ServerRoot 디렉토리를 최상위 디렉토리로 처리
  • ⇒ 서버쪽 요청 처리 건은 ContextRoot
  • ⇒ 클라이언트 요청 처리는ServerRoot 최상위
  • 웹 프로그램 요청 시 전달값은 QueryString을 이용하여 값 전달 가능
  • ⇒ 처리페이지를 비정상적으로 요청한 경우 QueryString으로 전달된 값을 요청페이지에서 반환받는 처리를 해줘야 함 (Form이든 QueryString 이든 같은 segetParameter()로 가져옴) → 이 자식은 get 방식 요청이므로 “문자값으로”만 전달됨 setCharcterSet() 변경 불필요 (얘는 post 방식 요청 받을 때만)
  • ⇒ 정상요청일 경우에는 전달값이 null
  • URL 주소(QueryString)는 영문자, 숫자, 일부 특수문자를 제외한 문자 표현 불가 (한글 다 깨짐)
  • ⇒ URL 주소로 표현 불가능한 문자는 부호화 처리하여 URL 주소로 표현 가능 (얘는 자바스크립트에서만 가능함)
  • URLEncoder.encode(String s, String enc) : 문자열을 전달 받아 원하는 캐릭터셋의 부호화된 코드값의 문자열로 반환하는 메소드 (JS의 encodeURIComponent()와 같음)

부호화한 경우 URL

  1. session.setAttribute(String name, Objec value) : 바인딩된 세션에 속성명과 속성값을 저장(변경)하여 바인딩된 세션에 에러 메시지를 속성값으로 저장

정상적이지 않은 GET 방식의 로그인 후의 URL을 요청 시 session의 속성값에 에러메세지를 담아 보내어 출력. 

  • ⇒ 동일한 세션을 바인딩한 JSP 문서에서는 속성값을 반환받아 사용 - Session Scope
  1. session.getAttribute(String name) : 바인딩된 세션에 저장된 속성값을 속성명을 사용하여 반환하는 메소드
  • ⇒ 바인딩된 세션에 저장된 속성값이 없는 경우 null 반환
  • ⇒ 속성값을 Object 타입의 인스턴스로 반환하므로 명시적 객체 형변환하여 사용
  1. session.removeAttribute(String name) : 바인딩된 세션에 저장된 속성값을 속성명을 사용하여 제거
  • ⇒ 세션 메시지 전달 받으면 지워주어야 다른 jsp웹 문서에 영향을 주지 않음
  1. request.setCharacterEncoding(String encoding) : POST 방식으로 요청하여 전달된 값에 대한 캐릭터셋을 변경하는 메소드
  • request.getParameter(String name) : 전달값을 문자열(String)로 반환하는 메소드
  • → 입력태그의 name 속성값 또는 QueryString(이름=값 형식)의 이름을 이용하여 전달값 반환

request.getParameter()로 받아온 값을 스크립틀릿으로 출력!
로그인 유효성 검사 실패시 redirect로 로그인 페이지 이동 후 아이디 세션 속성값으로 설정해주고 에러메시지는 세션 속성값에 담아준다.
GET 방식으로URL로 로그인 성공 페이지 요청시 세션 속성값에 에러메시지를 담았다.
로그인 성공 시 나타나는 페이지

 

객체(인스턴스) 사용범위

  • 객체 사용범위(Scope) : WAS 프로그램에 의해 관리되는 JSP 문서의 내장객체를 이용하여 인스턴스를 속성값으로 저장하여 반환받아 사용할 수 있는 범위 - 내장객체에 따라 속성값으로 저장된 인스턴스의 사용범위가 다르게 설정
  1. page Scope : pageContext 내장 객체를 이용하여 인스턴스를 속성값으로 저장
  • ⇒ 인스턴스를 속성값으로 저장한 JSP 문서에서만 속성값(인스턴스)을 반환받아 사용 가능
  1. request Scope : request 내장객체를 이용하여 인스턴스를 속성값으로 저장

  • ⇒ 인스턴스를 속성값으로 저장한 JSP 문서와 스레드가 이동된 JSP 문서에서 속성값을 반환받아 사용 가능(스레드 이동시키는게 action 태그)
  1. session Scope : session 내장객체를 이용하여 인스턴스를 속성값으로 저장
  • ⇒ 같은 세션을 바인딩한 모든 JSP 문서에서 속성값을 반환받아 사용 가능
  1. application(servlet context) Scope : application 내장 객체를 이용하여 인스턴스를 속성값으로 저장
  • WAS에 의해 관리되는 모든 JSP 문서에서 속성값을 반환받아 사용 가능
  1. 내장객체에 인스턴스를 속성값으로 저장(변경)하는 메소드
  • 내장객체.setAttribute(String attributeName, Object attributeValue)
  1. 내장객체에 인스턴스를 속성값으로 저장(변경)하는 메소드
  • 내장객체.getAttribute(String attributeName, Object attributeValue)
  1. 내장객체에 인스턴스를 속성값으로 저장(변경)하는 메소드
  • 내장객체.removeAttribute(String attributeName, Object attributeValue)
  • p<r<s<a
  • 세션을 이용해서 로그인 후 권한에 대한 정보를 넣어준다.
  • 비정상적인 요청은 에러페이지로 보내는게 좋다.
  • 로그아웃 처리 : 세션의 속성값으로 저장된 권한 관련 정보를 제거

표준 액션 태그(standard action tag)

  • Java 명령으로 구현해야 되는 기능을 JSP에서 제공하는 태그로 제공 - 표준 액션 태그는 [jsp] 접두사(네임스페이스)를 이용하여 사용 가능 jsp:
  1. include 태그 : 현재 JSP 문서에서 다른 JSP 문서로 스레드를 이동하여 실행된 명령의 결과 (HTML)를 제공받아 현재 JSP 문서에 포함하는 태그

다른 웹 문서 결과값이 포함.

  1. forward 태그 : 현재 JSP 문서에서 다른 JSP 문서로 스레드를 이동하여 실행된 명령의 결과(HTML)를 클라이언트에게 전달(응답)하는 태그 (model2에서 많이 쓰임 sevlet(요청에 대한 처리) → forward → jsp (응답))

스레드 이동 후 결과값 Client 반환

  1. param 태그 : 현재 JSP 문서에서 다른 JSP 문서로 스레드가 이동될 경우 값(문자열)을 전달하기 위한 태그 - include 태그 또는 forward 태그의 자식태그로 사용
  2. userBean 태그 : JSP 문서에 인스턴스를 생성하여 내장객체의 속성값으로 저장하거나 내장객체에 저장된 속성값(인스턴스)을 반환받아 저장하는 태그
  3. setProperty 태그 : useBean 태그로 제공되는 인스턴스의 필드값을 변경하는 태그 (Setter 메소드 호출) - useBean 태그의 종속 태그
  4. getProperty 태그 : useBean 태그로 제공되는 인스턴스의 필드값을 반환하는 태그 (Setter 메소드 호출) - useBean 태그의 종속 태그

- 세미 팀플 -

  • 엑셀파일로 첫번째 DB정의서 완성
  • html 디자인 시작
  • 시퀀스 만들기
    sql 문으로 테이블 만들어서 sql파일 만들자

- 스터디 내용 및 결과 - 

> JSP 복습 (세션의 invalidate() 메소드에 대해)

> bean 객체 

 

반응형

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

2022.1.17의 기록  (0) 2022.01.17
2022.1.14의 기록  (0) 2022.01.14
2022. 1 . 11 의 기록  (0) 2022.01.11
2022.1.10의 기록  (0) 2022.01.11
2022.1.7의 기록  (0) 2022.01.07