일요일, 12월 22
Shadow

미분류

#015 표준 태그 라이브러리(JSTL)

미분류
JSP는 개발자가 직접 <jsp:include>와 같은 태그를 작성할수있는 기능을 제공하는데 이를 태그라고 한다. 이것들을 모아서 JSTL이라는 규약을 만들었다. 1. JSTL이란 1.1 JSTL이 제공하는 태그의 종류 코어 : 변수지원, 흐름제어, URL처리 --> c xml : XML 코어, 흐름제어, XML 변호나 --> x 국제화 : 지역, 메시지 형식, 숫자 및 날짜 형식 --> fmt 데이터베이스 : SQL --> sql 함수 : 컬렉션 처리, String 커리 --> fn 02. 코어 태그 변수지원 set : JSP에서 사용될 변수를 설정한다. remove : 설정한 변수를 제거한다. 흐름제어 if : 조건에 따라 내부 코드를 수행한다. choose : 다중 조건을 처리할때 사용된다. forEach : 컬렉션이나 Map의 각 항목을 처리할때 사용된다. forTokens: 구분자로 분리된 각각의 토큰을 처리할때 사용된다. URL처리 import : URL을 사용하여 다른 자원의 결과를 삽입힌다. redirect : 지정한 경로로 리다이렉트 한다. url : URL을 사용하여 다른 자원의 결과를 삽입힌다. 기타 태그 catch : 예외처리에 사용된다. out : JspWriter에 내용을 알맞게 처리한 후 출력한다. 2.1 변수지원태그 (1) <c:set>태그 <c:set var = "varName" value="varvalue" [scpoe="영역"]/> <c:set var ...

#013 표현언어(Expression Language)

미분류
표현언어는 이름에서 알수 있듯이 값을 표현하는데 사용되는 새로운 스크립트 언어로서 JSP의 기본 문법을 보오나하는 역할을 한다. 1. JSP의 네가지 기본 객체가 제공하는 영역의 속성을 사용한다. 2. 집합 객체에 대한 접근 방법 제공 3. 수치 연산, 관계연산, 논리 연산자 제공 4. 자바 클래스 메서드 호출 기능 제공 5. 표현언어만의 기본 객체 제공 1.1 표현언어의 기본 문법 ${expr} <jsp:include page="/module/${skin.id}/header.jsp" flush="ture" /> <b>${sessionScope.member.id}</b>님 환영합니다. #{expr} 형식의 EL은 실제로 값이 필요할때 계산을 수행하기 때문에 Deferred Expression 이라고 부른다. 02. 표현언어의 기본 객체 EL도 이와 마찬기지로 11개의 기본 객체를 제공함으로써 요청 파라마터나 세션 속성값등을 표현식에서 쉽게 사용할수 있도록 하고 있다. pageContext : JSP의 page 기본 객체와 동일한다. pageScope : pageContext 기본 객체에 저장된 속성의<속성, 값> 매핑을 저장한 Map 객체 requestScope : request 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 MAP 객체 sessionScope : session기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 MAP 객체 applicationScope : appli...

#013 데이터베이스 프로그래밍 기초

미분류
01. JSP에서 JDBC 프로그래밍 하기 1.1 JDBC의 구조 자바 웹 어플리케이션 => JDBC API => JDBC 드라이버 1.2 JDBC 프로그래밍의 코딩 스타일 1. JDBC 드라이버 로딩 2. 데이터베이스 커넥션 구함 3. 쿼리 실행을 위한 statement 객체 생성 4. 쿼리 실행 5. 쿼리 실행 결과 사용 6. statement 종료 7. 데이터베이스 커넥션 사용 1.3 <%@ page  import  = "java.sql.DriverManager"%> <%@ page  import  = "java.sql.Connection"%> <%@ page  import  = "java.sql.Statement"%> <%@ page  import  = "java.sql.ResultSet"%> <%@ page  import  = "java.sql.SQLException"%> <% Class.forName("com.mysql.jdbc.Driver"); Connection conn = null; Statement stmt = null; ResultSet rs = null; try{ String jdbcDriver = "jdbc:mysql://localhost:3306/chap12?" +   useUnicode=true&characterEncoding=euckr"; String dbUser = "sa"; String dbpass = "sa"; String query = "s...

#012 액션 태그를 이용한 객체 사용

미분류
01. 자바빈 자바빈은 데이터를 표현한는 것을 목적으로 하는 자바 클래스로서, 다음과 같은 형태로 구성된다. public class BeanClassName implements java.io.Serializable{ private String value; // BeanClassName의 기본 생성자 public BeanClassName(){ } // 필드의 값을 읽어오는 값 public String getvalue(){ return value; } //필드의 값을 변경하는 값 public void setValue(String value){ this.value = value; } } 자바빈 규약에 따르는 클래스를 자바빈이라고 부르며, JSP 프로그래밍에서 사용되는 자바빈클래스는 위 예시코드와 같이 데이터를 저장하는 필드, 데이터를 읽어올때 사용되는 메서드, 값을 저장할때 사용되는 메서드로 구성된다. 1.1 자바빈 프로퍼티 public void setMaxAge(int value); public int getMaxAge(); ㅇ 읽기 전용 프로퍼티 : get 또는 is메소드만 존재하는 프로퍼티 ㅇ 읽기/쓰기 프로퍼티 : get/set 또는 is/set 메소드가 존재하는 프로퍼티 ㅇ자바빈 프로퍼티의 타입은 다음과 같이 배열로도 정의 할수 있다. public int[] getMark() public void setMark(int[] values) 02. <jsp:useBean> 태그를 이용한 자바 객체 사용 <% MembeInfo mi...

#011 클라이언트오의 대화 2: 세션

미분류
세션을 사용하면 서버는 클라이언트의 상태 값을 유지 할수 있기 때문에, 인증도니 사용자 정보를 유지하기 위한 목적으로 세션을 많이 사용한다. 01. 세션사용하기 세션은 웹 컨테이너에서 정보를 보관 할때 사용된다. 세션은 오직 서버에서만 사용된다. 웹컨테이너는 기본적으로 하나의 웹 브라우저에 하나의 새션을 생섢나다. 1.1 세션 생성하기 JSP에서 세션을 생성하기 위해서는 page 디렉티브의 session 속성을 true로 지정해 주면 된다. <%@ page session = "true"%> : page의 ssion 속성의 기본값은 true 이므로 session 속성의 값을 false로 지정하지만 않으면 세션이 생성된다. 일단 새션이 생성되면 session 기본 객체를 통해서 새션을 사용할수 있게 된다. 1.2 session 기본 객체 getID() : 새션의 고유 ID를 구한다. getCreationTime() : 새션의 생성된 시간을 구한다. 단위는 1/1000초이다. getLastAccessedTime() : 웹브라우저가 가장 마지막에 새션에 접근한 시간을 구한다. 단위는 1/1000초이다. <@ page session = "true"%> 새션ID : <%= session.getID() %> <% time.setTime(session.getCreationTime()); %> 새션 생성 시간 : <%=formatter:format(time) %> <% time.setTime(Session.getLastAcce...

#010 클라이언트와의 대화1 : 쿠키

미분류
ㅇ 웹서버가 우 브라우저에 정보를 전달하는 방법 01. 쿠키 사용 쿠키란 : 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼때 함꼐 전송된다. 웹서버와 웹 브라우저 양쪽에서 생성 할수 있으며, 웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 데이터를 읽어 올수 있다. ㅇ 쿠키생성 단계 : 쿠키를 사용하기 위해서는 쿠키를 생성해야 한다. ㅇ 쿠키저장단계 : 웹 브라우저는 응답데이터에 포하된 쿠키를 쿠키저장소에 보고나한다. 쿠키의 종류에 따라 메모리나 파일로 저장된다. ㅇ 쿠키전송단계 : 웹 브라우저는 한번 저장된 쿠키를 매번 요청이 있을때 웹 서버에 전송한다. 웹서버는 웹 브라우저가 전송한 쿠키를 사용해서 핋요한 작업을 수행 할수있다. - 웹브라우저는 쿠키가 삭제 되기 전까지 웹 서버에 쿠키를 전송한다. 지속적으로 유지해야 하는 정보는 쿠키를 사용해서 저장할수 있다. 1.1 쿠키의 구성 이름 : 각각의 쿠키 를 구별하는데 사용되는 이름 값 : 쿠키의 이름과 관련된 값 유효시간 : 쿠키의 유지 시간 도메인 : 쿠키를 전송할 도메인 경로 : 쿠키를 전송할 요청 경로 - 쿠키의 이름은 아스키 코드의 알파벳과 숫자만을 포함할수 있다. - 콤마, 세미콜론, 공백등의 문자는 포함할수 없다. - $ 로 시작할수 없다. 1.2 쿠키 생성하기 <% Cookie cookie = new Cookie("cookieName", "cookieValue"); response.addCookie(cookie); %> <% cookie.getName() ...

#008 페이지 모듈화와 요청 흐름 제어

미분류
01. <JSP:include> 액션 태그 - main.jsp가 웹 브라이저에 요청을 받는다. - 출력내용 A를 출력버퍼에 저장한다. - <jsp:include>가 실행되면 요청흐름을 sub.jsp로 이동시킨다. - 출력내용 B를 출력버퍼에 저장한다. - sub.jsp의 실행이 끝나면 요청 흐름이 다시 amin.jsp의 <jsp:include>로 돌아온다. - <jsp:include> 이후 부분인 출력내용 C를 출력 버퍼에 저장한다. - 출력 버퍼의 내용을 응답 데이터로 전송한다. 태그 사용법 - <jsp:include page = "포함할페이지" flush ="true"/> page : 포함할 jsp 페이지 flush : 지정한 jsp페이지를 실행하기 전에 ㅊ풀력 버퍼를 플러시 할지의 여부를 저장한다. true이면 출력 버퍼를 플러시 하고, false이면 하지 않는다. <jsp:include page = "sub.jsp" flush ="true"/> * 액션 태그를 이용한 중복 영역의 처리 - 한개의 JSP페이지만 같은 코딩이 반복된다면 개발 및 유지 보수 과정에서 문제가 발생하게 된다. <JSP:INCLUDE> 태그를 사용하면 공통되는 부분의 수정에 따른 문제를 최소화 할수 있다. - <jsp:param>을 이용한 포함될 페이지에 파리미터 추가 JSP 페이지에 파라미터를 추가 할수 잇다. <jsp:param name="param1" value="value1"> <js...

#007 기본 객체와 영역

미분류
1. out 객체 2. pageContext 객체 3. application 객체 4. exception 객체 를 공부한다. 2. out 객체 - JSP페이지가 생성하는 모든 내용은 out 본객체를 통해 전송된다 . 웹 브라우저에 데이터를 전송하는 출력 스티림으로서 JSP 페이지가 생성한 데이터를 출력한다. <% out.println("<html">); out.println("<head">); %> - out 기본 객체의 출력 메서드 print() : 데이터를 출력한다. println() : 데이터를 출력하고 \r\n을 출력한다. newLine() : \r\n을 출력한다. - out 기본 객체와 버퍼의 관계 page 디렉티브의 버퍼 속성을 사용하여 jsp페이지의 버퍼 크기를 조절할수 있다 <%@ page buffer="16kb" %> out 기본 객체가 내부적으로 내부적으로 사용하는 버퍼의 크기를 16킬로바이트가 된다. : 버퍼와 관련된 메소드들 getBufferSize() : 버퍼의 크기를 구한다. getRemaing() : 현재 퍼어의 남은 크기를 구한다. clear() : 버퍼의 내용을 비운다. 만약 버퍼가 이미 플러시 되었다면 IOException을 발생시킨다. clearBuffer() : 버퍼의 내용을 비운다. 다만 버퍼가 플러시 한 경우에도 IOException을 발생 시키지 않는다. flush() : 버퍼를 플러시 한다. isAutoFlush() : 버퍼가 다 찼을때 자동으로 플러시 할 경우 true를 리...

#006 필수 이해 요소

미분류
웹 브라이저의 서비스 요청에 응답하는지와 출력 버퍼가 응답과정에서 어떻게 동작하는 지를 살펴 볼것이다. 엡 컨테이너는 JSP페이지에 대한 요청이 들어올 경우 다음과 같은 처리를 한다. JSP에 해당하는 서블릿이 존재 하지 않을경우 JSP페이지를 컴파일 하여 서블릿을 생성 후 생성된 서블릿을 사용하여 클라이언트 요청을 처리한다. JSP에 해당하는 서블릿이 존재하는 경우 곧바로 서블릿을 사용하여 클라이언트의 요청을 처리한다. 즉, JSP페이지를 요청할때에는 JSP를 직접적으로 실행하는 것이 아니라, JSP를 자바 소스코드로 변환 한뒤 컴파일 해서 생성된 서블릿을 실행하는 것이다. JSP페이지를 자바 코드로 변환하는 단계를 변환 단계라고 하며, 자바코드를 서블릿클래스에 변경하는 단계를 컴파일 단계라고 한다. 1. 출력 버퍼와 응답JSP페이지에 생성하는 출력 내용을 곧바로 웹 브라우저에 전송하지 ㅇ낳고 버퍼에 저장했다가 한꺼번에 전송 함으로써 생기는 장점은 다음과 같다. 데이터 전송 성능을 향상시킨다. 곧바로 웹 브라우저로 전송되지 않기 때문에, JSP 실행 도중에 버퍼를 비우고 새로운 내용을 보여 줄수 있다. 버퍼가 다 차기 전까지는 헤더를 변경 할수 잇다. 버퍼를 사용하면 성능이 향상되는데 네트워크를 비롯한 모든 데이터 교환에서는 작은 단위를 여러차례 보내는 것보다 큰단위로 한번에 묶어서 보내는 것이 더 높은 성능을 발휘하게 된다. 또한 <JSP:forward>기능과 에러 페이지 처리 기능이 가능하다는 점이다. JSP실행과정에서 에러가 발생할 경우, 지금까지 생성한 내용을 버퍼에서 지우고 에러 화면을 ...

#004 JSP로 시작하는 웹 프로그래밍

미분류
벌써 세번째 군요. 토요일에 올렸어야 했는데 다음 라이프 체인저 때문에..ㅜㅜ 세번째 시간에는 기본적인 코드 구조와 GET/POST등에 대해서 알아 볼꺼에요 이장에서는 JSP를 사용하는데 필요한 기본적인 지식을 학습합니다. HTML 문서를 생성하는 JSP페이지의 기본 골격을 살펴본뒤, request와, response 객체를 살펴 보고 JSP페이지에서 HTML문서를 생성하는데 기본적인 지식을 배우게 된다. 1. JSP에서 HTML 문서를 생성하는 기본 코드 구조 JSP의 주된 목적은 웹 브라우저에서 보여줄 HTML 문서를 생성하는 것이다. JSP페이지에 대한 정보를 입혁하는 설정 부분과 실제로 HTML 문서를 생성하는 생성 부분으로 나눌수 있다. JSP의 설정 부분에는 JSP 페이지에 대한 정보가 위치하며, 일반적으로 다음과 같은 정보를 입력한다. - JSP페이지가 생성하는 문서의 타입 - JSP페이지에서 사용할 커스텀 태그 - JSP페이지에서 사용할 자바 클래스 지정 2. JSP페이지의 구성요소 JSP페이지를 작성할때는 JSP페이지에 대한 정보를 지정해 주는것이 필요하며, 웹 브라우저가 전송한 데이터를 읽어 오는 기능이 필요하며, JSP페이지에서 사용할 데이터를 생성해주는 실행 코드가 필요하며, 웹 브라우저에 문서 데이터를 전송해주는 기능이 필요하다. -디렉티브 -JSP스크립트 -표현언어 -내장객체 -정작인 데이터 -표준액션 태그 -커스텀 태그와 표준 태그 라이브러리 이 7가지 구성요소들을 익히는 과정이 바로 JSP를 공부하는 과정이라 할수 있다. 2...