Today I Learned - 31
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;
- request 내장 객체 사용
- 로케일 감지
- 웹 브라우저에 설정된 국가, 언어 이름을 알아내는 것
- 로케일 감지 메서드
메서드 | 반환형 | 설명 |
---|---|---|
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’ 참고!
- 1~3번
nice!!!