Spring13 Spring #13 : 인터셉터(Interceptor) (230131) - 브라우저 요청 시 요청 메서드 호출 전후에 개발자가 원하는 기능을 수행 - 필터와 기능이 유사, 필터보다 더 자유롭게 위치 변경 가능 - 쿠키(Cookie) 제어, 파일 업로드 등의 작업 수행 method function preHandle() 컨트롤러 실행 전 호출 postHandle() 컨트롤러 실행 후, DispatcherServlet이 뷰로 보내기 전 호출 afterCompletion() 뷰까지 수행하고 호출 인터셉터를 사용해 요청명에서 뷰 이름 얻기 실습 #1 회원관리, 게시판 관리 프로젝트에 적용해서 사용하면 된다. ( member 패키지 하위에 interceptor 패키지를 만든 후 ViewNameInterceptor 클래스를 작성) 인터셉터를 사용해 요청명에서 뷰 이름 얻기 package.. 2023. 1. 31. Spring #12 : 이메일 기능 (230131) 이메일로 로그인 확인하는 기능!! - 스프링에선 이메일 라이브러리를 이용해 쉽게 이메일 기능을 구현 가능 - 구글의 SMTP 서버을 이용해서 이메일 기능 구현 - pom.xml 파일에서 이메일 기능을 사용하기 위해 코어 스프링 라이브러리 버전을 4.1.1.RELEASE로 변경해야 한다. org.springframework spring-context-support ${org.springframework-version} javax.mail javax.mail-api 1.5.4 com.sun.mail javax.mail 1.5.3 pom.xml에 들어가는 dependency태그 (관련 라이브러리 추가) - host는 smtp를 사용 - 네이버 메일로 들어가 로그인 한 후, 환경설정 환경설정으로 들어가기 POP.. 2023. 1. 31. Spring #11 : 다중 파일 업로드 (230127) Spring 다중 파일 업로드 - 스프링의 CommonsMultipartResolver 클래스 : 여러 개의 파일을 한꺼번에 업로드 가능 CommonsMultipartResolver 클래스 속성 property description maxUploadSize 최대로 업로드가 가능한 파일의 크기를 설정 maxInMemorySize 디스크에 임시 파일을 생성하기 전 메모리에 보관할 수 있는 최대 바이트 크기를 설정 defaultEncodin (UTF-8) 전달되는 매개변수의 인코딩을 설정 ** 라이브러리 함수는 어노테이션으로 객체 생성 불가능. 다중파일업로드 실습#1 pom.xml ... 4.0.0 com.spring promvn02r promvn02r war 1.0.0-BUILD-SNAPSHOT 1.8 3... 2023. 1. 27. Spring #9 : 메이븐과 스프링 STS (230125) maven 메이븐 설치 메이븐 설치 후 압축풀고 경로복사 시스템속성에서 환경변수 클릭 새로만들기 변수 이름을 MAVEN_HOME으로 설정하고 복사한 경로 값을 변수 값에 붙여넣기 그리고 시스템변수의 path 클릭 새로 만들기 - %MAVEN_HOME%\bin jdk15버전 다시 설치 cmd창에서 mvn 입력 후 다음 결과가 나오면, 정상적으로 설치된 것이다. jdk15랑 메이븐 설치 후 환경변수에서 시스템변수만 path 설정. jdk 15 ... \bn 추가 cmd창에서 mvn 이클립스 설치하면서 default버전을 15로 바꿔주기 (기존에는 17이다) STS 설치 sts 검색 후, install 클릭 required 만 체크 (나머지는 선택 해제) accept하고 finish. ++ STS(Spring.. 2023. 1. 25. Spring #8 : 스프링 트랜잭션(230120) 트랜잭션(Transaction) - 여러 개의 DML 명령문을 하나의 논리적인 작업 단위로 묶어서 관리하는 것 - All 또는 Nothing 방식으로 작업 처리 -> 작업의 일관성 유지 - 웹 애플리케이션에선 Service 클래스의 각 메서드가 애플리케이션의 단위 기능을 수행 웹 애플리케이션에서 묶어서 처리하는 단위 기능 예시 - 게시판 글 조회 시 해당 글을 조회하는 기능/ 조회 수를 갱신하는 기능 - 쇼핑몰에서 상품 주문 시 주문 상품을 테이블에 등록하는 기능/ 주문자의 포인트를 갱신하는 기능 - 은행에서 송금 시 송금자의 잔고를 갱신하는 기능/ 수신자의 잔고를 갱신하는 기능 스프링의 트랜잭션 속성 property function propagation 트랜잭션 전파 규칙 설정 isolation 트랜잭.. 2023. 1. 20. Spring #7 : 스프링-마이바티스 연동(추가)(230120) org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/config/action-mybatis.xml /WEB-INF/config/action-service.xml action org.springframework.web.servlet.DispatcherServlet 1 action *.do web.xml listMembers addMember removeMember modifyMember memberById modMember form memberController action-servlet.xml /WEB-INF/config/jdbc.properties action-mybatis.xml action-servi.. 2023. 1. 20. Spring #6 : 스프링-마이바티스 연동(230119) 새 프로젝트 prosp04를 Dynamic Web Project로 만들고 필요한 스프링 라이브러리를 복사하여 lib폴더에 넣기 다 약속된 폴더 WEB-INF 폴더에 action-servlet.xml을 추가하고, web.xml은 프로젝트 생성할때 체크박스 표시로 나타내기 WEB-INF 폴더에 config폴더 생성.(이름정확히해야함!) 그리고 config폴더에 action-mybatis.xml과 action-service.xml추가 jdbc.driverClassName=org.mariadb.jdbc.Driver jdbc.url=jdbc:mariadb://localhost:3306/membertable jdbc.username=root jdbc.password=1234 jdbc.properties - mari.. 2023. 1. 20. Spring #5 : 마이바티스 - 동적 SQL문(230118) 마이바티스 동적 SQL문 - 주로 SQL문의 조건절에서 사용 - 조건절(WHERE절)에 조건을 동적으로 추가 - JSTL과 XML 기반으로 동적 SQL문 작성 if choose(when, otherwise) trim(where, set) foreach 추가구문 name=#{name} and email=#{email} name=#{name} email=#{email} order by joinDate desc where name in #{item} order by joinDate desc insert INTO t_member(id, pwd, name, email) VALUES (#{item.id}, #{item.pwd}, #{item.name}, #{item.email}) 2023. 1. 18. Spring #4 : 마이바티스 - 회원 최종(230118) SqlMapConfig.xml name=#{name} and email=#{email} name=#{name} email=#{email} order by joinDate desc where name in #{item} order by joinDate desc insert INTO t_member(id, pwd, name, email) VALUES (#{item.id}, #{item.pwd}, #{item.name}, #{item.email}) member.xml package com.spring.ex04; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import .. 2023. 1. 18. 이전 1 2 다음