■■■ Spring MVC 프로젝트 실습04 ■■■
○ Perspective
: JavaEE
○ 다이나믹 웹 프로젝트 생성
: mvc04
(STS - 스프링 / 스프링 레거시 / 스프링 부트 / 스프링 MVC ...)
○ 기본 환경 구성 및 라이브러리 설정
: mvc00 으로부터 src, WebContent 디렉터리 복사 & 붙여넣기
(→ 우리가 임의로 만들어둔 샘플)
○ 실습 성격
: 직원 관리 프로그램 실습(Spring MVC 버전)
JDBC 모듈 추가 활용
SimpleDriverDataSource 객체 활용
○ 기능 구현
- 직원 데이터 출력, 입력, 수정, 삭제 기능 구현
- 지역 데이터 출력, 입력, 수정, 삭제 기능 구현
- 부서 데이터 출력, 입력, 수정, 삭제 기능 구현
- 직위 데이터 출력, 입력, 수정, 삭제 기능 구현
- 로그인 / 로그아웃 기능 구현
→ 관리자 및 일반 직원 로그인 구분.
==> spring MVC, JSP/Servlet, Oracle, HTML/CSS/Javascript, AJAX
, jQuery, EL, JSTL 표현 등 사용.
○ 사전 작업 → 테이블 및 시퀀스, 주요 쿼리문 구성
- EMPLOYEE 직원
- REGION 지역
- DEPARTMENT 부서
- POSITION 직위
- 샘플 데이터 입력 및 쿼리문 구성
○ 물리적 파일 구성
#00. mvc04_scott.sql → 데이터베이스 관련 객체 구성 및 실습 데이터 준비
#01. Employee.java → 직원 데이터 자료형 클래스(DTO 활용)
#02. Department.java → 부서 데이터 자료형 클래스(DTO 활용)
#03. Region.java → 지역 데이터 자료형 클래스(DTO 활용)
#04. Position.java → 직위 데이터 자료형 클래스(DTO 활용)
#05. IEmployeeDAO.java → 인터페이스
└ 부서 리스트, 직위 리스트(사원 selected 로), 지역 리스트 얻어내기 → selectbox 처리 위해서
└ 직위 선택에 따른 최소 기본급 표시
#06. IDepartmentDAO.java → 인터페이스
#07. IRegionDAO.java → 인터페이스
#08. IPositionDAO.java → 인터페이스
입력, 출력, 수정, 삭제 -> 각각 처리
-----------------------------------------------------------------------------------------
#09. EmployeeDAO.java → 데이터베이스 액션 처리 클래스
직원 데이터 입출력 및 수정 삭제 액션
(Connection 객체에 대한 의존성 주입)
(의존성 주입을 위한 준비 → 인터페이스... setter...)
#10. DepartmentDAO.java → 데이터베이스 액션 처리 클래스
부서 데이터 입출력 및 수정 삭제 액션
(Connection 객체에 대한 의존성 주입)
(의존성 주입을 위한 준비 → 인터페이스... setter...)
#11. RegionDAO.java → 데이터베이스 액션 처리 클래스
지역 데이터 입출력 및 수정 삭제 액션
(Connection 객체에 대한 의존성 주입)
(의존성 주입을 위한 준비 → 인터페이스... setter...)
#12. PositionDAO.java → 데이터베이스 액션 처리 클래스
직위 데이터 입출력 및 수정 삭제 액션
(Connection 객체에 대한 의존성 주입)
(의존성 주입을 위한 준비 → 인터페이스... setter...)
-----------------------------------------------------------------------------------------
(단, Final 에서는 통합처리 하지 않고 별개로 컨트롤러와 뷰페이지를 갖게 한다.)
#13. EmployeeMenu.jsp → 메인 메뉴 뷰 페이지
로그아웃 처리 기능
#14. menuStyle.css → 메뉴 스타일 구성
#15. EmployeeList.jsp → 직원 리스트 출력 페이지
#16. main.css → 메인 스타일 구성
#17. EmployeeListController.java
(employeelist.action)
#18. web.xml → DispatcherServlet 객체 등록 (Front Controller)
URL 매핑 주소 등록
#19. dispatcher-servlet.xml → 컨트롤러 객체 등록
URL 매핑 주소 등록
SimpleDriverDataSource 객체 등록
의존 객체 주입 설정
DAO 객체 등록
#20. EmployeeInsertFormController.java
(employeeinsertform.action)
#21. EmployeeInsertForm.jsp → 직원 데이터 입력 폼 페이지
#22. AjaxController.java → 최소 기본급 Ajax 처리 기능
#23. Ajax.jsp → 사용자를 만나지 않는 Ajax 처리 결과를 받는 jsp
#24. jquery-ui.js / jquery-ui.css / images → jquery-ui 삽입 (캘린더 사용)
#25. EmployeeInsertController.java → 직원 데이터 입력 처리 액션 수행하는 컨트롤러
(employeeinsert.action)
#26. EmployeeUpdateFormController.java → 직원데이터 수정 폼 요청에 대한 액션 처리 컨트롤러
(employeeupdateform.action)
#27. EmployeeUpdateForm.jsp → 직원 데이터 수정 폼 페이지
#28. EmployeeUpdateController → 직원데이터 수정 요청에 대한 액션 수행
(employeeupdate.action)
#29. EmployeeDeleteController → 직원데이터 삭제 요청에 대한 액션 수행
(employeedelete.action)
#30. LoginForm.jsp → 관리자, 일반사원 로그인 폼 페이지
#31. LoginFormController.java → 관리자, 일반사원 로그인 폼 페이지
(loginform.action)
#32. LoginController.java → 로그인 액션 처리 전용 객체
(login.action)
#33. EmpList.jsp → 직원 리스트 출력 페이지
#34. EmpListController.java → 직원 리스트 폼 요청에 대한 액션 처리 컨트롤러
(emplist.action)
#35. LogoutController.java → 로그아웃 액션 처리 전용 객체
(logout.action)
===================================================================================================
직원과 마찬가지로 지역, 부서, 직위 관리 하는 파트 직접 구성해보기 - 세션 처리도 필수
//-- 입력 / 수정 / 삭제
//-- 직위관리의 경우는 '최소기본급' 수정 도 가능할 수 있도록 구성
//-- 관리자 지역 관리
#36. RegionList.jsp -> 지역 리스트 출력 페이지 - 입력 / 수정 / 삭제 연결
#37. RegionListController.java -> 지역관리 클릭시 지역리스트 페이지로 넘겨주는 액션 처리 컨트롤러
#38. RegionInsertFormController.java -> 지역리스트 추가 폼 요청 액션 처리 컨트롤러
(regioninsertform.action)
#39. RegionInsertForm.jsp -> 지역 리스트 추가 폼 페이지 *기존에 있는 지역인지 확인X*
#40. RegionInsertController.java -> 지역 추가 요청에 대한 액션 처리 컨트롤러
(regioninsert.action)
#41. RegionUpdateForm.jsp -> 지역 이름 업데이트 폼 페이지
#42. RegionUpdateFormController.java -> 지역 수정 폼 요청에 대한 액션 처리 컨트롤러
(regionupdateForm.action)
#43. RegionUpdateController.java -> 지역 수정 요청에 대한 액션 처리 컨트롤러
(regionupdate.action)
#44. RegionDeleteController.java -> 지역 삭제 요청에 대한 액션 처리 컨트롤러
(regionupdate.action)
//-- 일반사원 지역정보
#45. RegList.jsp -> 지역 정보 출력 페이지
(reglist.action)
#46. RegListController.java -> 지역정보 클릭시 지역정보 출력 페이지로 넘겨주는 액션 처리 컨트롤러
//-- 관리자 부서 관리
#47. DepartmentList.jsp -> 부서 리스트 출력 페이지 - 입력/수정/삭제 연결
#48. DepartmentListController.java -> 부서관리 클릭시 부서리스트 페이지로 넘겨주는 액션 처리 컨트롤러
(departmentlist.action)
#49. DepartmentInsertForm.jsp -> 부서 추가 입력 폼 페이지
#50. DepartmentInsertFormController.java -> 부서 추가 입력 폼 요청에 대한 액션 처리 컨트롤러
(departmentinsertform.action)
#51. DepartmentInsertController.java -> 부서 추가 요청에 대한 액션 처리 컨트롤러
(departmentinsert.action)
#52. DepartmentUpdateForm.jsp -> 부서 수정 폼 페이지
#53. DepartmentUpdateFormController.java -> 부서 수정 폼 요청에 대한 액션 처리 컨트롤러
(departmentupdateform.action)
#54. DepartmentUpdateController.java -> 부서 수정 요청에 대한 액션 처리 컨트롤러
(departmentupdate.action)
#55. DepartmentDeleteController.java -> 부서 수정 요청에 대한 액션 처리 컨트롤러
(departmentdelete.action)
//-- 일반 부서 정보
#56. DeptList.jsp -> 부서 리스트 출력 페이지
#57. DeptListController.java -> 부서정보 클릭시 부서리스트 페이지로 넘겨주는 액션 처리 컨트롤러
(deptlist.action)
//-- 관리자 직위 관리
#58. PositionList.jsp
#59. PositionListController.java
(positionlist.action)
#60. PositionInsertForm.jsp
#61. PositionInsertFormController.java
(positioninsertform.action)
#62. PositionInsertController.java
(positioninsert.action)
#63. PositionUpdateForm.jsp
#64. PositionUpdateFormController.java
(positionupdateform.action)
#65. PositionUpdateController.java
(positionupdate.action)
#66. PositionDeleteController.java
(positiondelete.action)
//-- 일반 직위 정보
#67. PosList.jsp
#68. PosListController.java
(poslist.action)
○ 사용자 최초 요청 주소
http://localhost:3306/mvc04/employeelist.action → 관리자 요청 시
http://localhost:3306/mvc04/emplist.action → 일반사원 요청 시
※ 추후 우리는 실무 프로젝트를 수행하는 과정에서
컨트롤러를 액션 단위가 아닌 업무 단위로 묶어서 작업 및 처리하게 될 것이다.
이후, 어노테이션을 활용하여 컨트롤러를 지정해서 처리하는 방법도 사용하게 될 것이다.
하지만, 이번 실습 과정에서 기본 액션 단위의 컨트롤러 구성을 수행함으로써
Model - View - Controller 의 기능 및 처리 흐름에 대해 제대로 파악할 수 있도록 한다.