-
[헤드퍼스트 Servlet&JSP] 7-3 EL Expression Language 소개개발입문/Servlet&JSP 2017. 2. 19. 11:15
이때까지 JSP: HTML 안에 Java 코드 삽입하는 태그들을 살펴보았습니다. JSP Elementshttp://haloaround.tistory.com/84 JSP to Servlethttp://haloaround.tistory.com/85 하지만 2가지 문제가 있습니다. 1) 웹 페이지 디자이너가 자바를 알 필요까지는 없지 않을까요? 2) JSP 안에 있는 자바 코드는 유지보수하기가 까다롭습니다. 그래서 EL 이 등장했습니다!!!(어째.. 헤드퍼스트 말투를 따라가는 듯한 느낌이..) 학습목표 JSP 는 서블릿이 됩니다. 템플릿 텍스트 (HTML) 스크립팅 요소 (Scripting Element)주석, 지시자, 선언문, 스크립틀릿, 표현식 표준 액션 및 커스텀 액션 표현식 언어 EL (Expressi..
-
[헤드퍼스트 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 의 개별 요소가 생성된 서블릿 소스 코드..
-
[헤드퍼스트 Servlet&JSP] 6. 세션관리개발입문 2017. 2. 17. 11:31
다중 요청간 고객과의 대화기록 유지가령 고객의 장바구니 목록을 (로그인 없이도) 오른쪽날개에 제공할 수 있다면. 학습목표 1. 세션 객체에 객체를 저장하거나 또는 읽어올 수 있는 서블릿 코드를 작성할 수 있어야 합니다.2. 세션 객체 생성 ~ 제거3. 세션 리스너: 이벤트 반응4. 쿠키, 세션, URL재작성 HttpSession 객체클라이언트가 세션이 유지되는 동안 보낸 모든 요청으로부터 얻은 정보를 여기에 저장ㄴ 대안: 상태유지 세션빈 (상태유지 EJB), 데이터베이스 컨테이너는 클라이언트를 어떻게 구분하지?HTTP 프로토콜은 무상태 (stateless) 연결인걸?ㄴ 클라이언트는 유일한 세션ID가 필요하다 ㄴ 웹 컨테이너는 세션ID 쿠키를 심어놓는다. Set-Cookie: JSESSIONID=0AAB6..
-
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 객체에 속..