-
[헤드퍼스트 Servlet&JSP] 7-2. JSP LifeCycle 및 내장객체 사용개발입문/Servlet&JSP 2017. 2. 18. 12:21
JSP 는 서블릿이 됩니다. 컨테이너는 JSP 파일을 HttpJspPage 인터페이스를 구현한 서블릿 클래스로 변환하여 생성합니다. 그래서 이전에 서블릿에서 할 수 있었던 것을 모두 JSP에서도 할 수 있어야 합니다. (그래야 동일한 역할을 맡길 수 있죠!) 감사하게도 Servlet 에서 사용하던 것들은 JSP로 1:1 대응됩니다. (방식도 살짝만 다릅니다.) 그러니 서블릿이 참조했던 많은 리소스들에도 접근할 수 있어야 합니다.그 외 서블릿 파라미터를 활용해 초기화할 수도 있어야 하고- JSP로 만들어진 서블릿 초기화(jspInit), 파괴(Destory) 할때의 커스텀 소스도 구현할 수 있어야합니다. 학습목표 JSP 는 서블릿이 됩니다. 템플릿 텍스트 (HTML) 스크립팅 요소 (Scripting El..
-
[헤드퍼스트 Servlet&JSP] 7-1. JSP 요소개발입문/Servlet&JSP 2017. 2. 18. 12:12
학습 목표에 완전 생소한 것들 천지다.. ㅜ.ㅜ 이번 HEADFIRST Servlet&JSP 시리즈가 조금 진입의 턱이 높은 듯 하다. 누군가가 각 기술들의 뎁스를 도식화를 해놓는다면 얼마나 좋을까? 내가 더 중요한 것부터 집중할 수 있도록- 학습목표 JSP 는 서블릿이 됩니다. 템플릿 텍스트 (HTML) 스크립팅 요소 (Scripting Element)주석, 지시자, 선언문, 스크립틀릿, 표현식 표준 액션 및 커스텀 액션 표현식 언어 EL (Expression Language) JSP 가 Servlet이 되기까지 JSP란? JSP도 서블릿도 기본적으로는 .java / .class 이다.JSP 코드는 최종적으로 만들어질 서블릿 클래스에서 어떤 역할을 하는가?JSP 의 개별 요소가 생성된 서블릿 소스 코드..
-
Request 속성과 Request 디스패칭개발입문/Servlet&JSP 2017. 2. 16. 00:49
Request Dispatching 이번 한 번의 요청에 대해서만 사용한다면- Request에 속성을 추가하면 됩니다. (Context, Session 처럼 다른 컴포넌트도 사용할 수 있는 곳에- 장기적으로- 공유하지 않습니다.)RequestDispatcher는 Request를 전달한 다른 리소스(컴포넌트)를 가리키는 래퍼 클래스를 반환합니다. 이 래퍼클래스로 request, response를 인자로 가지는 forward 메소드를 호출합니다. 이를 통해 실제 response 작업을 RequestDispatcher로 위임합니다.RequestDispatcher는 아래 기능을 할 래퍼클래스를 지정해준다.- 다른 서블릿 (다른 서블릿에서 추가작업이 필요한 경우) or - JSP View (웹페이지 출력용) pu..
-
웹애플리케이션 개발: 웹 컴포넌트간 공유하는 속성 범위개발입문/Servlet&JSP 2017. 2. 15. 22:48
속성 vs 파라미터 속성 (Attribute) 파라미터 (Parameter) 타입 Application / context Request Session Application/Context Request Servlet 설정 메소드 setAttribute(String name, Object value) 애플리케이션과 서블릿의 초기화 파라미터 값은 런타임 시 설정 불가 (DD에서 설정가능) 리턴 타입 Object String 참조 메소드 getAttribute(String name) getInitParameter(String name) Attribute각 속성의 접근 범위는 이러한데.. 그래서 각자가 어떻게 쓰이고 있는 것일까? 속성 API 메소드기본적인 게터, 세터 메소드들~Object getAttribute..
-
ServletContextListener 컨텍스트 리스너개발입문/Servlet&JSP 2017. 2. 15. 21:08
웹 애플리케이션 (Context) 이 실행될 때 DD에 지정된 파라미터를 통해 컨텍스트를 초기화한다.ServletContextListener 클래스에서 contextInitialized(ServletContextEvent) 메소드를 통하여 초기화할 때 실행할 작업을 구현할 수 있다. (예를 들어 단순 String 값인 파라미터를 객체로 만들어 attribute으로 추가할 수 있다.)그 외, 특정 서블릿에 대해 요청이 왔을 때, DD에 지정된 초기화 파라미터를 전달할 수 있다. Parameter 의 범위 웹 어플리케이션 전체 vs. 서블릿 1. 웹 애플리케이션 전체에서 공유되는 파라미터/속성값- ServletContext- ServletContextEvent- ServletContextListener 2...
-
Servlet LifeCycle & Parameter개발입문/Servlet&JSP 2017. 2. 14. 23:21
Servlet 초기화1. 웹 서버 시작2. (요청이 있을 경우) 웹서버 컨테이너 DD 확인3~4. DD, InitParameter Key-Value 파라미터 설정5. ServletConfig 객체 생성 (initParameter 활용)6. servlet 클래스 인스턴스 생성7. init(ServletConfig) 메소드 호출+a. 배포 or DD 수정 시 서블릿 (재) 초기화 서블릿 초기화 파라미터 컨텍스트 초기화 파라미터 - 서블릿 초기화 파라미터은 항목을 포함하고 있는 서블릿만 이용 가능합니다. 단, 서블릿 코드 안에서 이 값을 또는 이 값을 활용해 얻어낸 객체를 속성(Attribute)에 저장하여 다른 컴포넌트에도 이용가능하게 만들 수 있습니다. e.g. HttpServletRequest 객체에 속..
-
[헤드퍼스트 Servlet&JSP] 4. 요청과 응답개발입문/Servlet&JSP 2017. 2. 5. 22:04
서블릿 모델위 그림을 이해했다면-이번 장에서는 HTTP 웹 환경에서 HTTP 메소드, HTTP 메소드 프로토콜, HttpServlet 메소드 등등을 통해 어떻게 웹 애플리케이션 요청&응답이 이루어지는 지 살펴볼 차례이다. 그 중 가장 중간에서 어떤 일을 할지 판단/처리하는 Servlet에 대해서도 자세히 알아본다.HttpServletRequest 인터페이스: 폼, 헤더 정보, 쿠키 정보HttpServletResponse 인터페이스: 헤더, 컨텐츠타입, 텍스트스트림, 바이트스트림 출력, 리다이렉트/디스패치, 쿠키설정 (쿠키심기)서블릿 생명주기 이벤트와 각각의 목적: (1) 서블릿 클래스 로딩, (2) 서블릿 초기화 (3) init() 메소드 호출, (4) service() 메소드 호출, (5) destro..
-
[헤드퍼스트 Servlet&JSP] 3-2. MVC 진행개발입문/Servlet&JSP 2017. 2. 5. 19:44
1. 브라우저가 컨테이너가 요청을 보냅니다. 2. 컨테이너는 URL이 올바른 서블릿을 호출한 것인지 판단한 다음, 요청을 서블릿으로 넘깁니다.서블릿은 HttpServletRequest, HttpServletResponse 를 인자로 받아 doPOST() 메소드를 실행시킵니다. doPOST() 메소드의 내부 부분을 비즈니스 로직으로 채웁니다. 3. 서블릿은 BeerExpert 에게 도움을 청합니다. (비즈니스 로직을 통해 값을 구합니다.) public ArrayList getBrands (String color) { } 4. BeerExpert 클래스가 값을 리턴합니다. 서블릿은 이 내용을 Request 객체에 기억시켜둡니다. request.setAttribute("styles", result); 5. 서..