본문 바로가기

JSP

(12)
[JSP/Servlet] RequestDispatcher와 JSP Model2 RequestDispatcher 클라이언트로부터 최초에 들어온 요청을 JSP/Servlet내에서 원하는 자원으로 요청을 넘기는 역할을 하거나 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스이다. forward(), include() 등의 메서드를 지원한다. RequestDispatcher의 사용이유 JSP Model2 방식을 이용해 웹 애플리케이션을 개발하기 위해 사용한다. Model1 방식에서는 JSP의 액션태그를 이용해 forwarding할 수 있다. Model2 방식에서 Controller의 역할을 하는 Servlet은 자바클래스로, JSP의 액션태그를 사용할 수 없기 때문에 RequestDispatcher의 도움을 받아 forwarding을 할 수 있다. 즉 Servlet..
[JSP] JSTL JSTL(JSP Standard Tag Libaray) 표준 태그 라이브러리 JSP 페이지에서 일반적인 핵심 기능을 캡슐화하여 제공하는 JSP 태그의 컬렉션이다. 제어문, 포매팅 작업, XML문서, 국제화 태그 및 SQL 태그 조작을 위한 태그에 대한 지원을 하고있다. 기존 사용자 정의 태그를 통합하기 위한 프레임 워크또한 제공한다. JSTL의 태그 종류 Core 프로그래밍에서 기본적으로 필요한 변수선언, 제어문, 일반적인 로직등을 편리하게 사용하기 위한 기능제공 Formatting 날짜, 시간, 숫자 및 텍스트의 포맷, 국제화에 따른 언어 설정의 기능들이 제공된다. SQL RDBMS와 상호작용을 하는 태그들을 지원한다. XML XML문서를 생성하고 조작하는 방법을 제공한다. Functions 일반적인 ..
[JSP]EL EL(Expression Langugage) JSP 2.0 부터 지원 데이터를 JSP 페이지 내에 표현하는 기술 JSP페이지 내의 자바코드를 최소화 하기위해 개발되었다. 주로 자바빈과 사용되며, 자바 빈의 프로퍼티 값을 표현식또는 액션태그을 사용하는 것보다 쉽고 간결하게 꺼낼 수 있게 해준다. EL의 기본문법 (표현식) ${ ... } JSP페이지 실행시 즉시 반영된다. 객체 프로퍼티 값을 꺼낼때 주로 사용된다. #{ ... } 시스템에게 필요하다고 판단될 때 사용된다. 사용자 입력값을 객체의 프로퍼티에 담는 용도로 주로 사용된다. 예제 회원의 정보를 담고있는 Bean이 있고, 서버에서 어떠한 값을 가져온다고 가정하자 public class MemberBean { private String id; pri..
[WEB] HTTP 프로토콜에서 상태를 지속시키기 위한 방법들 URL 새로쓰기(URL Rewriting) 매번 페이지가 실행될 때 해당 페이지의 URL에 파라미터를 붙여 실행이 되게끔 하는 방법 URL에 정보가 노출이 되기때문에 보안상 문제가 발생할 수 있다. 숨겨진 필드(Hidden Form Variable) form 데이터 전송시 Hidden Type을 이용하여 값을 넘기는 방법 URL에 직접적인 정보가 노출이 되지 않으나, 페이지가 실행이 되었을 때 브라우저에서 소스보기를 통해 노출된다. 쿠키(Cookie) javax.servlet.http 패키지의 Cookie 클래스를 이용한 방법 서버에서 만들어진 쿠키를 응답과 함께 전송하여 클라이언트측에서 저장된다. 클라이언트에 저장된 쿠키를 열어볼 수 있기 때문에 중요한 정보를 쿠키에 저장시 문제가 발생할 수 있다. 세..
[JSP] Java Beans와 JSP 빈즈태그 Model1 방식에서 사용하기 때문에 현재에 들어서는 사용하지 않는 태그이기도하다. 하지만 Java Beans가 무엇이고, 사용하는 방법은 다른 View Template Engine과 크게 다르지 않다. 때문에 간단한 개념만 다룰것이다. JSP 페이지의 문제점 HTML을 제외한 여러 로직이 존재해 View와 Controll이 완전한 분리가 되지 않음. JSP페이지 내 작성된 프로그램 코드는 다시 사용하기 어렵기 때문에 코드의 중복이 발생한다. 이러한 문제점을 해결하기 위해 Java Beans을 사용해 HTML과 Java Code를 분리할 수 있다. 자바빈즈란? https://tatsu.tistory.com/entry/JAVA-JAVA-Beans [JAVA] JAVA Beans 자바 빈즈(Java Bean..
[JSP] 내부객체 내부 객체(Implicit Object) 자바 클래스 또는 인터페이스의 형태로 JSP 컨테이너 내에 이미 인스턴스화 된 상태로 제공된다. JSP페이지 작성시 해당 객체를 이용해 동적으로 페이지를 작성할 수 있다. JSP Script, Directive, Action Tag등과 같은 JSP의 문법 요소들과 함께 동작해 사용자의 요청을 적절히 처리할 수 있다. 서블릿의 _jspService()메서드 안에서 선언되기 때문에 선언문()내에서는 사용할 수 없다. 내부 객체의 사용 범주에 따른 분류 입출력 관련 객체 request, response, out 외부 환경 정보 제공 객체 session. application, pageContext 서블릿 관련 객체 page, config 예외 관련 객체 exceptio..
[JSP]JSP의 지시자와 액션태그 JSP 지시자 클라이언트의 요청에 JSP 페이지가 실행이 될 때 필요한 정보를 JSP 컨테이너에게 알리는 역할 태그 안에서 @로 시작하며 page, include, taglib 세가지 종류가 있다. page : JSP 페이지에서 지원되는 속성들을 정의하여 JSP 컨테이너에게 해당 페이지의 처리방식에 대한 정보를 제공 inlucde : JSP페이지 내에 다른 JSP조각페이지를 삽입할 수 있다. taglib : JSP페이지 내에 사용될 라이브러리를 접두사를 지정해 사용을 할 수 있게한다. JSP 액션태그 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이의 제어를 이동시키는 목적으로 사용된다. 자바 빈즈의 기능을 사용할 수 있도록 해주며, include, forward, plug-in, useBea..
[JSP]JSP의 스크립트 요소 스크립트 요소 JSP 프로그래밍에서 사용되는 문법 표현 형태로 총 4가지가 존재한다. 선언문(Declaration) - 스크립트릿(Scriptlet) - 표현식(Expression)2 - 주석(Comment) - , 선언문(Declaration) - JSP페이지에서 사용될 변수나 메서드를 선언할 수 있는 영역의 요소 JSP 페이지 어느 곳에서든지 참조하여 사용이 가능하다. JAVA형식으로 선언된 변수나 메서드를 이용해 동적인 HTML 코드를 생성하는데 사용된다. 멤버변수나 메서드의 선언은 JAVA의 클래스와 똑같다. 멤버변수를 선언과 동시에 초기화를 하지 않는다면 각 자료형의 기본값으로 초기화가 된다. 단 메서드의 경우에 반드시 리턴 타입이 존재해야한다. JSP페이지에서 선언된 메서드는 자신의 페이지에서..
[JSP]Model1, Model2 Controller, Model, View Controller : 사용자 요청화면 처리, 화면의 로직 처리 담당 Model : 알고리즘, DB와의 상호작용, 데이터 처리담당 View : 사용자에게 보여줄 UI(User Interface)담당 Model1 JSP가Controller + View의 역할을 하고, Java Bean이 Model의 역할을 한다. 개발속도가 빠르나 유지보수가 어렵다. 때문에 규모가 작고 유지보수가 거의 필요없는 프로젝트에 적합하다. 동작방식 클라이언트가 웹 브라우저를 통해 *.jsp 파일 요청 웹 서버가 요청을 받아 Container로 전달 Container는 요청에 해당하는 *.jsp파일찾고 Servlet으로 변환한다.(.java) 변환된 Servlet파일을 컴파일한다.(.cla..
[JSP]JSP의 개념 JSP는 Servlet의 단점을 보완하기 위해 만들어졌으나, 결국에는 Servlet으로 변환되어 컴파일되므로 Servlet의 생명주기 및 동작되는 방법이 비슷하다. JSP(Java Server Page) 동적 페이지 생성을 위한 서버측 스크립트 언어로, Servlet의 단점을 극복하기 위해 만들어졌다. Servlet : JAVA소스코드 속에 HTML 소스코드가 들어가는 구조 JSP : HTML소스코드 속에 자바 소스코드가 들어가는 구조 HTML내에 , , 등과 같은 기호의 삽입을 통해 작성되며, 해당 기호는 프로그램이 수행된 결과와 치환됨으로써 사용자의 브라우저에는 순수한 HTML태그로만 구성된 페이지를 볼 수 있게 된다. JSP페이지 내에서 작성된 자바 소스코드는 웹 브라우저로 보내지는 것이아니라 웹 ..