spring 7강 상품테이블 만들기, File Upload 테스트
쇼핑몰 페이지
자바파일
Controller
HomeController
: home.jsp를 실행하기 위해 경유하는 컨트롤러 / 시간 정보 담아서 home.jsp 실행
MemberController
: 로그인, 로그인 체크, 로그아웃,
UploadController
: 업로드폼으로 포워딩, 폼데이터 업로드, 업로드 함수
CartController
: cart테이블 저장, cart 리스트 반환, 품목 삭제, 전체 삭제, 업데이트??<<
ProductController
: 상품 목록, 상품 상세보기, 상품 등록 페이지로 포워딩, 등록시 상품목록페이지로 포워
AdminController
: 관리자 로그인창으로 포워딩, 로그인 체크,
관리자 로그아웃처리하고 관리자로그인페이지로 포워딩
Model
MemberDAO + Impl
MemberDTO
: userid / passwd / name / email / join_date
CartDAO +Impl
CartDTO
: cart_id / userid / name / product_id / product_name / price / money / amount
ProductDAO + Impl
ProductDTO
: product_id / product_name / price / description / picture_url / file1
Service
MemberService + Impl
CartService + Impl
ProductService + Impl
AdminService + Impl
설정파일
Mapper ( namespace로 구분 ) ★★★
memberMapper.xml
: 로그인 체크 쿼리
adminMapper.xml
: 관리자 로그인 체크 쿼리
cartMapper.xml
: 장바구니 담기, 장바구니 리스트, 개별상품 삭제, 전체 삭제 쿼리
productMapper.xml
: 상품 리스트, 상품 상세, 상품 추가 쿼리
기본 설정 파일
web.xml
: root-context.xml, servlet-context.xml 로딩
root-context.xml
: mybatis 객체 빈으로 등록시 Mappers.xml 스캔
servlet-context.xml
: include나 image폴더 리소스 매핑 설정 / 업로드 경로 리소스 빈으로 등록 /
파일 업로드에 필요한 클래스 빈으로 등록 / 컴포넌트 스캔 / 뷰로 포워딩시 pre,suffix 설정
pom.xml
//mybatis mapper 코드는 어디에?<<
views 파일 ( .jsp )
include 파일 : header / menu / admin_menu / style.css
memberLogin / cart_list / product_detail / product_list / product_write / uploadForm / uploadResult
admin / adminLogin
product 테이블 생성
merchandise.sql
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 31 32 33 34 35 36 37 38 39 40 41 | create table product( product_id number, product_name varchar2(50), price number default 0, description clob, picture_url varchar2(500), primary key(product_id) ); insert into product values (1, '레몬', 1500, '레몬 설명', 'lemon.jpg'); insert into product values (2, '오렌지', 2000, '오렌지 설명', 'orange.jpg'); insert into product values (3, '키위', 3000, '키위 설명', 'kiwi.jpg'); insert into product values (4, '포도', 5000, '포도 설명', 'grape.jpg'); insert into product values (5, '딸기', 8000, '딸기 설명', 'strawberry.jpg'); insert into product values (6, '귤', 7000, '귤 설명', 'tangerine.jpg'); select * from product; commit; create sequence seq_product start with 10 increment by 1; insert into product values (seq_product.nextval, '사과', 1500, '맛있는 사과', 'apple.jpg'); select * from product; commit; | cs |
commons-fileupload ( groupId ) >> commons-fileupload ( artifactId )
pom.xml
파일업로드 라이브러리
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> | cs |
이미지 썸네일 만들어주는 라이브러리
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/org.imgscalr/imgscalr-lib --> <dependency> <groupId>org.imgscalr</groupId> <artifactId>imgscalr-lib</artifactId> <version>4.2</version> </dependency> | cs |
servlet-context에 등록할 내용 : mapper, beans
이미지 파일 적당한 위치에 넣고 매퍼 리소스 파일 스캔할 수 있도록 servlet-context에 리소스 등록
servlet-context.xml
1 2 | <resources location="/WEB-INF/views/images/" mapping="/images/**" /> | cs |
1 2 3 4 5 6 7 8 9 10 | <beans:bean id="multipartResolver" class= "org.springframework.web.multipart.commons.CommonsMultipartResolver"> <beans:property name="maxUploadSize" value="10485760" /> </beans:bean> <beans:bean id="uploadPath" class="java.lang.String"> <beans:constructor-arg value="d:/upload" /> </beans:bean> </beans:beans> | cs |
1 2 | @Resource(name = "uploadPath") String uploadPath; | cs |
'Spring > study' 카테고리의 다른 글
상품관리 프로젝트 코드 작성 -2 (0) | 2019.06.14 |
---|---|
상품관리 프로젝트 코드 작성 -1 (0) | 2019.06.13 |
spring 6강 Oracle과 mybatis 연동 실습(자바 코드에 SQL 명령어를 함께 작성하는 방식) (0) | 2019.06.06 |
스프링 한글 처리를 위한 인코딩 필터 (0) | 2019.06.05 |
mybatis #{value}와 ${value} 차이 (0) | 2019.06.05 |