PART 01 스트럿츠 개발을 위한 환경 설정 01 스트럿츠 2 프레임워크란? ... 14 MVC 패턴 ... 14 스트럿츠 프레임워크 ... 15 스트럿츠 2는 어떤 프레임워크일까? ... 16 스트럿츠 2의 특징 ... 17 02 자바 프로그래밍을 위한 환경 만들기 ... 18 JDK 다운로드하여 설치하기 ... 18 JDK 다운로드하기 ... 19 다운받은 JDK 설치하기 ... 20 환경 변수 설정하기 ... 22 개발 툴인 이클립스를 다운받아 설치하기 ... 23 이클립스 실행하기 ... 25 웹 프로그램 실행을 위한 웹 서버 톰캣 설치하기 ... 28 03 프로젝트 개발을 위한 서버 설정 ... 31 서버 설정하기 ... 31 이클립스에 동적 웹 프로젝트 설정하기 ... 33 이클립스에서 JSP 페이지 작성 후 실행하기 ... 35 04 스트럿츠 2 프로그램 설치하기 ... 38 스트럿츠 2 프레임워크 다운받아 압축 풀기 ... 38 스트럿츠 2 웹 애플리케이션 실행하기 ... 40 PART 02 스트럿츠 2 맛보기 01 스트럿츠 2 웹 애플리케이션 파악하기 ... 44 Hello World! 예제 전반적으로 이해하기 ... 45 스트럿츠 2 웹 애플리케이션의 전반적인 흐름 살피기 ... 46 스트럿츠 2 웹 애플리케이션 작성하기 ... 48 02 필터 등록을 위한 web.xml ... 51 03 요청 처리를 위한 액션 ... 53 액션 클래스 만드는 방법 알아보기 ... 53 04 액션과 리절트 매핑을 위한 struts.xml ... 57 struts.xml 파일에 액션 설정하기 ... 57 05 helloWorld.jsp 파일과 프로그램 실행 ... 62 리절트 역할을 하는 helloWorld.jsp ... 62 실행 방법과 동작 원리 살피기 ... 63 PART 03 스트럿츠 2 환경 설정 01 스트럿츠 2 환경 설정 파일web.xml/struts.xml ... 68 web.xml 역할 파악하기 ... 68 struts.xml 역할 파악하기 ... 69 02〈include/〉요소로 설정 파일 관리하기 ... 70 〈include〉요소 사용 방법 알아보기 ... 70 디폴트 설정 파일인 struts-default.xml ... 79 03 〈package/〉요소 ... 81 04 네임스페이스 ... 83 디폴트 네임스페이스 ... 85 루트 네임스페이스 ... 86 abstract 속성 ... 87 05〈action/〉요소 ... 89 〈action/〉요소의 속성 ... 89 〈default-action-ref/ 〉 ... 91 06 와일드카드 매핑 ... 94 웹 애플리케이션의 편리한 Action 설정 ... 94 와일드카드 여러 번 사용하기 ... 96 07〈constant/〉 요소 ... 98 08 struts.properties 파일에 대한 이해 ... 100 디폴트 프로퍼티 설정 파일인 default.properties ... 100 struts.properties 프로퍼티 설정 파일의 역할 ... 101 PART 04 요청 처리를 위한 액션 01 액션 종류와 POJO 기반 액션 ... 104 02 Action 인터페이스를 구현한 액션 ... 106 Action 인터페이스 이해하기 ... 106 프로젝트 생성하고 환경 설정하기 ... 108 03 Action 인터페이스를 구현한 애플리케이션 작성 ... 108 04 스트럿츠 흐름과 파라미터 값 전달하기 ... 112 파라미터 값을 전달하는 방법 ... 112 params 인터셉터 ... 113 파라미터 값을 전달받는 예제의 동작 원리 ... 114 요청 파라미터를 얻어오기 위한 애플리케이션 작성 ... 116 스트럿츠 2에서의 한글 처리 ... 117 05 ActionSupport 클래스를 확장한 액션 ... 120 ActionSupport 클래스에 대한 이해 ... 120 유효성 검사(Validation) ... 121 액션과 리절트 매핑을 위한 struts.xml 수정하기 ... 126 06 도메인 오브젝트 ... 128 회원 정보를 저장하기 위한 도메인 오브젝트 ... 128 07 ModelDriven와 Preparable 인터페이스 활용하기 ... 137 ModelDriven 인터페이스 ... 137 Preparable 인터페이스 ... 139 액션 클래스 비교 정리 ... 146 PART 05 스트럿츠 2 아키텍처와 인터셉터 01 스트럿츠 2 아키텍처 ... 150 스트럿츠 2 필터 디스패처의 역할 ... 151 설정 관리자/액션 매퍼 ... 151 액션 프록시/액션 인보케이션/액션 컨텍스트 ... 151 02 인터셉터란? ... 153 〈interceptors/〉 ... 154 〈interceptor/〉 ... 154 〈interceptor-ref/〉와〈interceptor-stack/〉 ... 155 〈default-interceptor-ref/〉 ... 156 인터셉터 설정 ... 157 03 커스텀 인터셉터 ... 161 커스텀 인터셉터를 위한 Interceptor 인터페이스 ... 161 커스텀 인터셉터를 위한 AbstractInterceptor 추상 클래스 ... 162 04 인터셉터의 종류 ... 170 PART 06 리절트 01 리절트 개요와 종류 ... 174 리절트 설정을 위한 방법 ... 174 리절트 타입 ... 175 02 체인 리절트를 활용한 액션 체인 ... 178 체인 리절트를 활용하는 방법 ... 178 03 dispatcher와 redirect 리절트 타입 ... 186 04 redirectAction 리절트 타입 ... 190 05 와일드카드 매핑과 글로벌 리절트 ... 192 디폴트 와일드카드 매핑 ... 193 〈global-results/〉 ... 193 PART 07 스트럿츠 2 다양한 태그 컴포넌트 01 태그 라이브러리 ... 196 컨트롤 태그 ... 197 데이터 태그 ... 198 폼 태그 ... 199 넌-폼 태그 ... 200 스트럿츠 2 태그 라이브러리 설정 ... 201 02 스트럿츠 2 태그 라이브러리를 사용한 로그인 처리 ... 202 실습할 파일 미리 확인해보기 ... 202 03 OGNL ... 207 04 다양한 스트럿츠 2 태그 라이브러리 살피기 ... 212 〈s:if〉,〈s:else〉,〈s:elseif〉 ... 212 〈s:iterator/〉 ... 216 〈s:append/〉와〈a:param /〉 ... 220 〈s:generator/〉 ... 224 〈s:merge/〉 ... 225 〈s:sort/〉 ... 227 〈s:subset/〉 ... 228 〈s:bean/〉 ... 228 〈s:push/〉 ... 229 〈s:set/〉 ... 231 〈s:url/〉 ... 232 〈s:action/〉 ... 235 PART 08 유효성 검사 01 유효성 검사자 ... 238 XML을 이용한 선언적 유효성 검사 ... 239 〈validators/〉 ... 247 02 스트럿츠 2가 제공하는 validator ... 249 required ... 249 requiredstring ... 250 int ... 250 date ... 251 expression ... 252 fieldexpression ... 253 email ... 254 url ... 255 visitor ... 256 conversion ... 257 stringlength ... 258 regex ... 259 03 스트럿츠 2가 제공하는 validator 사용하기 ... 260 04 커스텀 validator ... 267 커스텀 validator 만들기 ... 267 PART 09 파일 업로드와 다운로드 01 스트럿츠 2 파일 업로드의 특징 ... 280 02 파일 업로드 애플리케이션 ... 284 I0 컴포넌트와 FileUpload 컴포넌트 ... 284 I0, FileUpload 컴포넌트 다운로드하기 ... 284 파일 업로드 용량 제한 변경 ... 285 03 단일 파일 업로드 ... 287 04 다중 파일 업로드 ... 293 05 파일 다운로드 ... 299 PART 10 예외 처리 로깅 프로파일링 01 예외란? ... 308 02 예외 처리하기 ... 311 〈exception-mapping/〉요소를 이용한 액션 예외 매핑 ... 311 〈global-exception-mappings/〉요소를 이용한 글로벌 예외 매핑 ... 313 예외 매핑의 범위 기준 ... 316 03 로깅 ... 318 Commons 로깅 패키지 ... 318 log4j를 사용한 로깅 ... 319 log4j 다운받아 설치하기 ... 319 04 프로파일링 ... 323 프로파일링의 설정 방법 ... 323 프로파일 정보 필터링 ... 327 새로운 프로파일 만들기 ... 328 PART 11 국제화와 스트럿츠 2 01 스트러츠 2 국제화지원 ... 332 스트럿츠 2의 국제화 ... 332 스트럿츠 2에서 Locale 설정 ... 333 국제화 관련 리소스 번들 ... 335 메시지 리소스 파일 작성하기 ... 338 02 ActionSupport 클래스를 사용한 리소스 번들 사용하기 ... 342 ActionSupport 클래스를 확장한 액션 클래스 작성 ... 342 i18n 태그를 사용한 JSP 페이지 ... 347 PART 12 스트럿츠 2와 스프링 01 스프링 개요와 설치 ... 352 스프링 다운받기 ... 354 스프링 플러그인 설치하기 ... 354 02 스프링과 스트럿츠로 회원 가입 처리 ... 356 회원 가입 처리 프로그래밍 만들기 ... 356 스프링을 위한 라이브러리 설정하기 ... 357 struts.properties에서 스프링 관련된 설정 ... 359 applicationcontext.xml ... 360 PART 13 스트럿츠 2와 iBatis 01 ORM 프레임워크인 iBATIS ... 370 JDBC와 iBATIS의 차이점 ... 370 02 MySQL 설치하기와 사용 방법 알아보기 ... 373 MySQL 서버 설치 및 환경 설정하기 ... 373 MySQL 접속하기 ... 379 MySQL 사용하기 ... 379 새로운 데이터베이스 만들기 ... 381 테이블을 생성하는 create table ... 382 테이블에 레코드를 추가하는 insert 문 ... 383 테이블의 레코드를 검색하는 select문 ... 384 03 iBATIS 사용한 JDBC ... 385 JDBC 드라이버 다운받아 설치하기 ... 385 iBATIS 다운받아 설치하기 ... 386 iBATIS 사용한 JDBC 예제를 위한 프로젝트 작성하기 ... 387 데이터베이스 연결 정보를 담는 프로퍼티 파일 작성 ... 387 SQLMaps 설정 파일 : SqlMapConfig.xml ... 388 SqlMapConfig.xml 설정의 구성 요소 ... 391 04 SQL Map API ... 394 자바빈즈에 대한 이해 ... 394 iBATIS란 무엇인가? ... 395 SQL 구문 매핑하기 ... 396 SQL Map API ... 397 PART 14 게시판 만들기 01 게시판에 대한 이해와 테이블 만들기 ... 404 게시판 기능 살펴보기 ... 404 게시판에 사용될 테이블 만들기 ... 407 02 게시판 프로젝트 시작하기 ... 409 게시판 프로젝트를 위한 준비과정 ... 410 데이터베이스와 iBATIS 연결 ... 411 03 게시판 리스트 위한 프로그래밍 ... 420 게시판 리스트란? ... 420 페이지 처리 클래스 ... 421 04 게시물 쓰기 ... 432 05 게시물 상세보기 ... 440 06 게시물 수정하기 ... 451 07 게시물 삭제하기 ... 455 08 예외 처리 페이지 ... 458