[기타 코어 태그]
1. <c:out> 태그 : 데이터를 출력
<c:out value="value" [escapeXml="(true|false)"] [default="defaultValue"]/>
<c:out value="value" [escapeXml="(true|false)"]>
default value
</c:out>
1) escapeXml 속성이 true일 경우 다음과 같이 특수문자 처리
< = &It; / > = > / & > & / ' > ' " > "
2. <c:catch> 태그 : 몸체에서 발생한 예외를 변수에 저장
<c:catch var="exName">
예외가 발생할 수 있는 코드
</c:catch>
${exName} 사용
[<fmt>(국제화) 태그]
기능분류 | 태그 | 설명 |
로케일지정 | setLocale | Locale을 지정 |
requestEncoding | 요청 파라미터의 캐릭터 인코딩을 지정 | |
메시지 처리 | bundle | 사용할 번들을 지정 |
message | 지역에 알맞은 메시지를 출력 | |
setBundle | 리소스 번들을 읽어와 특정 변수에 저장 | |
숫자 및 날짜 포맷팅 | formatNumber | 숫자를 포맷팅 |
formatDate | Date 객체를 포맷팅 | |
parseDate | 문자열로 표시된 날짜를 분석해서 Date 객체로 변환 |
|
parseNumber | 문자열로 표시된 날ᄍᆞ를 분석해서 숫자로 변환 |
|
setTimeZone | 시간대 정보를 특정 변수에 저장 | |
timeZone | 시간대를 지정 |
1.<fmt:formatNumber> 태그
1) 숫자를 양식에 맞춰 출력
2. <fmt:parseNumber> 태그
1) 문자열을 숫자 데이터 타입으로 변환
3. <fmt:formatDate> 태그
1) 날짜 정보를 담은 객체(Date)를 포매팅 (게시글 작성날짜, 수정날짜 등에 많이 쓰임)
4. <fmt:parseDate> 태그
1) 문자열로 표시된 날짜와 시간 값을 java.util.Date로 파싱
5. <fmt:timeZone> 태그와 <fmt:setTimeZone] 태그
1) 국제화 태그가 사용할 시간대를 설정
<fmt:timeZone value="Hongkong">
<!-- 사용하는 시간을 Hongkong 시간대에 맞춘다 !-->
<fmt:formatDate...../>
</fmt:timeZone>
6.<fmt> 로케일 지정하기
7. 메시지 처리 태그
1) <fmt:bundle> : 태그 몸체에서 사용할 리소스 번들을 지정
속성 | 표현식/EL | 타입 | 설명 |
basename | 사용가능 | String | 사용할 리소스 번들의 이름 |
prefix | 사용 가능 | String | bundle태그의 내부에서 사용되는 message 태그의 key 속성의 값 앞에 자동으로 붙게 될 문자열 |
2) <fmt:message> : 메시지를 출력
(1) key : 읽어올 메시지의 키 값
(2) var : 메시지를 지정할 변수 명
(3) scope : 변수가 저장되는 영역 지정
(4) bundle : <fmt:setBundle> 태그를 사용해서 로딩한 번들로부터 메시지를 읽어 올 때 사용
3) <fmt:setBundle> : 특정 메시지 번들을 사용할 수 있도록 로딩
resource 만들기
4) <fmt:bundle> 태그와 <fmt:setBundle> 태그의 차이점
(1) <fmt:bundle> : 태그 안에서 사용될 리소스 번들을 지정
(2) <fmt:setBundle> : 리소스 번들을 변수로 저장한 후 어디서나 사용할 수 있음
속성 | 표현식/EL | 타입 | 설명 |
basename | 사용가능 | String | 읽어 올 리소스 번들의 이름 |
var | 사용 불가 | String | 리소스 번들을 저장할 변수명 |
scope | 사용 불가 | String | 변수를 저장할 영역 |
setBundle
5) <fmt:message> 태그의 리소스 번들 검색 순서
(1) bundle 속성에 지정한 리소스 번들을 사용 : <fmt:setBundle>
(2) <fmt:bundle> 태그와 중복될 경우 <fmt:bundle> 태그에서 설정한 리소스 번들을 사용
(3) 1이나 2가 아닐 경우 기본 리소스 번들 사용
ㄱ) 기본 리소스 번들은 web.xml 파일에서 javax.servlet.jsp.jstl.fmt.localizationContext 컨텍스트
속성을 통해서 설정
[데이터베이스와 JDBC]
1. JDBC ( Java DataBase Connectivity)
1) 자바로 만든 애플리케이션이 데이터베이스에 일관된 방식으로 접근할 수 있도록 API를 제공하는 클래스의 집합
2) JDBC API 사용 애플리케이션의 기본 구성
2. DBMS 종류
1) 오라클(Oracle), 사이베이스(Sybase), 인포믹스(Infomix), MySQL 등
[member 테이블 생성 - 내용은 이클립스이나, 실제로는 MysqlWorkbench 에서 했습니다.]
1. 가정 : 데이터베이스 설치 및 사용자 계정의 설정이 완료된 상태
2. mysql-connector-java-8.0.23.jar 라이브러리 추가
1) 위치 : WebContent\WEB-INF\lib 폴더
3. Database Connections 생성
4. database.sql 파일 추가
studydb 데이터베이스 생성 및 study 유저 생성
member 테이블 생성 및 데이터 삽입
[JDBC를 이용한 데이터 조작하기]
1. JDBC를 이용해서 데이터베이스에 연결하는 방법
1) JDBC 드라이버 로드 : DriverManager
2) 데이터베이스와 연결 : Connection
3) SQL 문 실행 : Statement, ResultSet
4) 데이터베이스와 연결 끊기
2. JDBC 인터페이스
1) Connection : 데이터베이스와 연결 DriverManager.getConnection()
2) Statement : 질의, 갱신 실행 connection.createStatement()
3) ResultSet : 결과물 statement.executeQuery(SQL)
3. JDBC 드라이버 연결하기
4. JDBC 드라이버 로드
Class.forName("com.mysql.jdbc.Driver"); // com.mysql.cj.jdbc.Driver
1) 프로그램 내에서 DriverManaber 클래스를 이용해서 데이터베이스에 연결
5. 데이터베이스 연결
Connection conn = DriverManager.getConnection(url, uid, pwd);
url : jdbc:mysql://[hostname][:port]:dbname
jdbc:mysql://localhost:3306:jspdb?useSSL=false
6. Statement 객체 생성
Statement stmt = conn.createStatement();
SQL 표준 Query 문을 수행할 수 있음
7. Query문을 수행하는 메소드
1) executeQuery() : select 문과 같이 결과 값이 여러 개의 레코드로 구해지는 경우 사용
String sql = "select * from member";
ResultSet rs = stmt.executeQuery(sql);
2) executeUpdate() : insert, update, delete 문과 같이 내부적으로 내용이 변경만 되고 결과 값이 없는 경우
사용
8. 질의 결과 처리 (ResultSet) == cursor 와 느낌이 같다.
1) 반환 값이 여러 개의 열인 경우에 이를 받아서 처리할 수 있게 설계된 클래스
회원정보 출력하기 1
회원정보 출력하기 2
회원정보 추가하기
아직 DB와 연동은 하지 않음.