본문 바로가기

전체보기

(91)
2. Java 자바 제네릭 - 멀티 타입 파라미터( class<K, V . . . >, interface<K, V, . . .> ) 제네릭 타입은 두 개 이상의 멀티 타입 파라미터를 사용할 수 있다. 이 경우 각각 타입 파라미터를 콤마로 구분한다. 예) Product.java : 제네릭 클래스 public class Product { private T kind; private M model; public T getKind() { return this.kind; } public M getModel() { return this.model; } public void setKind(T kind) { this.kind = kind; } public void setModel(M model) { this.model = model; } } ProductExample.java : 제네릭 객체 생성 실행 클래스 public class ProductEx..
1. Java 자바 제네릭 - 제네릭 (Generic) 타입 Java 5 부터 제네릭 (Generic) 타입이 새로 추가되었다. 제네릭을 사용해서 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다. 제네릭은 클래스, 인터페이스, 메소드를 정의할 때 타입(type) 을 파라미터로 사용할 수 있도록 한다. 타입 파라미터는 코드 작성 시 구체적인 타입으로 대체되어서 다양한 코드를 생성하도록 해준다. 1. 제네릭의 장점 - 컴파일 시 강한 타입 체크를 할 수 있다. 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입 체크를 한다. 실행 시 타입 에러가 나는 것보다 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지한다. - 타입 변환(casting) 을 제거한다. 비 제네릭 코드는 불필요..
JSP - 서블릿 4. URL 패턴 매핑 규칙 web.xml 의 태그는 태그를 사용해서 서블릿과 URL을 매핑하고, @WebServlet 일 때는 urlPatterns 속성을 이용해서 서블릿과 URL을 매핑한다. 태그와 urlPatterns 속성에서 사용할 수 있는 URL 패턴 규칙 - '/' 으로 시작하고 '/*' 로 끝나는 url-pattern 은 경로 매핑을 위해서 사용한다. - '*.' 으로 시작하는 url-pattern 은 확장자에 대한 매핑을 할 때 사용한다. - 오직 '/' 만 포함하는 경우, 어플리케이션의 기본 서블릿으로 매핑한다. - 이 규칙 외, 나머지 다른 문자열은 정확한 매핑을 위해 사용한다. 예) 아래 표처럼 서블릿이 매핑 되었을 때... URL 패턴 매핑된 서블릿 /foo/bar/* servlet1 /baz/* servlet..
JSP - 서블릿 2. 서블릿 로딩과 초기화(init()) 예) NowServlet 코드 public class NowServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); ... 코드 생략 out.println(""); } } 앞서 web.xml에서 NowServlet 을 /now 경로에 매핑했다. /now 경로로 접근하면 NowServlet 을 실행하는데, 서블릿 컨테이너..
JSP - 서블릿 3. 초기화 파라미터 DBCPInit.java 코드의 일부분 public class DBCPInit extends HttpServlet { @Override public void init() throws ServletException { loadJDBCDriver(); initConnectionPool(); } private void loadJDBCDriver() { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException ex) { throw new RuntimeException("fail to load JDBC Driver", ex); } } private void initConnectionPool() { try { String jdbcUr..
JSP - 서블릿 1. 기초 1. 서블릿 개발 과정 1. 서블릿 규약에 따라 자바 코드를 작성 한다. 2. 자바 코드 소스를 컴파일해서 클래스 파일을 생성 3. 클래스 파일을 /WEB-INF/classes 폴더에 패키지에 맞게 위치시킨다. 4. web.xml 파일에 서블릿 클래스를 설정한다. (url 매핑) 5. 톰캣 등의 웹 컨테이너 실행 6. 웹 브라우저에서 결과 확인 ex) chap17/src/example/NowServlet.java package example; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Http..
16. Java 자바 [API] - java.time 패키지 자바 8 부터 추가된 날짜와 시간을 조작하는 여러 가지 추가된 API 패키지 설명 java.time 날짜와 시간을 나타내는 핵심 API 클래스를 포함 이 클래스들은 ISO-8601에 정의된 달력 시스템에 기초한다. java.time.chrono ISO-8601 에 정의된 달력 시스템 이외의 달력 시스템이 필요 시 사용하는 API java.time.format 날짜와 시간을 파싱하고 포맷팅 하는 API java.time.temporal 날짜와 시간을 연산하기 위한 보조 API java.time.zone 타임존을 지원하는 API java.time 패키지에는 아래와 같이 날짜와 시간을 표현하는 5개의 클래스가 있다. - LocalDate : 로컬 날짜 클래스 - LocalTime : 로컬 시간 클래스 - Lo..
15. Java 자바 [API] - Format 클래스 Format 클래스는 원하는 문자열로 조합하는 과정을 쉽게 해준다. java.text 패키지에 포함되어 있고, 다양한 클래스들을 제공한다. 1. 숫자 형식 클래스 DecimalFormat DecimalFormat 은 숫자 데이터를 원하는 형식으로 표현하기 위해 사용된다. 기호 의미 패턴 예시 1234567.89 변환 결과 0 10 진수(빈자리는 0으로 채움) 0 0.0 0000000000.00000 1234568 1234567.9 0001234567.89000 # 10 진수(빈자리는 채우지 않음) # #.# ##########.##### 1234568 1234567.9 1234567.89 . 소수점 #.0 1234567.9 - 음수 기호 +#.0 -#.0 +1234567.9 -1234567.9 , 단위 ..