sample 프로젝트 소스 코드
스프링 MV 프로젝트에서 Ajax와 다중 파일 첨부기능을 구현하기 위하여 sample 프로젝트를 만들었다. (긴적인 Hello Spring에 추가되는 사항을 위주로 기술)
1. 환경
- Oracle DBMS
- Eclipse Java EE + Spring plugin
- Tomcat 8.5
2. 기능목록
- 게시글 작성 : 2개의 첨부파일 가능
- 게시글 목록보기
- 게시글 수 가져오기
3. 파일목록
- pom.xml : 파일 업로드, Oracle DBMS driver, JSON 처리 하는 라이브러리를 가져오기 위한 Maven dependency를 추가
- web.xml : UTF-8 encoding filter 추가, 에러 페이지 처리 추가
- servlet-context.xml : 파일 업로드를 위해 multipartResolver 추가, Oracle jdbc driver 추가, SqlSessionFactory 추가, SqlSessionTemplate 추가
- home.jsp 수정사항 : 게시물 목록보기 화면으로 이동하도록 버튼 배치 -> /list 발생
- HomeController에서 /list를 받으면 데이터베이스에서 게시글을 가져와 listView.jsp에 보여 준다.
- listView.jsp : 게시글 목록을 보여주고, 게시글 쓰기 버튼과 게시글 갯수 가져오기 버튼을 둔다.
+ 게시글 추가 버튼을 누르면 /writeForm이 서버로 전달된다.
+ 게시글 가져오기 버튼이 눌려지면 javascript에서 Jquery Ajax를 사용하여 서버에서 게시글의 수를 알아온다.
- HomeController에서 /writeForm을 수신하면 writeForm.jsp을 보여준다.
- writeForm.jsp에서는 게시글을 작성하도록 입력을 받아 서버로 전달한다. (/write에 실림)
+ 제목, 본문, 첨부파일 정보를 실어준다.
- HomeController에서 /write를 수신하면 게시글을 게시글 테이블에 저장하고, 첨부파일을 서버의 특정 디렉토리에 저장하고, 첨부파일 정보를 파일정보 저장 테이블에 저장한다.
+ /list로 redirect 한다.
- HomeController에서 /getCount를 listView.jsp로부터 수신하면
게시글 테이블에서 게시글의 수 정보를 얻어 listView.jsp의 javascript로 전달한다.