프로그래밍언어 13

JSTL

JSTL 은 JSP 에서 유용하게 사용될 수 있는 기능을 만들어 둔 커스텀 태그 라이브러리이다. JSTL 을 사용하면 JSP 에서 스크립트릿의 사용을 줄일 수 있으며 특히 화면에 데이터를 표현할 때 필요한 프로그램 요소를 대체할 수 있어 매우 유용하다. JSTL 이란? 커스텀 태그 라이브러리의 기술을 이용해서 일반적으로 필요한 기능들을 표준화한 것으로, 크게 핵심, MXL ,I18N, 데이터베이스, 함수 라이브러리로 나눠진다. 이들 라이브러리는 제공되는 태그의 기능에 따라 분류해둔 것으로, 기본적인 구조는 커스텀 태그와 동일하기 때문에 JSTL 을 사용하기 위한 기본적인 과정은 커스텀 태그와 같다. 핵심 라이브러리를 사용하려면

커스텀 태그

커스텀 태그는 JSP 특징적 요소로, 고급 웹 프로그래밍을 하려면 꼭 알아둬야한다. 커스텀 태그는 JSTL 의 기본이 되는 개념이다. 완전한 MVC 패턴을 구현하려면 꼭 필요한 요소다. 커스텀 태그? 커스텀 태그란 원래 JSP 페이지에서 반복적인 프로그램 로직을 캡슐화하려고 고안된 것으로, 기본적으로 제공되는 태그 이외에 사용자가 확장한 태그라는 의미에서 붙여진 이름이다. JSP 서버에서는 커스텀 태그를 구현할 수 있다. 일반적으로 스크립트릿을 많이 사용하면 프로그램 로직과 디자인 부분이 섞여서 소스가 복잡해지고 관리하기가 어려워진다. 이를 해결하기 위해 나온 것이 '빈즈' ! 하지만 빈즈는 소위 비지니스 로직에 해당하는 부분들에 대한 처리를 캡슐화는 할 수 있지만, 데이터를 화면에 표시하기 위해 필요한..

표현언어

표현언어의 개념과 문법 - 표현언어가 처음 나왔을 때 JSTL 의 부분처럼 사용되었으나, 현재는 JSP 기본 스펙에 포함되어 있어 JSP 페이지 내에서 표현식(, )등을 대체하는 용도로 사용한다. 표현 언어는 간단한 방법으로 데이터를 표현하려고 고안된 언어다. MVC 패턴에서 뷰 역할을 수행하는 JSP 를 더욱 효과적으로 만들려는 목적! 표현언어는 빈즈 속성 값을 더욱 쉽고 제약을 덜 받는 방법으로 사용할 수 있도록 해준다. 표현언어를 사용하면 코드가 복잡해지는 것을 줄일 수 있고, JSP 를 일종의 템플릿 코드처럼 사용할 수 있다. 즉, MVC 패턴에 완벽 적용하려면 표현언어를 반드시! 잘! 사용해야한다. MVC 패턴이란? 간단히 Model- View -Controller 의 개념으로 웹 디자이너, 웹..

빈즈

빈즈 (Beans) : 특정한 일을 독립적으로 수행하는 컴포넌트 여기서 컴포넌트란? 다른 무언가를 만들기 위한 부품 , 컴포넌트는 각각 독립적인 기능이 있으며, 컴포넌트를 조합해 다양한 형태의 결과물을 만들 수 있다. 자바 빈즈, JSP 빈즈로 나뉘어 개념이 확장되었다. 이 두개의 용도는 다르지만 프로그램 모듈화를 위한 컴포넌트라는 기본 전제는 같다. JSP 빈즈 JSP 빈즈는 JSP 와 연동하려고 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하고, JSP 에 데이터베이스 연동 등 프로그램적 요소를 모듈화 할 수 있도록 도와준다. 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 더욱 원활하게 유지 보수가 가능하다. 따라서 가능하면 JSP 코드..

JSP-Servlet

서블릿이란 ? 자바 플랫폼에서 컴포넌트를 기반으로 하는 웹 애플리케이션을 개발할 때 사용하는 핵심기술이다. JSP 는 서블릿이라는 서버에 기반하는 웹 프로그래밍 기술로써 내부적으로는 JSP 가 서블릿 형태로 변환되어 실행되는 것이다. 복잡한 것 같은 서블릿을 사용하는 이유는 무엇일까? 장점은 아래와 같다. 1) 자바를 기반으로 하기 때문에 자바 API를 모두 사용할 수 있다. (API: Application Programming Interface / 특정 클래스를 다른 프로그램에서 사용하려고 필요한 정보를 규격화해놓은 것 ) 2) 운영체제나 하드웨어의 영향을 받지 않으므로, 한 번 개발된 애플리케이션은 다양한 서버 환경에서도 실행할 수 있다. 3) 웹 애플리케이션에서 효율적인 자료 공유 방법을 제공한다...

JSP : 내장객체 -session

Session : 웹 서버가 지속적인 클라이언트 인식을 위해 사용자 별로 필요한 정보를 웹 서버에 임시로 저장해 두는 방법이다. 예) 로그인 인증 후 일정 시간 내에서는 재인증 불필요, 장바구니의 추가 상품 누적 등 HTTP 프로토콜이 비연결형 프로토콜이기 때문에(stateless) 한 페이지가 출력된 다음에는 클라이언트와 서버의 연결이 끊어진다. (웹 사이트는 유저와 항상 연결되어 있지 않다!) 따라서 한 번 로그인 한 사용자가 로그아웃 할 때 까지 보관해야 할 정보가 있다면 처리가 되기 힘들다. 이러한 HTTP 프로토콜의 문제점을 해결하기 위해 나온 것이 쿠키 , 세션이다. 쿠키란? 사용자와 관련된 정보를 pc 에 보관하는 방식이다. 유저의 정보를 기억할 필요가 있기 때문에 생겨남 (클라이언트에 저장..

JSP : 내장 객체 - out

out - 출력 스트림, 사용자 웹 브라우저로 출력하기 위한 채널 - 스크립트릿에서 브라우저로 텍스트를 출력하는 데 사용 - javax.servlet.jsp.JspWriter 객체의 참조 변수 - 버퍼 관련 메서드와 출력 관련 메서드로 구성 - out 을 이용한 출력은 서버의 콘솔이 아닌 사용자에게 전달 out 메서드메서드설명getBufferSize()output buffer 의 크기를 바이트로 알려준다.getRemaining()남아 있는 버퍼의 크기 중 사용 가능한 비율을 알려준다.clearBuffer()버퍼에 있는 내용을 모두 지운다.flush()버퍼를 비우고 output stream 도 비운다.close()output stream 을 닫고 버퍼를 비운다.println(content)content 내..

JSP - 내장 객체 - request , response

01. JSP 내장 객체 JSP 내장객체란? JSP 내에서 선언하지 않고 사용하는 객체 - JSP 가 서블릿 형태로 자동 변환된 클래스의 메서드 _jspService( ) 내에 지역적으로 선언 되어 있음 - 보통 스크립트릿에서 사용함 - 컨테이너를 통해 초기화되고 특정 기능이나 정보 제공 - 사용자 요청을 컨트롤하거나 페이지 간의 데이터 공유 즉, 내장객체는 해당 클래스의 메서드를 이용해 컨테이너가 제공하는 기능을 사용하는 것이다. JSP 내장 객체의 종류 참조 변수 이름 (내장 객체) 자바 클래스 주요 역할 request javax.servlet.http.HttpServletRequest HTML 폼 요소의 선택 값 등 사용자 입력 정보를 읽으려고 사용한다. response javax.servlet.h..

JSP 기본 문법 - 주석, 스크립트 태그

1. JSP 기본 문법 스크립트 태그 (Script Tag) 종류 태그 사용 용도 지시어 JSP 페이지의 속성을 기술 선언 멤버 변수 선언과 메소드 정의 표현식 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력 스크립트릿 순수 자바 코드 기술 주석 JSP 페이지의 설명 기술 액션 태그 (Action Tag ) - JSP 페이지 간 흐름 제어, 자바 애플릿 지원 ,자바 빈즈 컴포넌트와 JSP 상호작용 지원XML 형태의 태그만 붙일 수 있다. 액션 사용 예 기능 include 다른 페이지를 현재 페이지에 포함시킨다. forward 현재 페이지의 제어를 다른 페이지로 전달한다. useBean kk 패키지의 MyBean클래스를 cls 라는 이름으로 page범위에서 사용할 것을 선언한다. setPropert..

JSP 용어, 처리과정 정리

1. 서블릿 VS JSP 1) 서블릿 자바를 이용한 서버 프로그래밍 기술로서, 일반 애플리케이션을 개발하기 위해 만들어진 자바를 웹 환경에서 사용하려고 등장함 CGI (Common Gateway Interface) 를 대체하려고 개발되었으나, 느린 처리 속도, 많은 메모리 요구, 불편한 화면 제어 등의 한계로 PHP , ASP 등에 주도권을 넘겼다. 그러다가 서블릿을 기반으로 하면서 PHP 와 유사한 형태로 프로그래밍이 가능한 JSP (Java Server Page) 를 선보이면서 JSP 는 가장 대표적인 웹 프로그래밍 언어로 자리 잡게 되었다. 일반적인 자바 클래스의 형태를 취함 , HTML 로 표현해야 하는 내용이 많을수록 서블릿 프로그램은 상당히 비효율적 2) JSP (Java Server Page..