목차 일부
제1부 자바 환경의 웹 개발 소개 및 환경 구축
제1장 자바 환경의 웹 개발 ... 29
1.1 웹 개발의 역사 ... 31
1.1.1 정적인 HTML의 한계 극복 - CGI의 탄생 ... 31
1.1.2 CGI의 문제점 ... 32
작성과 유지의 한계 ... 32
메커니즘의 한계 ....
더보기
목차 전체
제1부 자바 환경의 웹 개발 소개 및 환경 구축
제1장 자바 환경의 웹 개발 ... 29
1.1 웹 개발의 역사 ... 31
1.1.1 정적인 HTML의 한계 극복 - CGI의 탄생 ... 31
1.1.2 CGI의 문제점 ... 32
작성과 유지의 한계 ... 32
메커니즘의 한계 ... 33
1.1.3 서버측 스크립트(server-side script) 방식의 등장 ... 35
1.1.4 웹 개발의 진보적 솔루션 - 자바 ... 36
자바란? ... 36
웹과 자바 - 애플릿(Applet) ... 36
웹과 자바 - 서블릿(Servlet)과 JSP(JavaServer Pages) ... 37
1.2 HTTP 프로토콜의 특징과 한계 ... 38
1.2.1 HTTP의 특징 ... 39
텍스트 문서인 HTML 문서를 전송한다 ... 39
문서를 보여주는 것은 브라우저이다 ... 39
다양한 파일 형식을 지원한다 ... 39
사용자 접속을 유지하지 않는다 ... 40
1.2.2 HTTP의 단점 ... 41
사용자의 접속이 유지되지 않는다 ... 41
클라이언트가 서버에 요청시만 접속이 시작된다 ... 42
1.3 JSP의 특징 및 장점 ... 43
1.3.1 성능 향상 ... 43
1.3.2 객체 지향적 특성 ... 44
1.3.3 보여주기와 구현하기의 분리 ... 45
1.3.4 컴포넌트 기반의 개발 ... 45
1.3.5 플랫폼 호환성 ... 46
1.3.6 자바의 풍부한 API 사용 ... 47
1.4 웹 환경에서의 에터프라이즈급 개발 ... 47
제2장 환경 구축 ... 51
2.1 아파치 웹 서버 ... 53
도큐먼트 루트 디렉토리 ... 53
2.2 자바 개발 환경(자바 컴파일러와 가상 기계) ... 54
2.3 톰캣(Tomcat) 서블릿/JSP 컨테이너 ... 55
2.3.1 바바 웹 애플리케이션 서버 ... 55
2.3.2 톰캣의 설치 ... 55
2.3.3 톰캣과 아파치의 연동 ... 58
2.3.4 가상 호스트 설정 ... 60
2.3.5 톰캣의 CLASSPATH ... 65
2.4 데이터베이스 시스템 - PostgreSQL ... 65
2.5 이 책에서 가정하는 환경 설정 ... 67
2.5.1 소프트웨어 ... 67
2.5.2 디렉토리 구조 ... 67
제2부 JSP로 만드는 회원제 서적 쇼핑몰 사이트
제3장 서적 쇼핑몰 사이트의 시작 - JSP의 기초 ... 71
3.1 온라인 서적 쇼핑몰의 첫 페이지 - 정적인 HTML ... 72
URL과 index 파일 ... 74
HTML과 웹상에서의 파일 전송 ... 76
HTML의 정적 성격 ... 77
3.2 현재 시각을 출력하는 페이지 - 동적인 JSP ... 78
동적 문서의 종류 ... 79
3.3. JSP의 구동 방식 ... 84
서블릿이란? ... 84
서블릿 구동 방식 ... 84
서블릿과 JSP ... 85
3.4 JSP의 기본 구성 ... 88
3.4.1 스크립들릿(Scriptlet), 〈%…%〉 ... 90
3.4.2 익스프레션(Expression), 〈%=…%〉 ... 94
3.4.3 선언(Declaration), 〈%!…%〉 ... 96
3.4.4 페이지 디렉티브(Page Directive) ... 102
contentType 속성 ... 103
import 속성 ... 104
extends 속성 ... 104
session 속성 ... 105
buffer 속성 ... 105
autoFlush 속성 ... 106
isThreadSafe 속성 ... 106
errorPage 속성 ... 106
isErrorPage 속성 ... 107
info 속성 ... 107
language 속성 ... 107
3.4.5 주석(Hidden Comments) ... 108
3.5 장을 마치며 ... 109
제4장 회원 가입 페이지 만들기 - 웹 문서간의 데이터 교환 ... 111
4.1 회원가입 양식 페이지 - HTML의 폼 ... 112
4.2 회원 가입 진행 페이지 - request.getParameter() ... 115
request.getParameter() 메소드 ... 117
한글 인코딩 문제 ... 119
4.3 한글 인코딩 클래스 만들기 - 객체 사용하기 ... 120
CLASSPATH와 WEB-INF/classes ... 122
CharacterSet 클래스의 의의 ... 123
4.4 빈즈(Beans)를 사용한 폼 데이터 받기 ... 124
〈jsp:useBean〉 액션 ... 128
〈jsp:setProperty〉 액션 ... 128
〈jsp:getProperty〉 액션 ... 132
빈 클래스의 요건 ... 133
4.5 빈즈를 통한 데이터 전달 예제 ... 134
4.6 빈즈의 일반적인 개념 ... 140
4.6.1 무엇이 빈즈인가? ... 140
4.6.2 빈즈의 규약 ... 141
클래스 이름의 관례 ... 141
인자 없는 생성자 ... 141
빈 속성 정의 ... 141
4.6.3 빈의 속송 접근의 메커니즘 ... 142
4.6.4 빈즈의 여러 기능 ... 143
이벤트(event)와 바운드 속성(bound properties) ... 143
직렬화 인터페이스 ... 143
4.7 장을 마치며 ... 144
제5장 회원 정보의 데이터베이스화 - JDBC ... 145
5.1 회원정보 저장 ... 147
회원 정보 테이블 ... 147
JDBC를 사용한 회원 정보 저장 ... 147
5.2 JDBC의 기초 ... 151
5.2.1 JDBC와 JDBC 드라이버 ... 152
JDBC 드라이버의 설치 ... 153
JDBC의 버전과 JDBC 드라이버 ... 154
JDBC 드라이버 로딩 ... 155
5.2.2 데이터베이스에 접속하기 ... 155
5.2.3 테이블 생성 및 데이터 입력 ... 156
Statement 클래스 ... 157
5.2.4 테이블에서 데이터 얻기 ... 158
ResultSet ... 158
next() 메소드 ... 158
getXXX() 메소드 ... 160
5.2.5 테이블의 데이터 수정하기 ... 162
5.2.6 테이블에서 로우 삭제하기 ... 163
5.2.7 데이커베이스 접속 끊기 ... 163
5.3 JDBC 중급 ... 164
5.3.1 PreparedStatement 클래스 ... 164
5.3.2 Commit과 Rollback ... 166
5.3.3 객체의 종료 및 코딩 권장 사항 ... 167
5.4 회원 정보 저장의 객체화 ... 170
5.5 예외 처리 ... 179
5.6 장을 마치며 ... 181
제6장 공지사항 만들기 - JDBC, 웹 개발 아키텍처 ... 183
6.1 공지사항 테이블 ... 185
6.2 첫 화면에 공지사항 제목 보여주기 ... 186
게시물 하나를 표현하는 빈(객체) ... 186
java.sql.Timestamp 사용 방법 ... 188
새 게시물 빈(객체) ... 191
최근 게시물 목록 보여주기 ... 193
게시물 본문 보여주기 ... 196
6.3 장을 마치며 ... 198
제7장 디자인과 메뉴 체계의 자동화 - 〈jsp:include〉, 〈jsp:forward〉 액션 ... 199
7.1 메뉴 체계 ... 201
7.2 문서 구성 ... 203
top.jsp ... 204
bottom.jsp ... 205
index.jsp ... 206
7.3 〈jsp:include〉, 〈jsp:forward〉, 〈jsp:param〉 액션 ... 208
7.3.1 (jsp:include) 액션 ... 208
〈jsp:include〉 vs. 〈% include %〉 ... 210
7.3.2 〈jsp:forward〉 액션 ... 213
7.3.3 〈jsp:param〉 액션 ... 215
7.3.4 〈jsp:include〉와 〈jsp:forward〉 액션에서의 파라미터 전달 ... 218
7.4 사이트 구성 ... 218
브라우저의 캐시 기능 동작하지 않도록 하기 ... 218
디렉토리 구조 ... 220
7.5 장을 마치며 ... 221
제8장 책 진열 인터페이스 만들기 - 컴포넌트 기반 설계 ... 223
8.1 책 정보 데이터베이스 스키마 ... 224
8.2 분류별로 책 찾기 ... 225
8.2.1 분류 목록 보여주기 ... 226
분류 빈(객체) ... 226
분류 목록 빈(객체) ... 227
분류 리스트 보여주기 ... 228
8.2.2 해당 분류의 책 목록 보여주기 ... 231
컴포넌트 기반 객체 지향적 설계 ... 231
책 빈(객체) ... 233
책 목록 빈(객체) ... 235
책 목록 보여주기 ... 237
8.2.3 책 정보 보여주기 ... 240
8.3 장을 마치며 ... 245
제9장 장바구니 만들기 - 세션 빈즈 ... 247
9.1 세션 빈즈(Session Beans) ... 248
9.1.1 세션 빈즈의 개념 ... 248
9.1.2 URL 다시 쓰기(URL rewriting) ... 256
9.2 장바구니 빈 ... 257
9.3 장바구니에 책 추가/삭제 및 내용 보여주기 ... 262
9.3.1 장바구니에 책 추가하기 ... 262
9.3.2 장바구니 보여주기 ... 264
9.3.3 장바구니의 책 삭제하기 ... 267
9.4 장을 마치며 ... 268
제10장 회원제 기능 만들기 - 빈즈 총정리 ... 269
10.1 개요 ... 270
10.1.1 회원제 사이트의 요건 ... 270
접근 제한 ... 270
회원 인증 ... 271
10.1.2 회원제 사이트의 구성 ... 271
회원 전용 문서 구분 ... 271
로그인 페이지 - 아이디와 비밀번호 확인 ... 272
회원 요청/비회원 요청 구별 및 로그인 상태 유지 ... 272
현재 로그인한 회원 목록 관리 ... 272
로그아웃 기능 ... 272
10.1.3 회원제 사이트의 흐름 ... 272
10.2 회원제 사이트 구현 방법 ... 273
10.2.1 HTML의 표준 데이터 전송 방식 이용 ... 273
10.2.2 쿠키 사용 ... 274
10.2.3 웹 서버의 인증 기능 사용 ... 275
10.2.4 서블릿 규약이 제시하는 사용자 인증 ... 275
10.3 JSP에서 사용하는 빈즈의 종류와 성격 ... 276
10.3.1 애플리케이션 빈즈와 리퀘스트 빈즈 ... 276
애플리케이션 빈즈 ... 277
리퀘스트 빈즈 ... 279
10.3.2 빈즈의 초기화 작업 ... 283
10.3.3 빈즈의 라이프 사이클(life cycle) ... 286
페이지 빈즈(Page Beans) ... 286
리퀘스트 빈즈(Request Beans) ... 286
애플리케이션 빈즈(Application Beans) ... 286
세션 빈즈(Session Beans) ... 286
10.4 빈즈를 사용한 회원제 사이트 만들기 ... 288
10.4.1 개요 ... 288
10.4.2 회원 인증과 로그인 목록 관리 빈 ... 289
Login 빈 ... 289
Login.login() 메소드 ... 290
Login.isCorrectPassword() 메소드 ... 293
Login.lookFor() 메소드 ... 294
Login.anotherLogin() 메소드 ... 296
Login.insertNewUser() 메소드 ... 297
생성자와 init() 메소드 ... 297
10.4.3 사용자 로그인 세션 빈(Session Bean) ... 304
MyLogin 빈 ... 304
MyLogin.login() 메소드 ... 306
MyLogin.logout() 메소드 ... 307
10.4.4 빈즈를 사용한 회원 전용 페이지 ... 316
log.jsp ... 316
login.jsp ... 319
loginProcess.jsp ... 322
실행 예 ... 326
10.4.5 회원 전용이 아닌 문서에서 로그인 사용자 정보 얻기 ... 328
10.4.6 로그아웃 페이지 ... 328
10.4.7 온라인 서적 쇼핑몰에의 적용 ... 330
책 주문을 회원만 가능하도록 하기 ... 330
홈 메뉴에 로그인/로그아웃 메뉴 만들기 ... 331
10.4.8 정리 및 유의 사항 ... 336
정리 ... 336
로그인 세션 빈 사용시 유의 사항 ... 337
단수 로그인 구현 ... 338
10.5 장을 마치며 ... 339
제11장 데이터베이스 접속을 풀(Pool)로 관리하기 - JDBC 2 Standard Extension과 싱글톤 ... 341
11.1 개요 ... 342
11.1.1 데이터베이스 접속의 풀 관리 필요성 ... 342
11.1.2 데이터베이스 접속 풀링 기법 ... 343
11.2 데이터베이스 접속의 풀 관리 방법 ... 343
11.3 Java 2 Standard Extension의 접속 풀 기능 ... 345
11.3.1 DataSource 클래스 ... 345
JNDI와의 연동 ... 346
데이터베이스 접속 풀링과 분산 처리 기능 ... 348
11.3.2 PooledConnection 클래스 ... 349
11.3.3 ConncetionPoolDataSource 클래스 ... 349
11.3.4 DataSource의 종류 ... 350
11.4 데이터베이스 접속 풀 관리자를 위한 배경 지식 ... 350
11.4.1 오라클에서의 데이터베이스 접속 풀링 ... 351
오라클이 제공하는 DataSource의 성격 ... 351
OrecleConnectionCachelmpl 클래스 ... 353
11.4.2 싱글톤(Singleton) ... 354
싱글톤이란? ... 354
싱글톤의 작성 방법 ... 355
11.5 접속 풀 관리자 만들기 ... 356
11.5.1 데이터베이스 접속 풀 객체 ... 357
11.5.2 풀 관리자 객체 ... 363
해시 테이블 ... 363
풀 관리자의 생성자와 getlnstance() 메소드 ... 363
db.informs ... 365
풀 생성 ... 365
관련 메소드들 ... 367
11.5.3 풀 관리자의 사용법 ... 374
11.5.4 벤치마크 테스트 ... 374
DriverManager를 사용한 경우 ... 375
DBPoolManager를 사용한 경우 ... 377
11.6 장을 마치며 ... 378
제12장 JSP에서 이메일 보내기 - 자바의 풍부한 API 사용 ... 381
12.1 개요 ... 382
12.1.1 자동 이메일 발송 프로그램 ... 382
12.1.2 JavaMail의 설치 ... 384
JAF(JavaBeans Activation Framework) 설치 ... 384
자바메일(JavaMail) 설치 ... 384
CLASSPATH 설정 ... 385
12.2 JSP에서 이메일 보내기 ... 385
12.2.1 메일 전송의 예 ... 385
세션 생성 ... 389
메일 메시지 작성 ... 389
메일 전송 ... 390
12.2.2 에러 메시지 관리자에게 보내기 ... 391
12.3 장을 마치며 ... 393
제13장 커스텀 태그 사용하기 - 보여주기와 구현하기의 분리 ... 395
13.1 커스텀 태그와 태그 라이브러리 ... 396
13.1.1 왜 커스텀 태그인가? ... 396
13.1.2 태그 라이브러리 ... 397
13.1.3 이번 장에서 공부할 내용 ... 398
13.1.4 태그 라이브러리를 구성하는 요소들 ... 399
TLD 파일 ... 399
태그 핸들러 ... 400
13.2 단순한 커스텀 태그 예제 ... 400
13.2.1 커스텀 태그를 사용하는 JSP 문서 ... 400
13.2.2 TLD 파일 ... 402
태그 라이브러리에 대한 정보 ... 403
개별 커스텀 태그에 대한 정보 ... 404
web.xml ... 405
13.2.3 태그 핸들러 ... 406
13.3 커스텀 태그의 동작 원리 ... 409
TLD 파일 로드 ... 409
태그 핸들러 리소스 풀 ... 410
태그 핸들러의 동작 ... 410
13.4 속성이 있는 커스텀 태그 ... 412
13.4.1 TLD 파일 ... 412
13.4.2 태그 핸들러 ... 413
13.4.3 〈wevdox:fst〉 태그의 사용 ... 416
13.5 몸체가 있는 커스텀 태그 ... 416
13.5.1 TLD 파일 ... 417
13.5.2 태그 핸들러 ... 417
13.5.3 태그 사용 JSP 문서 ... 419
13.6 몸체의 조건적 처리 커스텀 태그 ... 421
13.6.1 TLD 파일 ... 421
13.6.2 태그 핸들러 ... 421
13.6.3 태그 사용 JSP 문서 ... 423
13.7 조건을 처리하는 태그(태그의 중첩과 태그 사이의 데이터 교환) ... 424
13.7.1 TLD 파일 ... 425
13.7.2 태그 핸들러 ... 427
IfTag 태그 핸들러 ... 427
ConditionTag 태그 핸들러 ... 429
ThenTag 태그 핸들러 ... 430
ElseTag 태그 핸들러 ... 432
13.7.3 ThenTag와 ElseTag의 다른 구현 방법 ... 432
13.7.4 태그 사용 JSP 문서 ... 434
13.8 커스텀 태그 동작 원리 총정리 ... 436
13.9 장을 마치며 ... 439
제14장 게시판 만들기 - 애플리케이션 중심 설계와 MVC 아키텍처 ... 441
14.1 구현할 게시판의 기능 ... 443
14.2 웹 개발의 아키텍처 ... 444
14.2.1 설계의 중요성 ... 444
14.2.2 페이지 중심의 설계 ... 445
14.2.3 애플리케이션 중심의 설계 ... 446
14.3 게시판 아키텍처 설계 ... 447
14.3.1 데이터베이스 스키마 ... 447
게시물 분류 테이블 ... 447
게시물 테이블 ... 448
14.3.2 컴포넌트 계획 ... 452
14.3.3 게시판의 액션 ... 453
글쓰기 ... 453
쓴 글 저장하기 ... 454
글 수정하기 ... 454
글 삭제하기 ... 454
답장하기 ... 454
페이지 건어뛰어 목록 보기 ... 455
글 하나 읽기 ... 455
분류별로 몰록 보기 ... 455
검색하기 ... 455
14.3.4 애플리케이션 중심 설계와 MVC 아키텍처 ... 455
개별 게시판 URL ... 455
board.jsp ... 456
MVC 아키텍처 ... 458
14.4 빈즈 구현 ... 458
14.4.1 Article 빈 ... 458
14.4.2 Status 빈 ... 465
14.4.3 Board 빈 ... 471
필드 ... 471
메소드 리스트 ... 473
글 목록 읽기 메소드 ... 475
페이지 이동을 위한 메소드 ... 480
글 하나를 읽는 메소드 ... 483
게시물을 저장하는 메소드 ... 485
게시물 수정과 삭제 메소드 ... 491
14.5 JSP 부분 구현 ... 493
14.5.1 board.jsp ... 494
14.5.2 보여주기 담당 JSP 문서들 ... 507
list.jsp ... 507
read.jsp ... 520
writeForm.jsp ... 526
14.6 자유 게시판 만들기 ... 534
14.7 장을 마치며 ... 537
제15장 웹 애플리케이션 - WAR 파일 ... 539
15.1 웹 애플리케이션의 개념과 구성 ... 540
15.1.1 웹 애플리케이션이란? ... 540
15.1.2 웹 애플리케이션의 구성 ... 542
15.1.3 웹 애플리케이션의 구별 ... 542
15.1.4 디렉토리 구조 ... 543
15.2 WAR 파일과 web.xml 파일 ... 544
15.2.1 WAR 파일 만들기 ... 544
15.2.2 web.xml 파일 ... 546
서블릿 정보 정의 ... 546
서블릿 맵핑 ... 549
태그 라이브러리를 위한 태그 ... 549
마임 설정 ... 550
세션 타임아웃 설정 ... 551
애플리케이션 초기화 태그 ... 551
기타 태그 ... 552
15.3 장을 마치며 ... 553
제3부 추가 주제들
제16장 HTTP(Hypertext Transfer Protocol) ... 557
16.1 소개 ... 558
16.1.1 역사 ... 558
16.1.2 기본적인 동작 방식 ... 559
16.2 HTTP의 동작 단계 ... 560
16.2.1 웹 서버와 클라이언트의 연결 ... 560
16.2.2 클라이언트의 요청 ... 561
GET ... 561
HEAD ... 562
POST ... 562
PUT ... 562
DELETE ... 563
16.2.3 웹 서버의 응답 ... 563
200 OK ... 565
301 Moved Permanently ... 565
304 Not Modified ... 565
400 Bad Request ... 565
401 Unauthorized ... 565
403 Forbidden ... 566
404 Not Found ... 566
408 Request Timeout ... 566
500 Internal Server Error ... 566
16.2.4 연결 해제 ... 566
16.3 HTTP의 성능 개선 ... 566
16.3.1 Persistent Conncetion이란? ... 567
16.3.2 전송 압축 ... 569
16.4 보안 관련 문제들 ... 569
16.4.1 개인 정보 유출 ... 570
16.4.2 네임 서버 문제 ... 570
16.5 장을 마치며 ... 571
제17장 Advanced JDBC ... 573
17.1 배치 업데이트(Batch Updates) ... 574
17.1.1 개요 ... 574
17.1.2 Statement의 배치 업데이트 ... 575
17.1.3 PreparedStatement의 배치 업데이트 ... 577
17.2 비순차적 커서 이동 ... 579
17.2.1 비순차적 커서 이동을 위한 ResultSet 생성 ... 580
17.2.2 비순차적 커서 이동 ... 581
역탐색 ... 581
커서 위치 지정 탐색 ... 581
현재 커서 위치 얻기 ... 582
17.3 ResultSet을 통한 테이블 직접 수정 ... 582
17.3.1 수정 가능한 ResultSet 설정 ... 582
17.3.2 로우 수정하기 ... 583
17.3.3 로우 추가하기 ... 584
17.3.4 로우 삭제하기 ... 584
17.4 추가적으로 공부할 내용 ... 585
17.5 장을 마치며 ... 586
제18장 URL 기반 네트워킹 ... 587
18.1 URL 클래스 ... 588
URL 생성 ... 588
URL 정보 얻기 ... 589
MalformedURLException 예외 ... 590
18.2 URL을 직접 읽어오기 ... 590
18.3 URL과 접속하여 읽고 쓰기 ... 591
18.4 장을 마치며 ... 595
부록
부록 A JSP 문법 정리 ... 599
A.1 스크립팅 요소(Scripting Elements) ... 600
A.1.1 스크립틀릿(Scriptlet) ... 600
A.1.2 익스프레션(Expression) ... 600
A.1.3 선언(Declaration) ... 601
A.2 디렉티브(Directives) ... 602
A.2.1 페이지 디렉티브(Page Directive) ... 602
A.2.2 인클루드 디렉티브(Include Directive) ... 605
A.2.3 태그 라이브러리 디렉티브(Taglib Directive) ... 606
A.3 표준 액션(Standard Actions) ... 607
A.3.1 〈jsp:useBean〉 ... 607
A.3.2 〈jsp:setProperty〉 ... 609
A.3.3 〈jsp:getProperty〉 ... 611
A.3.4 〈jsp:include〉 ... 612
A.3.5 〈jsp:forward〉 ... 613
A.3.6 〈jsp:param〉 ... 614
A.3.7 〈jsp:plugin〉 ... 614
A.3.8 〈jsp:fallback〉 ... 617
A.4 주석(Hidden Comments) ... 617
A.4.1 HTML 주석 ... 617
A.4.2 JSP 주석 ... 618
부록 B JSP의 내부 객체 ... 619
B.1 page 객체와 config 객체 ... 621
B.2 request 객체 ... 622
B.2.1 파라미터를 얻는 메소드 ... 622
B.2.2 헤더 정보를 얻는 메소드 ... 622
B.2.3 그 밖의 메소드 ... 623
B.3 response 객체 ... 623
B.3.1 컨텐트 설정을 위한 메소드 ... 624
B.3.2 헤더를 설정하기 위한 메소드 ... 624
B.3.3 URL 다시 쓰기와 요청 바꾸기 메소드 ... 625
B.4 session 객체 ... 625
B.5 application 객체 ... 625
B.6 pageContext 객체 ... 626
B.6.1 내부 객체를 얻는 메소드 ... 626
B.6.2 스코프에 따른 속성을 얻는 메소드 ... 627
B.7 exception 객체 ... 628
부록 C 서블릿, JSP API 정리 ... 629
C.1 javax.servlet ... 630
C.1.1 RequestDispatcher 인터페이스 ... 631
C.1.2 Servlet 인터페이스 ... 632
C.1.3 ServletConfig 인터페이스 ... 633
C.1.4 ServletContext 인터페이스 ... 633
C.1.5 ServletRequest 인터페이스 ... 635
C.1.6 ServletResponse 인터페이스 ... 637
C.1.7 SingleThreadModel 인터페이스 ... 639
C.1.8 GenericServlet 클래스 ... 639
C.1.9 ServletInputStream 클래스 ... 641
C.1.10 ServletOutputStream 클래스 ... 641
C.1.11 ServletException 예외 ... 642
C.1.12 UnavailableException 예외 ... 643
C.2 java.servlet.http ... 643
C.2.1 HttpServletRequest 인터페이스 ... 644
C.2.2 HttpServletResponse 인터페이스 ... 647
C.2.3 HttpSession 인터페이스 ... 650
C.2.4 HttpSessionBindingListener 인터페이스 ... 652
C.2.5 HttpSessionContext 인터페이스 ... 652
C.2.6 Cookie 클래스 ... 653
C.2.7 HttpServlet 클래스 ... 654
C.2.8 HttpSessionBindingEvent 클래스 ... 655
C.2.9 HttpUtils 클래스 ... 656
C.3 javax.servlet.jsp ... 656
C.3.1 HttpJspPage 인터페이스 ... 657
C.3.2 JspPage 인터페이스 ... 658
C.3.3 JspEngineInfo 클래스 ... 658
C.3.4 JspFactory 클래스 ... 658
C.3.5 JspWriter 클래스 ... 659
C.3.6 PageContext 클래스 ... 661
C.3.7 JspException 예외 ... 664
C.3.8 JspTagException 예외 ... 664
C.4 javax.servlet.jsp.tagext ... 664
C.4.1 BodyTag 인터페이스 ... 665
C.4.2 Tag 인터페이스 ... 665
C.4.3 BodyContent 클래스 ... 666
C.4.4 BodyTagSupport 클래스 ... 667
C.4.5 TagAttributeInfo 클래스 ... 668
C.4.6 TagData 클래스 ... 669
C.4.7 TagExtraInfo 클래스 ... 670
C.4.8 TagInfo 클래스 ... 670
C.4.9 TagLibraryInfo 클래스 ... 671
C.4.10 TagSupport 클래스 ... 672
C.4.11 VariableInfo ... 673
부록 D 쿠키(Cookies)의 활용 ... 675
D.1 쿠키값 설정 ... 676
D.2 쿠키값 얻기 ... 677
D.3 쿠키값 없애기 ... 678
부록 E 부록 CD의 구성 ... 681
E.1 예제 ... 682
E.2 유용한 프로그램들 ... 683
E.3 소스 지원 ... 683
찾아보기 ... 684
더보기 닫기