장바구니 담기 close

장바구니에 상품을 담았습니다.

HEAD FIRST SERVLETS & JSP(개정판)

HEAD FIRST SERVLETS & JSP(개정판)

  • 케이시 시에라
  • |
  • 한빛미디어
  • |
  • 2009-02-27 출간
  • |
  • 912페이지
  • |
  • 202 X 234 mm
  • |
  • ISBN 9788979146639
판매가

32,000원

즉시할인가

28,800

카드할인

0원(즉시할인 0%)

적립금

1,600원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
28,800

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

소개

더 깊게 더 빠르게 학습하는 특별한 방법

최신 J2EE 1.5 버전 썬 인증 웹 컴포넌트 개발자(SCWCD) 시험을 준비하고 있나요?
서블릿과 JSP을 배우기가 힘드시다구요?

걱정 마세요. Head First Servlets & JSP가 곧바로 여러분의 머릿속에 집어 넣어드릴 겁니다. 이 보다 더 서블릿과 JSP를 빨리 그리고 깊게 배울 수 있는 방법은 아마 없을 겁니다. 그리고 가장 중요한 것은 배운 것을 바로 써 먹을 수 있는 능력까지 갖게 된다는 거죠. 왜 그 많은 비평가들이 이 책을 "책 장 넘기기에 바빴다"라고 하는지 이해가 갈 것입니다. 그렇다고 해서 시험보기 전날 반짝 공부하고, 다음 날 다 잊어버리는 그런 책은 절대 아닙니다.

예제 소스 및 한글 모의고사
www.hanb.co.kr/exam/1663


특징

왜 이 책을 톡톡 튀게 만들었나요?
새로운 개념 앞에서 이를 붙잡고 낑낑거리고 있는 독자를 생각했습니다. 그러고 있기에는 시간이 너무 아깝다는 생각을 했기 때문이죠. 그래서 인지 과학을 이용한 학습 이론의 최신 연구 결과인 여러 감각 기관을 동원한 학습 방법을 바탕으로 비주얼하게 구성했습니다. 책만 펼치면 몇 분안에 잠이 들고 마는 까만 글씨만으로 채워진 방식이 아니라 여러분의 뇌가 작동하는 진짜 방식대로 책을 구성했습니다.

1. 비주얼하게 만들자 : 단어만 있는 것보다는 그림을 사용하는 편이 기억하기도 좋고 학습 효과를 향상시키는데도 도움이 됩니다.(최대 89%까지 향상됨)
2. 개인적인 대화 형태의 문체를 사용하자 : 개인적인 대화를 나누는 듯한 문체로 설명하면 학습 후 테스트에서 40% 정도까지 더 나은 점수를 받을 수 있다고 합니다.
3. 더 깊이 생각할 수 있도록 만들자 : 뉴런을 활발하게 사용하지 않으면 머릿속에서 그리 특별한 일이 일어나지 않습니다. 항상 독자에게 문제를 풀고 결과를 유추하고 새로운 지식을 만들어낼 수 있는 동기, 흥미, 호기심, 사기를 불어넣을 수 있어야 합니다.
4. 독자가 계속해서 주의를 기울일 수 있도록 하자 : 사람의 두뇌는 언제나 일상적이지 않은 것, 재미있는 것, 특이한 것 등에 주의를 기울입니다. 어려운 기술적인 내용이라도 지루하지만 않다면 두뇌는 새로운 내용을 훨씬 빠르게 받아들일 수 있습니다.
5. 독자들의 감성을 자극하자 : 뭔가를 기억하는 능력은 그 내용이 얼마나 감성을 자극하는지에 따라 크게 달라집니다. “오 이럴 수가”, “내가 해 냈어!”와 같은 감정을 느낄 수 있다면 배우는 과정에 크게 도움이 된다고 합니다.


독자 대상

-. 자바 또는 자바 웹 프로그래밍을 공부하는 사람
-. SCWCD를 준비하는 수험생


추천평

“서블릿 기술에 대한 도입으로써 Head First Servlets & JSP 보다 더 나은 것이 없습니다. 당신이 자바로 웹 개발을 시작하길 원하거나 또는 쉽게 읽고 제대로 자바 웹 개발에 대해 공부하고 이해하고 싶다면, 서점에서 이 책을 뽑아 드는 것 말고는 딴 방법이 없을 것입니다”
- 올리버 로엘, SCJP, SCJD, SCBCD, SCWCD, SCEA

“수업 교재로 서블릿/JSP 책을 10권도 넘게 구매했지만, 어느 것 하나 맘에 딱 드는 것이 없었죠. 그러다가 지금 여러분 손에 쥔 바로 이 책, 보석과도 같은 교육적인 자료들로 구성된 Head First 책을 접한 다음부터 우리는 더욱 뛰어난 강사가 되었습니다”
- 필립 마퀴드, 벨기에 브뤼셀에 있는 루프 팩토리(Loop Factory) 선임 강사

“이제 자바 기술은 없는 데가 없을 정도죠? 모바일 폰, 카메라, 프린터, 게임기, PDA, ATM, 스마트 카드, 주유소, 운동 경기장, 의료 기기, 웹 캠, 서버 등. 현재 소프트웨어를 개발해야 하는데 자바를 모른다구요. 그렇다면 지금이 바로 Head First 바다에 빠져들 시간입니다”
- 스콧 맥닐리, 썬 마이크로 시스템 회장, 사장 겸 CEO

“조금 장난스럽기도 하면서 빠르게 읽을 수 있고, 재미있고, 매력적입니다. 읽다보면 정말 뭔가를 배울 수 있습니다”
- 켄 아놀드(Ken Arnold), 전직 썬 마이크로시스템즈 선임 엔지니어
『Java Programming Language』의 저자(자바 창시자인 제임스 고슬링(James Gosling)과 공저)

“어제 이 책을 받아서 집에 오는 길에 읽기 시작했는데... 책에서 눈을 뗄 수가 없었습니다. 헬스 클럽까지도 들고 가서 책을 보고 있었는데, 책을 읽으면서 웃고 있는 제 모습이 정말 이상하게 보였을 것 같네요. 이 책은 정말 ‘쿨’한 책입니다. 재미있으면서도 중요한 내용들을 꼭 집어서 설명하고 있습니다. 정말 놀라운 책입니다”
- 에릭 감마, IBM 수석 엔지니어(Distinguished Engineer), 『Design Patterns』저자



부별 내용


1 서블릿과 JSP는 어디에 쓰는 물건인고?
웹 애플리케이션은 이제 막 달아 오른 시장입니다. 수많은 GUI 애플리케이션이 전 세계 컴퓨터에 깔려 있습니다. 그 수가 얼마인지 알 수가 없을 정도죠. 웹 개발자들은 GUI 애플리케이션이 공통적으로 가지고 있는 문제인, 배포의 문제에 대해서는 이제 고민할 필요가 없게 되었습니다. 웹 애플리케이션은 브라우저만 가지고 있다면 누구든 실행할 수 있기 때문이지요. 하지만 이제는 서블릿이나 JSP를 사용해야 합니다. 정적인 페이지도 1999년 전까지는 그런대로 쓸 만 했습니다. 이제 웹사이트(web site)에서 웹 애플리케이션(web app)으로 갈아 타야 할 시간입니다.

2 웹 애플리케이션 아키텍처
서블릿은 도움이 필요합니다. 요청이 들어오면, 누군가 서블릿을 초기화해서, 요청을 처리할 새로운 스레드를 만들어야 합니다. 그러면 그 누군가는 서블릿의 doPost() 또는 doGet() 메소드를 호출하겠지요. 여기에 또 하나 이 두 메소드의 매개변수로 들어가는 HTTP Request와 HTTP Response 객체를 누군가가 생성해서 서블릿으로 넘겨주어야겠지요. 또한 누군가는 서블릿이 생성, 소멸하는 시점에서 리소스 관리도 해야 합니다. 그 누군가가 누구냐 하는 것인데, 바로 컨테이너입니다. 이 장에서는 웹 애플리케이션이 컨테이너 안에서 어떻게 돌아가는지 살펴보겠습니다. 아울러 MVC(Model-View-Controller) 디자인 패턴과 첫 만남도 준비되어 있습니다.

3 초 간단 미니 MVC 튜토리얼
MVC 웹 애플리케이션을 만들어서 배포해봅시다. 자 이제 팔을 걷어 붙이고 HTML 코드, 서블릿 컨트롤러, 모델(일반적인 자바 클래스), XML 배포 서술자(DD), JSP 뷰를 작성해봅시다. 그 다음 빌드하고, 배포한 다음 잘 돌아가나 테스트 하면 되겠죠. 그러나 이것을 하려면 먼저 배포 환경을 세팅해야 합니다. 여기에다가 서블릿 및 JSP를 배포할 수 있는 설정 및 톰캣에서 요구하는 사항 등을 설정한다는 군요. 여기서 해보는 것은 사실 매우 작은 초보적인 애플리케이션입니다. 그러나 작다고 얕보면 안됩니다. 그래도 MVC 패턴을 사용한 애플리케이션이니까요.

4 서블릿이 되어 보자
서블릿은 평생을 서비스 클라이언트로 삽니다. 서블릿이 하는 일은 클라이언트로부터 요청을 받아 이에 응답하는 일입니다. 요청은 아주 단순한 “환영 페이지를 보여주세요(GET)”에서부터 “제 장바구니 결제해주세요”라는 복잡한 것까지 다양하죠. Request 객체에는 사용자의 중요한 데이터들이 함께 들어있기 때문에, 서블릿은 어떻게 이 정보를 읽어오고, 사용할 것인지를 알아야 합니다. Response 객체는 브라우저가 화면에 정보를 출력하거나, 아니면 바이트(Byte) 정보를 내려받는 것과 같은 정보 전송 역할을 하기에 서블릿은 데이터를 어떻게 전송하는가도 미리 알고 있어야 합니다. 이도 아니면 다른 페이지, JSP, 아니면 다른 서블릿으로 요청을 넘겨 주어야겠지요.

5 웹 애플리케이션이 되어 보자
서블릿은 독불장군이 아니다. 웹 애플리케이션은 서비스를 제공하기 위하여 많은 컴포넌트들과 함께 협업합니다. 모델, 컨트롤러, 뷰 등이 있으며, 파라미터, 속성 등도 있습니다. 여기에 도우미(Helper) 클래스들까지. 그런데 이들을 어떻게 해야 서로 묶어 세울 수 있나요? 만약 공유해야 할 정보가 있다면 어떻게 해야 되지요? 정보를 숨겨야 된다면? 스레드 안전(Thread-Safe)을 보장하려면? 이걸 어떻게 하느냐에 따라 개발자의 삶이 달라집니다

6 대화 상태 유지하기
웹 서버에는 메모리가 없습니다. 웹 서버는 응답을 보낸 다음에는 당신이 누구였는지조차 잊어버립니다. 다음 번에 다시 요청을 해도, 그가 이전의 당신이었다는 것을 모르죠. 즉 웹 서버는 당신이 이전에 요청했다는 사실을 기억하지 못한다는 말이며, 당신에게 응답을 보냈다는 것도 기억하지 못합니다. 그러나 프로그램을 사용하다 보면 여러 번의 요청에 걸쳐서 클라이언트와의 대화 내용(state)을 기억할 필요가 있습니다. 고객이 상품을 선택하여 장바구니에 넣고, 결제하는 동작을 하나의 요청으로 처리할 수는 없지 않습니까?

7 JSP가 되어 보자
JSP, 서블릿이 되다. 개발자가 서블릿을 만들지는 않았지만, 컨테이너는 알아서 JSP를 서블릿 소스코드로 변환한 다음, 컴파일하여 완전한 서블릿 클래스로 탈바꿈시킵니다. 컨테이너가 알아서 하지만, 그래도 개발자는 JSP가 서블릿 소스코드로 어떻게 변환되는지 알고 있어야 합니다. 개발자가 JSP에 자바 코드를 직접 코딩할 수 있지만, 때에 따라서는 그렇지 못한 경우도 있습니다. 페이지 개발자가 자바를 모른다면 어떻게 하겠습니까? 그럼 무엇으로 소스코드를 작성하나요? 무엇으로든 작성했다면 이를 어떻게 자바코드로 바꾸나요? 이 장에서는 여섯 가지 서로 다른 JSP 요소들에 대하여 알아보겠습니다. 물론 각각 다 나름의 사용 목적이 있으며, 자신만의 문법 체계(syntax)를 가지고 있습니다. 이제까지 여러분 JSP 코드에는 없었던 것을 배우게 됩니다. 기대하세요.

8 스크립트가 없는 페이지
스크립팅을 잊어 버리세요. 웹 페이지 디자이너가 자바를 알아야만 할까요? 이는 서버측 프로그래밍을 하는 자바 프로그래머가 그래픽 디자이너 역할을 해야 한다는 것과 같지 않을까요? 여러분이 팀 내에서 자바 프로그래머고, JSP 안에 자바 코드들이 널려 있다고 한다면, “악몽 같은 유지보수”란 말이 낯설지 않을 겁니다. 이제 스크립트가 없는 페이지를 작성한다는 것이 불가능하지 않습니다. JSP 스펙 2.0부터는 더욱 쉬운, 더욱 유연한 방식으로 가능하지요. EL(표현식 언어)에 감사할 따름이지요. XPATH와 자바 스크립트(역자주: JSP 스펙 2.0에는 ECMAScript라고 언급함)에서 영감을 받아 만든 EL은 웹 디자이너들이 매우 친근하게 사용할 수 있습니다. 하지만 EL에는 몇 가지 함정이 있습니다. EL은 자바와 비슷해 보이지만, 그렇지 않은 부분도 있다는 것입니다. 자바에서 쓰던 문법이 EL에서는 다르게 동작하는 경우가 있으니 조심해야 합니다!

9 막강한 커스텀 태그
가끔 EL이나 표준 액션으로 안 되는 것도 있지요. 배열에 들어있는 데이터를 루프로 돌려서, HTML 테이블 형식으로 하나씩 출력하고 싶다면 어떻게 코딩해야 할까요? 물론 스크립틀릿으로 짜면 for 루핑을 돌면서 출력하는 구문을 단 몇 초안에 짤 수 있겠죠. 하지만 우리 목표가 스크립팅을 없애는 거란 것 잊지 않으셨죠? 이와 같이 EL이나 표준 액션으로 구현하기 어려운 것을 해결하기 위해 커스텀 태그를 사용합니다. 기쁜 소식은 이미 개발자들이 가장 필요로 할 것 같은 것을 이미 누군가 JSP 표준 태그 라이브러리(JSTL)로 만들어놨다는 것입니다. 이 장에서는 커스텀 태그 사용법에 대하여 익히고, 다음 장에서는 이를 한번 만들어보죠.

10 JSTL만으로 만족스럽지 않을 때
가끔 JSTL과 표준 액션만으로 충분하지 못한 경우가 있죠. 뭔가 자신만의 것을 만들고 싶은데, 그렇다고 해서 스크립팅으로 되돌아 가고는 싶지 않을 때가 있습니다. 이럴 경우 여러분만의 태그 핸들러를 작성할 수 있습니다. 페이지 디자이너가 여러분이 만든 태그를 사용하지만, 실제 뒤에서 돌아가는 모든 작업은 여러분이 작성한 태그 핸들러 클래스에서 돌아가지요. 자신만의 태그 핸들러를 작성하는 방법에는 3가지가 있습니다. 물론 배워야 할 것이 많겠지요. 그 중 두 개는 JSP 2.0에 처음 도입된 것으로, 굉장히 편리한 기능으로 많은 도움이 될 것입니다(심플 태그 및 태그 파일).

11 웹 애플리케이션을 배포해보자
이제 개발한 웹 애플리케이션을 배포할 때가 되었군요. 개발한 페이지는 손 볼대로 손을 봐서 윤이 반짝반짝 나는군요. 코드 테스트는 이미 완료했고, 튜닝도 끝냈고… 프로젝트 종료 발표가 2주 앞으로 다가왔군요.
이제 개발한 것들을 서버에 배포해야 할 텐데. 뭔 놈의 디렉토리는 이렇게 많고, 지켜야 할 규칙은 왜 이리도 많은지. 디렉토리 이름은 지었나요? 고객도 그 이름에 만족할까요? 고객이 원하는 대로 디렉토리를 만들면, 컨테이너가 제대로 찾아 갈까요?

12 비밀스럽게, 안전하게
지금 당신의 웹 애플리케이션이 위험에 처해 있다. 네트워크 곳곳에서 말썽을 피우는 문제아, 크랙커, 사기꾼, 범죄자들이 중요한 정보를 훔치거나, 이익을 취하거나 아니면 그냥 재미로 시스템을 뚫고 들어오려고 기를 쓰고 있습니다. 당신도 이런 나쁜 녀석들이 애써 구축한 온라인 상점 트랜잭션을 엿보거나, 신용카드 정보를 빼가는 것을 원치 않겠죠? 또 이런 녀석들이 특별 할인을 받기 위해 우수 고객도 아니면서 우수 고객인척 하는 것도 말이죠. 중요한 고객 정보를 빼내는 것도?

13 막강 필터
필터는 요청을 중간에서 가로챕니다. 요청(Request)을 중간에서 가로챌 수 있다는 것은 응답(Response)도 함께 가로챈다는 것을 의미합니다. 이 방식의 장점은 무엇보다도 서블릿이 눈치채지 못한다는 것이죠. 즉 클라이언트의 요청과 컨테이너가 서블릿의 service() 메소드를 호출하는 중간에 끼어 들기 때문에 무슨 일이 있었는지 모른다는 말이죠. 그런데 뭐 하려고 이러냐고요? 휴가라도 더 갔다 올 수 있나요. 당연하죠. 생각해보세요. 서블릿 수정하면서 보낸 그 많은 시간을... 이제 필터 하나만 수정하면 모든 서블릿에 다 적용이 되니 시간이 안 남겠어요. 예를 들어 모든 서블릿에 사용자가 날린 요청을 기록으로 남기고 싶다면 어떻게 하나요? 서블릿이 넘겨주는 출력 스트림에 무슨 작업을 하고 싶다면 어떻게 하나요? 필터를 사용하면 서블릿 코드에 손 하나 안 대고 이 모든 것이 가능합니다.

14 엔터프라이즈 디자인 패턴
누군가는 이 문제를 겪었습니다. 자바로 웹 애플리케이션 개발이 처음이라면, 운이 좋군요. 이제 J2EE 셔츠를 입고, 이 길을 걸어간 수 많은 개발자들이 흘린 땀과 지혜의 총화를 만나게 될 것입니다. J2EE 관련 패턴 그리고 일반 디자인 패턴 둘 다 현재 작성하고 있는 소스 코드에 응용할 수 있습니다. 웹 애플리케이션에서 가장 중요한 디자인 패턴인 MVC, 아주 폭 넓은 인기를 얻고 있는 프레임워크인 스트럿츠, 이를 사용하면 유연하며, 유지 보수성이 뛰어난 서블릿 프론트 컨트롤러를 만들 수 있습니다. 이 모든 것이 다 앞서 간 사람들의 덕분이란 것을 잊지 말고, 이제 여러분은 인생에 있어서 좀더 중요한 데 여러분의 시간을 보내세요.

부록 A J2EE 1.5 SCWCD 대비 실전 모의고사


관련 도서

『Head First Java 개정판』(한빛미디어, 2005)
『Head First EJB』(한빛미디어, 2005)
『UML과 JAVA로 배우는 객체지향 CBD 실전 프로젝트』(한빛미디어, 2009)
『클래스 구조의 이해와 설계』(한빛미디어, 2004)

목차

1. 서블릿과 JSP는 어디에 쓰는 물건인고?: 서문
학습 목표
웹 서버와 클라이언트는 무엇을 하나요, 어떻게 대화하죠?
2분짜리 HTML 가이드
HTTP 프로토콜. 넌 누구냐!
HTTP GET, POST 요청 및 HTTP 응답을 해부해보자.
URL로 웹 페이지가 어디 있는지 어떻게 알지?
웹 서버, 정적인 웹 페이지 그리고 CGI
서블릿의 신비를 벗겨보자: 작성, 배포, 실행
JSP는 ‘HTML에 자바를 넣을 순 없을까’라는 고민에서 탄생했다네요.

2. 웹 애플리케이션 아키텍처: 개요
학습 목표
컨테이너의 정체는 무엇이며 개발자에게 어떤 의미이죠?
코드는 어떤 모습일까?(무엇이 서블릿을 서블릿답게 만드는가)
서블릿에 이름을 붙인 뒤 DD에서 URL과 매핑하기
스토리: 밥은 지금 결혼정보 사이트를 만들고자 합니다(MVC 도입)
MVC 디자인 패턴은 이런 문제를 해결합니다.
실제 배포 서술자(DD)
J2EE에는 무엇이 들어 있나

3. 초 간단 미니 MVC 튜토리얼: 실전 MVC 애플리케이션
학습 목표
MVC 애플리케이션을 빌드해보자; 먼저 설계부터 하고...
개발 및 배포 환경을 만들어보자
제일 첫 화면 HTML 코드를 만들어 테스트하자
배포 서술자(DD)를 만들다
서블릿 컨트롤러를 생성, 컴파일, 배포, 테스트하다
모델 컴포넌트를 디자인, 빌드, 테스트하다
컨트롤러가 모델을 호출하도록 확장하다
뷰 컴포넌트를 만든 다음 배포하다(이것 JSP입니다)
서블릿 컨트롤러가 뷰 컴포넌트를 호출하도록 확장하다

4. 서블릿이 되어 보자: 요청과 응답
학습 목표
컨테이너 안에서 서블릿의 일생
서블릿 초기화와 스레드
그러나 서블릿의 본연의 임무는 GET, POST 요청을 핸들링 하는 것입니다
멱등이 아닌 요청 이야기.
GET 요청을 보낼지 POST 요청을 보낼지 어떻게 결정합니까?
파라미터 전송 및 사용하기
지금까지는 Request였고… 이제 Response에 대해 알아보죠.
Response 헤더에 값을 설정할 수도 값을 추가할 수도 있다네요.
리다이렉트 대 Request 디스패치
리뷰: HttpServletResponse

5. 웹 애플리케이션이 되어 보자: 속성과 리스너
학습 목표
초기화 파라미터와 위기에서 구해 준 ServletConfig
JSP에서 서블릿 초기화 파라미터는 어떻게 접근하나요?
위기에서 구해 준 컨텍스트 초기화 파라미터
ServletConfig와 ServletContext 비교
그녀가 원한 건 ServletContextListener였다
튜토리얼: 간단한 ServletContextListener 리뷰
개발한 리스너 컴파일, 배포 그리고 테스트
ServletContextListener에 대한 모든 것, 리뷰
리스너 8개: 컨텍스트 이벤트 리스너 말고 그 외...
정확히 속성이라는 것, 생존 범위라는 것이 무엇입니까?
속성 API 및 속성의 어두운 면들...
Context 생존 범위는 스레드-안전(thread-safe)하지 못하다?
어떻게 하면 컨텍스트 속성을 스레드-안전하게 만들 수 있나요?
동기화 해보겠다고요?
세션 속성은 스레드-안전한가?
SingleThreadModel의 폐해.
단지 Request 속성과 지역 변수만이 스레드 안전합니다.
Request 속성과 Request 디스패치

6. 대화 상태 유지하기: 빈/엔티티 동기화
학습 목표
실제 대화라고 생각해봅시다(세션이 어떻게 작동하죠)
세션 ID, 쿠키, 기타 세션에 대한 기초...
이럴 때 나타난 우리의 해결사: URL 재작성
세션이 오래되었네요: 음…그렇다면 어떻게 제거하면 될까?
쿠키는 세션을 사용하기 위해서만 필요하나요? 아니면 다른 데에도 쓰나요?
HttpSession 삶에 있어 주요 순간들.
HttpSessionBindingListener를 벌써 잊은 건 아니죠?
세션 이동
리스너 예제

7. JSP가 되어 보자: JSP 코드 작성하기
학습 목표
page 지시자와 “out”으로 초 간단 JSP 만들기
JSP 표현식, 변수 및 선언
이제 JSP가 만든 서블릿이 등장할 시간이 되었군요
out만이 내장 객체는 아닙니다.
JSP의 초기화와 일생
이와 관련해서, 3가지 지시자에 대한 얘기를 좀더 해보죠.
스크립틀릿이 왜 나쁘다는 거죠? EL 등장이요.
잠깐만... 아직 살펴보지 않은 JSP 요소가 있는데요: 액션

8. 스크립트가 없는 페이지: 스크립트가 없는 JSP
학습 목표
속성이 빈일 때
표준 액션: useBean, getProperty, setProperty
빈 참조에 다형성 기법을 사용할 수 있습니까?
이때 혜성처럼 나타난 속성 param
프로퍼티 변환
표현식 언어(EL)가 답이다!
도트(.) 연산자로 프로퍼티 및 맵 접근하기
[] 연산자는 도트 연산자 보다 막강합니다.
도트 연산자와 [] 연산자에 대한 기타 사항
EL 내장 객체
EL 함수와 널(null) 처리
재사용 가능한 템플릿 조각들 ? 2가지 “include”
표준 액션
그녀는 JSTL 태그를 몰랐던 것이다.(미리 보기)
빈 관련 표준 액션 및 include 리뷰

9. 막강한 커스텀 태그: JSTL 작성
학습 목표
스크립팅 없이 루핑 돌리기:
태그로 조건문 만들기
태그 사용하기
, 컨텐츠를 포함하기 위한 3가지 방법
포함할 컨텐츠 요리하기
으로도 똑같은 일을 할 수 있죠
하나면 하이퍼링크에 관련된 건 모두 다 할 수 있습니다.
나만의 오류 페이지를 만들어보자.
태그. 자바의 try/catch 문...
JSTL에도 없는 태그가 필요하다면?
태그에 주목해주세요.
태그 몸체에 들어 갈 수 있는 것들
태그 핸들러, TLD, JSP
taglib 지시자에 있는 는 그냥 이름입니다. 위치가 아닙니다.
JSP가 하나 이상의 태그 라이브러리를 사용한다면...

10. JSTL만으로 만족스럽지 않을 때: 커스텀 태그 만들기
학습 목표
태그 파일: include처럼 행동하지만, 좀더 개선된 방식...
컨테이너가 태그 파일을 찾는 곳
심플 태그 핸들러
태그 몸체에 표현식이 있다면...
아직도 클래식 태그 핸들러를 배울 이유가 있으니...
태그 핸들러 API
초 간단 클래식 태그 핸들러
클래식 태그 생명주기는 리턴값에 따라 달라집니다.
IterationTag에 몸체를 반복할 수 있는 기능이 들어있다네요.
TagSupport 메소드 디폴트 리턴값
DynamicAttributes 인터페이스
BodyTag에는 두 개의 메소드가 더 있으니...
태그와 태그가 협업해야 할 때가 있나니...
태그 핸들러에서 PageContext API 사용하기

11. 웹 애플리케이션을 배포해보자: 웹 애플리케이션 배포
학습 목표
배포 핵심: 어떤 녀석이 어디에 있어야 하나요?
WAR 파일
서블릿 매핑은 어떻게 동작할까요?
DD에 환영 파일 설정하기
DD에 오류 페이지 설정하기
DD에서 강제로 서블릿 초기화하기
XML에 부합하는 JSP 만들기: JSP 문서

12. 비밀스럽게, 안전하게: 웹 애플리케이션 보안
학습 목표
서블릿 보안의 4요소
HTTP 환경에서 어떻게 인증하는가
보안을 선언적으로 관리하는 이유 톱 10
웹 애플리케이션 보안 관련 규정은 누가 정하나요?
인가: 역할(롤)과 제약
인증: 4가지 방식
4가지 인증 방식
안전하게 데이터 전송하기: HTTPS가 답이다.
데이터 기밀성과 데이터 무결성을 분리하여 선언하기

13. 막강 필터: 랩퍼와 필터
학습 목표
누가 요청을 날렸는지 기록하는 필터를 만들어보자.
필터의 생명주기
필터 선언 및 순서 정하기
Response 출력을 압축하는 응답 필터
랩퍼 기초
실제 압축 필터 코드
압축 랩퍼 코드

14. 엔터프라이즈 디자인 패턴: 패턴과 스트럿츠
학습 목표
하드웨어 소프트웨어 문제 때문에 패턴이 있다.
소프트웨어 디자인 원칙부터 살펴보죠...
원격 모델 컴포넌트를 지원하기 위한 패턴
JNDI와 RMI, 후다닥 살펴보기
중간에 객체를 하나 집어 넣으면 어떨까요?
서비스 로케이터로 비즈니스 델리게이트를 단순화하자
트랜스퍼 오브젝트를 소개할 시간이군요.
비즈니스 티어 패턴
다시 살펴보자 MVC 패턴
맞습니다. 한마디로 말해 스트럿츠(와 프론트 컨트롤러)입니다
BeerAdvisor 애플리케이션을 스트럿츠로 리팩토링해보자
패턴 훑어보기

부록 A. 최종 모의고사

저자소개

저자 케이시 시에라(Kathy Sierra)

케이시는 게임 설계를 하던 시절(Virgin, MGM, Amblin\' 등에서 게임을 제작했습니다)부터 학습 이론에 관심이 있었습니다. UCLA 평생교육원의 엔터테인먼트 연구 프로그램에서 뉴 미디어 제작 강의를 하는 동안에 헤드 퍼스트 포맷의 상당 부분을 개발했습니다. 최근에는 썬 마이크로시스템즈에서 썬의 자바 강사들에게 자바 최신 기술을 가르치는 방법을 가르치는 수석 강사로도 활동하고 있습니다. 그녀는 버트 베이츠와 함께 이 책에 있는 개념을 적극적으로 활용하여 수백여 명의 강사, 개발자, 심지어는 프로그래머가 아닌 일반인들에게도 강의를 하고 있습니다. 그리고 「소프트웨어 디벨로프먼트(Software Development)」의 2003년 생산성 대상을 수상하기도 한 전세계에서 가장 큰 자바 커뮤니티 웹사이트 가운데 하나인 javaranch.com의 공동 설립자이기도 합니다. 자바 잼 긱 크루즈(Java Jam Geek Cruise, geekcruises.com) 사이트에 가면 그녀가 강의하는 자바 클래스 강의를 볼 수 있습니다.


버트 베이츠(Bert Bates)

버트는 소프트웨어 개발자와 설계자로 활동하고 있지만 십여년 전부터 인공 지능에 관심을 두고 있었기 때문에 학습 이론과 학습 기술을 바탕으로 한 교육 및 훈련에 대해 지대한 관심이 있습니다. 그는 아주 오래 전부터 고객들에게 프로그래밍을 가르치고 있습니다. 최근에는 몇 가지 자바 자격증 시험의 개발팀에서 일하기도 했습니다.


브라얀 바샴(Bryan Basam)

브라얀은 NASA에서 AI(인공지능) 기술을 이용한 진보적인 자동화 소프트웨어를 개발하는 것까지 포함하여 근 20년간 소프트웨어 개발에 몸 담아 왔습니다. 또한 객체지향 비즈니스 애플리케이션 개발을 하는 컨설팅 회사에 근무하기도 했습니다. 현재 브라얀은 자바 및 OO 디자인 패턴에 관련된 썬 교육 과정을 개발하고 있습니다. 그는 JDBC, J2EE, 서블릿 및 JSP 그리고 OO 소프트웨어 개발까지 광범위한 교육 과정 개발에 참여하고 있습니다. 여기에 현재 SCWCD 및 신규 버전 SCWCD 시험의 선임 디자이너 역할을 하고 있습니다.


역자 김종호

중이 제 머리 못 깍는다고 했던가요? \'이런 이런 책을 썼고, 번역했고, 무슨 무슨 프로젝트를 했으며...\' 이렇게 과거로 현재를 대변해야 하는 것은 참으로 어려운 마무리라는 생각을 합니다.
어쨌든 몇 권의 책을 냈고 강의도 제법했습니다. 그리고 한빛미디어에서 『Head First Servlets & JSP』의 초판을 번역했습니다. 비록 힘들었지만, 꽤 반응이 좋어서 즐거운 작업이었죠.
현재는 소위 \'기업 전산실\'이란 곳을 IT의 최전방이라고 굳게 믿으며, 오늘도 고객과 행복한 전투 중입니다. 10년 전에도 프로그래머였고, 10년 후에도 그러고 싶습니다. 아니 프로그래머를 업으로 여기서 아예 전사하고 싶습니다(뜻대로 될런지는 두고 볼일이죠).
소총에 철모 대신 키보드에 모니터가 묘비로 적당할 듯...

도서소개

HEAD FIRST!

케이시 시에라, 버트 베이츠, 브라얀 바샴의 『HEAD FIRST SERVLETS & JSP』. 최신 J2EE 1.5 썬 인증 웹 컴퓨넌트 개발자(Sun Certified Web Component Developer) 시험, 즉 최신 J2EE 1.5 SCWCD 시험을 준비하고 있는 사람들을 위해 저술된 것이다.

이 책은 상상력을 자극하는 몰입의 학습법으로 최신 J2EE 1.5 SCWCD 시험에 합격할 수 있도록 인도하고 있다. 개인적인 대화를 하는 듯한 문체를 사용함으로써 집중력을 향상시켜준다.

아울러 그림을 풍부하게 곁들여 시각적으로 편집하는 등 뇌가 작동하는 방식대로 구성하여 학습에 효율성을 높였다. 연습문제뿐 아니라, 최종모의고사도 수록함으로써 실전 감각도 익히게 해준다. 최신 J2EE 1.5 SCWCD 시험에 맞게 업그레이드를 끝냈다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.