일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- EnhancedFor
- NestedFor
- exception
- 컬렉션 타입
- GRANT VIEW
- 생성자오버로드
- 예외미루기
- 인터페이스
- 추상메서드
- 집합_SET
- 다형성
- 메소드오버로딩
- oracle
- 자동차수리시스템
- 대덕인재개발원
- cursor문
- 사용자예외클래스생성
- abstract
- 오라클
- 참조형변수
- 컬렉션프레임워크
- 환경설정
- 제네릭
- Java
- 정수형타입
- 예외처리
- 한국건설관리시스템
- 객체 비교
- 자바
- 어윈 사용법
- Today
- Total
목록Java_Spring Framework part2 (15)
거니의 velog
9. 새 글 추가 시 여러 이미지 파일 첨부하기 * 새 글을 작성할 때 이미지를 한 개만 첨부하는 것이 아니라 원하는 개수만큼 첨부해서 업로드할 수 있다면 사용자 입장에서는 더 좋을 것이다. 여기에서는 여러 이미지 파일을 첨부하는 기능을 구현해 볼 것이다. * 아래 그림과 같이 이미지 파일 정보를 따로 저장할 테이블이 필요하다. * 이미지 테이블에는 글을 작성할 때 첨부한 파일 정보가 저장된다. 따라서 이미지 테이블에 저장된 파일 정보는 반드시 그 파일이 어떤 글에 첨부된 파일인지를 나타내는 글 번호(articleNO)가 있어야 한다. * 그런데 이미지 테이블에 파일 정보를 추가할 때 게시판에 없는 글 번호라면 그 파일 정보는 게시판 테이블에 없는 글에 대한 파일 정보가 된다. 이런 오류가 발생하면 안 ..
6. 글상세창 구현하기 * 이번에는 글상세창으로 표시하는 기능을 구현해 보자. 1. 매퍼 파일 board.xml에 전달된 글 번호에 대해 글 정보를 조회하는 SQL문을 추가한다. 2. 글상세창(viewArticle.jsp)을 나타낼 타일즈 기능을 설정한다. [tiles_board.xml] 3. 첨부 파일을 표시할 파일 다운로드 컨트롤러인 FileDownloadController를 common/file 패키지에 구현한다. 4. 이전의 FileDownloadController 클래스를 복사해 붙여 넣은 후 다음과 같이 수정한다. package com.myspring.pro30.common.file; import java.io.File; import java.io.FileInputStream; import j..
4. 게시판 목록 표시하기 * 게시판 글목록창은 이전에 이미 실습해 봤다. 이번에는 스프링에서 마이바티스와 타일즈를 이용해 게시판 글목록창을 나타내 보자. (1) 자바 클래스 구현하기 1. 먼저 src/main/java 패키지 하위에 board 패키지를 만든 후 아래 그림처럼 패키지를 구성한다. 그리고 JSP는 이전에 실습한 게시판 관련 JSP 파일을 재사용할 것이므로 프로젝트 pro17의 board07 폴더에 있는 JSP 파일을 모두 복사해 views/board 폴더에 붙여 넣는다. 2. 컨트롤러 클래스인 BoardControllerImpl를 다음과 같이 작성한다. 브라우저에서 요청하면 모든 글 정보를 조회한 후 ModelAndView 객체에 바인딩하여 JSP로 전달한다. @Controller("boa..
* 일반적인 웹 애플리케이션은 여러 기능들이 합쳐져 만들어진다. 즉, 개발자들이 기능들을 각각 구현한 다음 이를 합쳐서 하나의 웹 애플리케이션을 만드는 것이다. 우리는 지금까지 회원 관리 기능을 구현하면서 스프링 기능을 익혔다. 이번에는 이제까지 구현한 회원 관리 기능에 답변형 게시판 기능을 추가해 보자. 이를 통해 일반적인 웹 애플리케이션 구현 과정에 한 발 더 다가갈 수 있을 것이다. 1. 기존 소스 코드 변경하기 * 새 프로젝트 pro30을 만든 후 이전에 만든 회원 기능 소스 코드를 복사해 수정하는 방식으로 실습을 진행해 보자. 1. pro30의 pom.xml에 타일즈와 마이바티스 관련 라이브러리를 추가한다. 4.0.0 com.myspring pro30 pro30 war 1.0.0-BUILD-SN..
3. @PathVariable 사용하기 * @PathVariable을 사용하면 브라우저에서 요청 URL로 전달된 매개변수를 가져올 수 있다. [TestController.java] @RestController @RequestMapping("/test/*") public class TestController { @RequestMapping(value = "/notice/{num}", method = RequestMethod.GET) // 브라우저에서 요청 시 {num} 부분의 값이 @PathVariable로 지정된다. public int notice(@PathVariable("num") int num) throws Exception { // 요청 URL 에서 지정된 값이 num에 자동으로 할당된다. ret..
* 스프링을 사용하는 웹 애플리케이션이 브라우저에 응답하는 방식은 주로 웹 페이지였다. 그러나 최근 모바일 기기가 등장하면서 다른 데이터 방식으로 연동하는 일이 잦아졌다. 이번에는 스프링에서 다양한 기기들과 연동하는 방식을 알아보자. 1. REST란? * 지금은 PC뿐만 아니라 스마트폰, 태블릿, 스마트 TV 등에서도 인터넷 기반으로 웹 애플리케이션을 실행하여 기능을 제공한다. PC에서는 네트워크 전송 속도나 메모리 들이 풍부하므로 지금까지 실습한 대로 브라우저에서 요청 시 화면 정보(HTML, CSS, 자바스크립트 등)도 일일이 다시 전송해서 표시해도 아무 문제가 없었다. 그러나 스마트폰 같은 모바일 기기는 다르게 동작하는 경우가 많다. * 아래 그림은 모바일 기기에서 상품을 조회한 후 나타나는 최초의..
5. 스프링 인터셉터 사용하기 * 이번에는 스프링에서 제공하는 기능인 인터셉터(Interceptor)에 대해 알아보자. 인터셉터를 사용하면 브라우저 요청이 있을 때 요청 메서드 호출 전후에 개발자가 원하는 기능을 수행할 수 있다. * 무슨 말인지 다음 그림을 보자. * 위 그림과 같이 브라우저의 요청을 해당 컨트롤러의 메서드가 처리하기 전후에 인터셉터를 두어 특정 작업을 수행한다. 인터셉터는 필터와 비슷한 기능을 하지만 필터는 웹 애플리케이션의 특정한 위치에서만 동작하는 데 반해 인터셉터는 좀 더 자유롭게 위치를 변경해서 기능을 수행할 수 있다. 즉, 인터셉터는 애플리케이션 안에서 적용 범위를 설정할 수 있다. 주로 쿠키(cookie) 제어, 파일 업로드 작업 등에 사용한다. * 다음 표는 스프링에서 인..
3. 스프링 이메일 사용하기 * 스프링에서는 이메일 기능도 설정만으로 쉽게 구현할 수 있다. 우리는 구글에서 제공하는 SMTP 서버를 이용해 메일을 보낼 것이므로 www.google.com 으로 접속하여 구글 메일 계정을 미리 만들어 놓아야 한다. 1. 이메일 기능 설정을 위한 XML 파일들을 준비한다. 2. pom.xml 파일을 다음과 같이 작성한다. 이메일 기능을 사용하기 위해 코어 스프링 라이브러리 버전을 4.1.1.RELEASE로 변경한 후 관련 라이브러리를 추가한다. 4.0.0 com.myspring pro28 pro28 war 1.0.0-BUILD-SNAPSHOT 1.6 4.1.1.RELEASE 1.6.10 1.6.6 ... org.springframework spring-context-sup..
* 스프링 프레임워크는 오픈 소스이기 때문에 상당히 많은 기능을 지원한다. 이번에는 여러 오픈 소스 라이브러리를 사용해 다중 파일 업로드, 썸네일 이미지, 이메일, 인터셉터 등 여러 가지 기능을 구현해 보자. 1. 다중 파일 업로드하기 * 스프링의 CommonsMultipartResolver 클래스를 이용하면 여러 개의 파일을 한꺼번에 업로드할 수 있다. 다음 표에 CommonsMultipartResolver 클래스의 여러 가지 속성을 정리했다. 속성 설명 maxUploadSize 최대로 업로드가 가능한 파일의 크기를 설정한다. maxInMemorySize 디스크에 임시 파일을 생성하기 전 메모리에 보관할 수 있는 최대 바이트 크기를 설정한..
11. JSP에 회원 목록창 나타내기 * 이제 타일즈를 이용해 페이지 본문에 회원 목록창이 나타나도록 구현해 보자. 1. 먼저 tiles_member.xml에 /member/listMember.do로 요청했을 때 표시할 태그를 추가한다. name의 값은 URL 요청명에서 .do를 제외한 요청명과 일치해야 한다. 2. 브라우저에서 컨트롤러 요청 시 요청명에 대해 뷰이름을 가져온다. 그리고 다시 ModelAndView 객체에 설정한 후 뷰리졸버로 반환한다. [MemberControllerImpl.java] @Controller("memberController") public class MemberControllerImpl implements MemberController { // LoggerFactory 클..