목차 일부
들어가기 전에 ... 19
제1부 JSP 시작하기
Chapter 1 미리 이해해야 할 기본적인 내용
1. JSP란? ... 24
2. JSP의 주요 특징들 ... 25
2.1 자바 기반의 기술로서의 JSP ... 25
2.2 쉽고 신속한 웹 개발, 설치 및 유지 ... 26
2.3 재사용...
더보기
목차 전체
들어가기 전에 ... 19
제1부 JSP 시작하기
Chapter 1 미리 이해해야 할 기본적인 내용
1. JSP란? ... 24
2. JSP의 주요 특징들 ... 25
2.1 자바 기반의 기술로서의 JSP ... 25
2.2 쉽고 신속한 웹 개발, 설치 및 유지 ... 26
2.3 재사용 가능한 컴포넌트 ... 26
2.4 문서의 동적 생성부와 표현부의 분리 ... 26
2.5 다양하고 광범위한 산업 지원 ... 27
2.6 플랫폼 독립성 ... 27
2.7 태그를 사용한 페이지 개발의 단순화 ... 28
3. JSP와 자바의 버전 ... 28
3.1 자바의 버전 ... 29
3.2 서블릿 및 JSP의 버전 ... 29
4. JSP의 장점 ... 30
4.1 자바로서 JSP ... 30
4.2 성능 ... 31
4.3 컴포넌트의 재사용 ... 33
4.4 표현부와 구현부의 분리 ... 35
4.5 JSP 페이지와 XML 기술의 통합 ... 36
5. JSP 기술의 미래 ... 37
6. 동적 문서 생성 기술에 관하여 ... 38
6.1 CGI(Common Gateway Interface) ... 39
6.2 액티브 서버 페이지 (Active Server Page, ASP) ... 40
6.3 서버 - 사이드 자바스크립트(Server - Side JavaScript, SSJS) ... 41
6.4 PHP ... 42
6.5 자바 서블릿(Java Servlet) ... 42
6.6 자바 서버 페이지(JavaServer Pages) ... 44
7. JSP의 출력 버퍼 ... 44
8. JSP에서의 세션 관리 ... 47
9. 웹 사이트 규모에 대한 확장성 ... 50
10. 에러 처리 ... 53
10.1 컴파일 에러의 처리 ... 53
10.2 실행시 에러 ... 54
Chapter 2 JSP 시작하기
1. 필요한 기본 환경 ... 57
1.1 첫 번째 : 인터넷에 연결된 컴퓨터 ... 57
1.2 두 번째 : 자바 실행 환경 ... 58
1.3 세 번째 : JSP 컨테이너 ... 58
1.4 네 번째 : 웹 서버 ... 58
1.5 다섯 번째 : 개발을 편리하게 해주는 프로그램들 ... 58
1.6 소프트웨어와 버전 ... 59
2. JSP 및 기본 환경 설치하기 ... 61
2.1 컴퓨터 하드웨어 ... 61
2.2 자바 실행 환경 ... 62
2.3 JSP 컨테이너 ... 63
3. JSP 실행의 흐름 ... 64
4. 태그 규약 ... 67
4.1 스크립트 태그 ... 68
4.2 XML 기반 태그 ... 68
5. 올바른 JSP 및 자바 프로그래밍이란? ... 70
5.1 자바는 객체 지향 언어이다. ... 71
5.2 올바른 JSP 페이지 설계는? ... 72
5.3 캡슐화의 중요성 ... 73
Chapter 3 첫 번째 예제
1. 예제 파일이 위치할 폴더 위치 ... 75
2. 안녕하세요? - HTML 판 ... 77
3. 안녕하세요? - JSP 판 ... 78
4. 안녕하세요? - JSP 스크립트 판 ... 80
5. 안녕하세요? - JSP 태그 판[XML태그] ... 82
Chapter 4 기본 문법 1 : JSP 스크립트
1. 스크립트 요소[scripting elements] ... 88
2. 선언부[Declaration] ... 89
2.1 변수의 선언 ... 89
2.2 메소드의 선언 ... 89
2.3 JSP 페이지의 라이프 - 사이클(Life - cycle) ... 92
2.4 선언부와 동기화 문제 ... 96
3. 표현식 ... 97
4. 스크립트릿 ... 100
4.1 스크립트릿에서 out 기본 객체를 이용하여 직접 결과 출력하기 ... 102
4.2 스크립트 요소의 변환 결과 ... 103
4.3 스크립트릿과 블록 ... 106
5. JSP 페이지에서의 흐름 제어 ... 107
5.1 if .. else ...를 이용한 조건문 ... 107
5.2 for 문을 이용한 반복문 ... 109
5.3 do .. while과 while 문을 이용한 반복문 ... 110
6. JSP 페이지에서 예외 처리하기 ... 112
7. 주석 ... 114
7.1 내용 주석 ... 115
7.2 JSP 주석 ... 116
7.3 스크립트 언어 주석 ... 118
Chapter 5 기본 문법 2 : JSP 디렉티브
1. page 디렉티브 ... 122
1.1 language 속성 ... 123
1.2 contentType 속성 ... 124
1.3 info 속성 ... 126
1.4 import 속성 ... 126
1.5 session 속성 ... 130
1.6 buffer 속성 ... 131
1.7 autoFlush 속성 ... 132
1.8 isThreadSafe 속성 ... 134
1.9 errorPage 속성 ... 137
1.10 isErrorPage 속성 ... 139
1.11 pageEncoding 속성 ... 141
1.12 extends 속성 ... 142
2. include 디렉티브 ... 143
2.1 include 디렉티브의 처리 ... 144
3. taglib 디렉티브 ... 146
Chapter 6 기본 문법 3 : JSP의 기본 객체
1. request, response, out 기본 객체 ... 149
1.1 request 기본 객체 ... 149
1.2 response 기본 객체 ... 157
1.3 out 기본 객체 ... 161
2. page 기본 객체와 config 기본 객체 ... 166
2.1 page 기본 객체 ... 167
2.2 config 기본 객체 ... 168
3. session 기본 객체, application 기본 객체 그리고 pageContext 기본 객체 ... 170
3.1 session 기본 객체 ... 171
3.2 application 기본 객체 ... 174
3.3 pageContext 기본 객체 ... 178
4. exception 기본 객체 ... 181
Chapter 7 기본 문법 4 : JSP의 액션 태그
1. 〈jsp : useBean〉, 〈jsp : setProperty〉 그리고 〈jsp : getProperty〉액션 태그 ... 183
2. 〈jsp : include〉 액션 태그 ... 184
2.1 〈jsp : include〉 액션 태그와 기본 객체 ... 186
2.2 〈jsp : include〉 액션 태그와 요청 파라미터 지정 ... 189
2.3 〈jsp : include〉 액션 태그의 page 속성과 요청 시간 속성값 지정 ... 191
2.4 〈jsp : include〉 액션 태그와 include 디렉티브의 비교 ... 191
3. 〈jsp : forward〉 액션 태그 ... 192
3.1 〈jsp : forward〉 액션 태그와 기본 객체 ... 194
3.2 〈jsp : forward〉 액션 태그와 파라미터 지정 ... 196
3.3 〈jsp : forward〉 액션 태그의 page 속성과 요청 시간 속성값 지정 ... 197
3.4 〈jsp : forward〉 액션 태그의 주의점 ... 197
4. 〈jsp : plugin〉 액션 태그 ... 198
4.1 필요한 속성 ... 198
4.2 추가로 지정할 수 있는 속성 ... 200
4.3 애플릿의 파라미터 지정 ... 201
4.4 〈jsp : fallback〉 ... 202
4.5 〈jsp : plugin〉 액션 태그의 사용 예 ... 202
Chhapter 8 JSP에서 자바빈 컴포넌트 사용하기 1
1. JSP 의 컴퍼넌트 모델 ... 208
1.1 소프트웨어 컴퍼넌트의 정의 ... 208
1.2 컴포넌트 구조의 장점 ... 209
1.3 컴포넌트를 사용한 애플리케이션 구축 ... 212
2. 자바빈 기초 ... 214
2.1 자바빈의 이해 ... 214
2.2 자바빈 규약 ... 215
3. 빈의 프라퍼티 ... 217
3.1 빈의 프라퍼티 만들기 ... 219
3.2 인덱스 프라퍼티 ... 223
3.3 참 - 거짓을 표현하는 프라퍼티 ... 226
3.4 빈의 생성자 ... 226
4. 빈 관련 JSP 태그 ... 228
4.1 태그 기반의 컴퍼넌트 프로그래밍 ... 228
4.2 컴퍼넌트 사용하기 ... 230
4.3 〈jsp : useBean〉 태그 ... 230
4.4 〈jsp : getProperty〉 태그 ... 234
4.5 〈jsp : setProperty〉 태그 ... 238
4.6 빈 컴포넌트의 초기화 ... 244
Chapter 9 JSP에서 자바빈 컴포넌트 사용하기 2
1. 빈 컴포넌트의 Scope ... 247
1.1 page 영역 ... 248
1.2 request 영역 ... 249
1.3 session 영역 ... 252
1.4 application 영역 ... 256
2. 빈 컴포넌트의 제거 ... 259
3. 빈 관련 인터페이스 ... 260
3.1 BeanInfo 인터페이스 ... 260
3.2 Serializable 인터페이스 ... 261
3.3 HttpSessionBindingListener 인터페이스 ... 262
4. 스크립트와 빈 태그의 혼합 ... 263
4.1 스크립트에서 빈 컴포넌트 접근하기 ... 263
4.2 인덱스 프라퍼티 다루기 ... 264
2부 업그레이드 시작하기
Chapter 10 JSP에서 데이터베이스 사용하기
1. JDBC와 JSP ... 273
1.1 JDBC API ... 274
1.2 JSP 페이지에서 데이터베이스에 연결하기 ... 276
1.3 테이블로부터 내용 읽어오기 ... 278
1.4 테이블에 내용 삽입하기 ... 280
1.5 테이블의 내용 변경하기 ... 281
1.6 PreparedStatement 클래스의사용 ... 282
1.7 트랜잭션의 처리 ... 285
1.8 JSP 페이지에서 JDBC API 사용하기 ... 286
2. 데이터베이스 커넥션의 유지 ... 289
2.1 지속적인 데이터베이스 커넥션을 갖는 JSP 페이지 ... 290
2.2 데이터베이스 커넥션 풀의 사용 ... 294
3. 방명록 예제 ... 314
3.1 방명록 예제의 전체 구성 ... 314
3.2 데이터베이스 테이블 스키마 ... 315
3.3 GuestBookData 클래스 ... 316
3.4 GuestBookMgr 클래스의 구현 ... 318
3.5 GuestBookMgr 클래스의 완전한 소스 코드 ... 322
3.6 MySQL에 알맞게 GuestBookMgr 클래스 변경하기 ... 326
3.7 GuestBookMgrException 클래스 ... 329
3.8 한글 문제 관련 CodeUtil 클래스 ... 330
3.9 방명록을 위한 JSP 페이지 ... 331
4. JSP 페이지에서의 데이터베이스와 한글 문제 ... 341
4.1 오라클과 한글 문제 ... 341
4.2 MySQL과 한글 문제 ... 342
Chapter 11 JSP에서 쿠키 사용하기
1. 쿠키의 처리 ... 346
2. Cookie 클래스 ... 346
3. 쿠키의 설정 ... 348
4. 쿠키값 읽어오기 ... 350
4.1 특정한 쿠키값 읽어오기 ... 351
4.2 CookieUtil 클래스 ... 352
5. 쿠키값의 변경 ... 355
6. 쿠키의 삭제 ... 357
7. 쿠키값과 관련된 주의 사항 ... 357
Chapter 12 JSP에서 세션 사용하기
1. session 기본 객체를 사용한 지속적인 값 저장 ... 360
2. session 기본 객체에 저장된 값 삭제하기 ... 362
3. 쿠키와 세션의 차이점 ... 362
4. 세션 예제 : 사용자 로그인 / 로그아웃 처리 ... 364
4.1 로그인의 처리 ... 365
4.2 로그인 여부의 판단 및 사용자 정보 조회 ... 370
4.3 로그아웃의 처리 ... 371
Chapter 13 JSP에서 도움되는 팁
1. 폼 값의 유효성 검사 ... 373
1.1 null인지 검사하기 ... 375
1.2 알파벳과 숫자만 입력 받기 ... 378
1.3 한글을 포함한 전체 문자열의 길이 제한하기 ... 380
1.4 날짜 확인하기 ... 383
1.5 ValidationUtil 클래스 ... 386
2. JSP 페이지에서 XML 문서의 생성 ... 389
3. JSP 파일의 최근 수정 날짜 알아내기 ... 390
Chapter 14 JSP와 XML의 호환
1. 〈jsp : root〉 요소 ... 394
2. JSP 디렉티브의 변경 ... 394
2.1 〈jsp : directive.page〉 요소 ... 394
2.2 〈jsp : directive.include〉 요소 ... 395
2.3 〈jsp : directive.taglib〉 요소 ... 396
3. 스크립트 요소의 변경 ... 396
3.1 〈jsp : declaration〉 요소 ... 396
3.2 〈jsp : scriptlet〉 요소 ... 397
3.3 〈jsp : exepression〉 요소 ... 398
4. 액션 태그 ... 398
5. 〈jsp : cdata〉 요소 ... 399
Chapter 15 JSP 어플리케이션 구조
1. 웹 어플리케이션 ... 401
1.1 뷰(View) ... 402
1.2 모델(Model) ... 403
1.3 컨트롤러(Controller) ... 403
1.4 웹 어플리케이션의 흐름 제어 ... 404
2. 웹 어플리케이션이 모델 ... 404
2.1 모델1 구조 ... 405
2.2 JSP 모델2 구조 ... 412
2.3 모델2 구조 예제 ... 432
2.4 모델2 구조의 변형 ... 441
3. 웹 어플리케이션의 알맞은 구조 선택 문제 ... 444
Chapter 16 WAR
1. WAR 파일 ... 448
1.1 웹 어플리케이션의 설정 ... 450
1.2 WAR 파일과 웹 어플리케이션 ... 452
2. 웹 어플리케이션과 URI ... 456
3. web.xml 배치 기술자 ... 457
3.1 web.xml의 기초 설정 부분 ... 457
3.2 web.xml의 서블릿 관련 태그 ... 460
3.3 서블릿과 URL의 매핑 ... 462
3.4 JSP 파일의 설정 ... 464
3.5 MIME 타입 설정 ... 466
3.6 세션 및 어플리케이션 관련 설정 ... 468
3.7 태그 라이브러리 관련 설정 ... 470
Chapter 17 커스텀 태그(Custom Tag)
1. 커그텀 태그와 커스텀 태그의 역할 ... 473
1.1 태그 확장(tag extension) 메커니즘의 목적 ... 474
2. 태그 라이브러리의 구성 요소 및 동작 방식 ... 475
2.1 태그 핸들러(Tag Handler) 클래스 ... 475
2.2 TLD(Tag Library Descriptor) 파일 ... 476
2.3 JSP 페이지 ... 480
3. 간단한 커스텀 태그 ... 482
3.1 핸들러 클래스 ... 482
3.2 TLD 파일 설정 ... 484
3.3 JSP 파일 ... 486
4.커스텀 태그에 속성 추가하기 ... 487
4.1 속성을 갖는 커스텀 태그의 핸들러 클래스 ... 488
4.2 속성을 지원하는 커스텀 태그의 TLD 파일 ... 489
4.3 JSP 파일 ... 492
5. 태그의 몸체 내용 처리 ... 493
5.1 몸체 내용을 그대로 출력하는 커스텀 태그 ... 494
5.2 선택적으로 몸체 내용을 출력하는 커스텀 태그 ... 498
5.3 몸체 내용을 알맞게 처리하는 커스텀 태그 ... 502
6. 스크립트 변수를 생성하는 커스텀 태그 ... 507
6.1 스크립트 변수에 해당하는 클래스 ... 508
6.2 헬퍼 클래스 ... 509
6.3 핸들러 클래스 ... 512
6.4 TLD 파일 ... 513
6.5 JSP 파일 ... 514
6.6 JSP 1.2 스타일 ... 515
7.반복을 위한 커스텀 태그 ... 520
7.1 인덱스형 속성을 갖는 자바빈 컴포넌트 ... 521
7.2 핸들러 클래스 ... 522
7.3 TLD 파일 ... 525
7.4 JSP 페이지 파일 ... 526
8. 커스텀 태그의 중첩 ... 527
8.1 핸들러 클래스 ... 528
8.2 TLD 파일 ... 530
8.3 JSP 파일 ... 531
9. 태그 라이브러리의 배포 ... 532
3부 실전 JSP
Chapter 18 프로젝트 준비
1. 준비 ... 541
2. 예제 프로젝트 첫 화면 ... 544
3. 프로젝트를 실행하기 위해 변경해야 할 부분 ... 545
4. 페이지의 기본 형태 ... 546
5. index.jsp ... 549
Chapter 19 회원 관련 클래스와 회원 가입 처리
1. MemberBean 컴포넌트 ... 551
2. MemberMgr 클래스 ... 554
3. 회원 가입 처리 ... 559
3.1 CommandIF 인터페이스 ... 561
3.2 FormCommand 클래스 ... 562
3.3 ConfirmCommand 클래스 ... 563
3.4 CompleteCommand 클래스 ... 565
3.5 CommandFactory 클래스와 NullCommand 클래스 ... 566
3.6 RegisterServlet ... 568
3.7 register_form.jsp ... 569
3.8 register_confirm.jsp ... 572
3.9 register_complete.jsp ... 574
3.10 invalidcommand.jsp ... 575
Chapter 20 로그인 / 로그 아웃 처리
Chapter 21 회원 정보 변경 처리
1. updateinfo_form.jsp ... 583
2. updateinfo.jsp ... 585
Chapter 22 게시판
1. 게시판 DB 테이블 ... 589
2. BoardData 클래스 ... 592
3. 게시판 목록 구하기 ... 594
4. 게시판 글 쓰기 ... 599
5. 게시판 글 읽기 ... 604
6. 게시판 답변 글 쓰기 ... 608
7. 게시판 글 변경 ... 613
8. 게시판 글 삭제 ... 617
9. BoardMgr 클래스의 완전한 소스 코드 ... 619
10 board_error.jsp ... 627
Chapter 23 자료실
1. MultiPartUtil 클래스 ... 633
2. DB 테이블과 관련 자바빈 컴포넌트 ... 638
3. 자료실에 업로드하기 ... 641
4. 자료실 목록 구하기 ... 645
5. 게시물 읽기 ... 649
6. PDSBoardMgr 클래스의 완전한 소스 코드 ... 652
Chapter 24 공지 사항
1. DB 테이블 ... 657
2. 공지 사항 목록 ... 658
3. 공지 사항 추가 ... 662
4. 공지 사항 변경 ... 664
5. 공지 사항 삭제 ... 667
6. 최신 공지 보기 ... 668
Chapter 25 방명록과 MgrException
1. 방명록 DB 테이블과 GuestBookData 클래스 ... 671
2. 방명록 목록 보기 ... 673
3. 방명록 작성하기 ... 676
4. GuestBookMgr 클래스의 완전한 소스 코드 ... 680
5. MgrException 클래스 ... 683
Chapter 26 JavaMail API를 이용한 메일링 리스트 구현
1. 메일링 리스트의 필요 사항 ... 686
2. 메일링 리스트를 위한 mailinglist 테이블 ... 686
3. MailBean 컴포넌트 ... 687
4. MailMgr클래스 ... 688
4.1 sendMailToUsers () 메소드의 구현 ... 688
5. 메일링 리스트 등록 및 탈퇴 처리 ... 693
5.1 초기 화면 ... 693
5.2 메일링 리스트 등록 처리 ... 694
5.3 메일링 리스트 탈퇴 처리 ... 696
6. 메일 작성 및 발송 구현 ... 697
6.1 컨트롤 서블릿 : MailControlServlet ... 697
6.2 메일 입력 화면 ... 700
6.3 메일 전송 결과 화면 ... 703
4부 JSP 1.2의 새로운 특징
Chapter 27 세션과 어플리케리션의 이벤트 처리
1. 세션 관련 이벤트 처리 ... 708
1.1 HttpSessionListener ... 708
1.2 HttpSessionAttributesListener ... 712
2. 어플리케이션 관련 이벤트 처리 ... 714
2.1 ServletContextListener ... 715
2.2 ServletContextAttributesListener ... 717
3. 이벤트 클래스 ... 719
3.1 ServletContextEvent ... 720
3.2 ServletContextAttributeEvent ... 720
3.3 HttpSessionEvent ... 721
3.4 HttpSessionBindingEvent ... 721
4. 라이프 사이클 및 속성 변화 관련 이벤트의 응용 ... 722
4.1 로그 기록 ... 722
4.2 자원의 초기화 ... 723
Chapter 28 필터(Filter)
1. 필터란 무엇인가? ... 726
2. 필터의 구현 ... 727
2.1 Filter 인터페이스 ... 727
2.2 Filter 설정 ... 730
2.3 SimpleFilter의 필터링 ... 732
2.4 래퍼(Wrapper) 클래스 ... 734
3. 필터 체인 ... 742
4. 필터의 사용분야 ... 746
5. 필터 예제 ... 746
5.1 인증 검사 필터 ... 746
5.2 출력 데이터 변환 필터 ... 748
5.3 XSL / T를 이용한 XML 변환 필터 ... 753
5부 JSP와 EJB
Chapter 29 JSP와 EJB
1. EJB란? ... 765
2. EJB 컴포넌트의 구조 ... 767
2.1 빈 클래스 ... 768
2.2 EJB 홈 ... 770
2.3 EJB 객체 ... 771
3. EJB 컴포넌트의 종류 ... 772
3.1 엔티티 빈(Entity Bean) ... 772
3.2 세션 빈(Session Bean) ... 775
4. JSP, 서블릿 그리고 EJB ... 776
Chapter 30 EJB를 이용한 간단한 온라인 서점
1. Category 빈 ... 777
2. Book 빈 ... 781
3. Purchase 빈 ... 784
4. Shopping 빈 ... 789
5. EJB 홈 구하기 ... 795
6. 배치 기술자 ... 796
7. jBoss 설치 ... 799
8. jBoss에서 EJB 컴포넌트 배치하기 ... 801
9. JSP 페이지 작성 ... 805
9.1 첫 페이지와 로그인 / 로그아웃 ... 805
9.2 카테고리 추가 ... 810
9.3 서적을 카테고리 추가하기 ... 814
9.4 서적 목록 보기 ... 817
9.5 서적의 구매와 구매 목록 보기 ... 820
9.6 에러 페이지 ... 823
부록
A. 톰캣 설치 ... 827
B. MySQL 설치 ... 831
C. WebLogic 설치 ... 837
D. JSP 구문 레퍼런스 ... 853
E. 부록 CD에 대한 설명 ... 866
찾아가기 ... 867
더보기 닫기