2 minute read

JSP - 5

  • 다국어 처리
    • Locale 클래스
    • JSTL fmt 태그
  • 시큐리티
    • 선언적 시큐리티
    • 프로그래밍적 시큐리티



다국어 처리 - 1. 개요

  • 다양한 언어 및 지역을 지원하는 서비스
    • 다른 언어와 지역적 차이를 기술 변경 없이 소프트웨어에 바로 적용
    • JSP 페이지 - fmt 태그 이용!
  • 지역화(localization) - L10n
    • 사용 국가별 환경에서 특정 언어와 지역에 맞게 적합화 하는 것
  • 국제화(internationalization) - i18n
    • 여러 국가에서 사용할 수 있도록 다국어를 지원하는 것



다국어 처리 - 2. Locale 클래스

  • Locale 클래스,
    • 특정 지리적, 정치적, 문화적 지역을 나타내는 클래스
    • 지역적 문화(언어, 날짜, 시간 등)의 정보를 담고 있다

      사용자가 어떤 언어로 출력할 것인지 결정할 수 있게 하는 수단!

  • Locale 클래스 생성 방법 (중요!!)
    • request 내장 객체 사용

      java.util.Locale request.getLocale();

    • 인스턴스화

      Locale locale = new Locale("ko", "KR");

    • 미리 정의된 필드 값 사용

      Locale locale = Locale.KOREA;

  • 로케일 감지
    • 웹 브라우저에 설정된 국가, 언어 이름을 알아내는 것
    • 로케일 감지 메서드
메서드 반환형 설명
getDefault() static Locale 디폴트 로케일의 현재 값을 가져옵니다
getCountry() String 현재 로케일의 국가/지역 코드(대문자)를 가져옵니다
getDisplayCountry() String 현재 로케일의 국가 이름을 가져옵니다
getLanguage() String 현재 로케일의 언어 코드(소문자)를 가져옵니다
getDisplayLanguage String 현재 로케일의 언어 이름을 얻어옵니다
  • 로케일 표현
    • 언어 설정

      response 내장 객체 - setHeader() 메서드 사용

    • 날짜와 시간 설정

      DateFormat 클래스 - getDateTimeInstance() 메서드 사용

    • 통화와 숫자 설정

      NumberFormat 클래스 - getCurrencyInstance() 메서드 사용



다국어 처리 - 3. JSTL fmt 태그

  • 다국어 문서 처리를 위한 국제화 및 지역화 태그
    • 국가/지역에 따라 다른 메시지를 출력할 때 사용
    • 하나의 JSP 페이지에서 중복은 없애면서 다양한 언어에 맞는 메시지 출력
    • taglib 디렉티브 태그로 라이브러리 포함해야 함! (jstl.jar)

      <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

  • JSTL fmt 태그 - 1. Locale 설정 태그

|태그 유형|설명| |:—|:—| |setLocale|국제화 태그가 사용할 로케일을 설정| |requestEncoding|요청 파라미터의 문자 인코딩 설정|

  • JSTL fmt 태그 - 2. 메시지 처리 태그

|태그 유형|설명| |:—|:—| |bundle|사용할 리소스번들을 설정| |message|리소스 번들에서 로케일에 맞는 메시지를 가져와 출력| |setBundle|리소스 번들을 읽어와 특정 변수에 저장|

  • JSTL fmt 태그 - 3. 날짜 태그

|태그 유형|설명| |:—|:—| |formatDate|날짜 형식을 표현| |parseDate|문자열에서 원하는 패턴의 날짜 형식으로 변환|

  • JSTL fmt 태그 - 4. 숫자 태그

|태그 유형|설명| |:—|:—| |formatNumber|숫자 형식을 표현| |parseNumber|문자열에서 원하는 패턴의 숫자 형식으로 변환|

  • JSTL fmt 태그 - 5. 시간 태그
태그 유형 설명
timeZone 시간대를 설정
setTimeZone 특정 범위의 시간대를 설정






시큐리티 - 1. 개요

  • 시큐리티 = 보안 기능
    • 특정 웹 페이지에 허가된 사용자만 접근하도록 제한
    • JSP 컨테이너 수행 내용
      • 페이지 접근하는 사용자에게 인증(authentication) 요청
      • 인증되면 접근을 승인 = 권한 부여(authorization)
  • 시큐리티 처리 방법
    • 선언적 시큐리티

      web.xml 파일에 보안 구성 작성하여 사용자 인증 수행

    • 프로그래밍적 시큐리티

      request 내장 객체 메서드로 사용자 권한 부여를 처리



시큐리티 - 2. 선언적 시큐리티

  • 시큐리티 역할 설정
    • <security-role> 요소 작성
    • <role-name> 에 작성하는 이름은 반드시 tomcat-user.xml에 등록된 역할, 사용자와 동일해야 함!
  • 시큐리티 제약 사항 설정
    • <security-constraint> 요소 작성
    • 웹 자원에 대한 접근/인증 사용자/데이터 보호 설정
  • 시큐리티 인증 설정
    • <login-config> 요소 작성
    • 웹 자원에 대한 인증처리 방식/인증 사용자/데이터 보호 설정

      인증처리 중, ‘FORM 기반 인증 방식’은 반드시 정해진 규칙 그대로 작성



시큐리티 - 3. 프로그래밍적 시큐리티

  • 보안 관련 request 메서드
메서드 형식 설명
getRemoteuser() String 사용자의 인증상태 반환
getAuthType() String 서블릿을 보호하는 데 사용되는 인증방식의 이름 반환
isUserInRole(java.lang.String role) boolean 현재 인증된 사용자에게 설정된 역할이 있는지 없는지 확인
getProtocol() String 웹 브라우저의 요청 프로토콜 가져옴
isSecure() boolean 웹 브라우저에서 https 접근하면 true, http로 접근하면 false 반환
getUserPrinciple() Principle 현재 인증한 사용자 이름을 포함, java.security.Principle 객체를 반환






과제

  • 9, 10단원 연습문제 / ~7/1(금)까지

  • 이형록_220523_JSP과제

  • 내용

    • 1~3번
      • 교재 읽고 답 찾기
      • 메모장에 타이핑
    • 4~6번
      • 교재 읽고 실습
      • 기본 소스 임포트 해서 확인
    • 7번
      • Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
      • 수업용 예제, ‘Web Market Mall’ 참고!






nice!!!

Updated: