본문 바로가기

Java/JavaSpring

(15)
Chap 14. MVC 4 : 날짜 값 변환, @PathVariable, 익셉션 처리 REGDATE 값이 두 파라미터로 전달받은 from 과 to 사이의 Member 목록을 구한다. private RowMapper memRowMapper = new RowMapper() { @Override public Member mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member(rs.getString("EMAIL"), rs.getString("PASSWORD"), rs.getString("NAME"), rs.getTimestamp("REGDATE").toLocalDateTime()); member.setId(rs.getLong("ID")); return member; } }; 시간을 나타내기 위해 Local..
Chap 13. MVC 3: 세션, 인터셉터, 쿠키 컨트롤러에서 HttpSession 사용하기 컨트롤러에서 HttpSession을 사용하려면 다음 방법중 하나를 사용한다. - 요청 매핑 애노테이션 적용 매서드에 HttpSession 파라미터 추가 - 요청 매핑 애노테이션 적용 매서드에 HttpServletRequest 파라미터 추가 HttpServlet Request를 이용해서 HttpSession을 구한다. Life Cycle 길이 : request < model < session 요청 매핑 애노테이션(@Request) 적용 메서드에 HttpSession 파라미터가 존재할 경우 스프링 MVC는 컨트롤러의 메서드를 호출할 때 HttpSession 객체를 파라미터로 전달한다. HttpSession을 생성하기 전이면 새로운 HttpSession을 생성, 그렇..
Chap 12. MVC 2 : 메시지, 커맨드 객체 검증 태그로 메시지 출력 메시지 파일을 src/main/resources에 message 폴더를 생성하고 이 폴더에 label.properties 파일을 생성한다. member.register=회원가입 term=약관 term.agree=약관동의 next.btn=다음단계 member.info=회원정보 email=이메일 name=이름 password=비밀번호 입력 password.confirm=비밀번호 재입력 register.btn=가입 완료 register.done={0}님, 회원 가입을 완료했습니다. go.main=메인으로 이동 MessageSource 타입의 빈을 MvcConfig에 추가한다. 이때 messageSource 이외 다른 이름을 사용할 경우 정상적으로 작동하지 않는다. @Bean public M..
JUNIT JUnit은 테스팅 프레임워크이며 JUnit5는 3가지 모듈로 구성되어있다. - JUnit Platform : 테스팅 프레임워크 구동하기 위한 런처와 테스트 엔진을 위한 API 제공 - JUnit Jupiter : JUnit5를 위한 테스트 API와 실행 엔진을 제공 - JUnit Vintage : JUnit 3,4로 작성된 테스트를 JUnit5에서 플랫폼에서 실행하기 위한 모듈 제공 의존설정 org.junit.jupiter junit-jupiter-api 5.5.2 test 테스트할 클래스는 다음과 같다. public class test_case_1 { public int sum(int a, int b) { return a+b; } } 다음 경로에 테스트 클래스를 생성한다. JUnit5에서 클래스 생성..
Chap 11. MVC 1 : 요청 매핑, 커맨드 객체, 리다이렉트, 폼 태그, 모델 요청 매핑 애노테이션을 이용한 경로 매핑 요청 매핑 에노테이션에는 @RequestMapping, @GetMapping, @PostMapping 등이 있다. 요청 매핑 애노테이션은 요청경로를 해당 메서드가 처리하도록 설정한다. GET과 POST 구분 : @GetMapping, @PostMapping GET과 POST 방식에 상관없이 @RequestMapping에 지정한 경로와 일치하는 요청처리를 수행한다. 만약 POST 방식 요청만 처리하고 싶다면 다음과같이 @PostMapping 애노테이션을 사용해서 제한한다. import org.springframework.web.bind.annotation.PostMapping; @Controller public class RegisterController{ @Pos..
Chap 10. 스프링 MVC 프레임워크 동작 방식 스프링 MVC 핵심 구성요소 다음그림은 스프링 MVC모델 처리 순서이다. 아래 설명과 참조하면서 흐름을 보면 좋다. 이라고 표시한 것은 스프링 빈으로 등록해야되는 요소이다. DispatcherServlet은 모든 연결을 담당한다. 사용자에게 전달 받은 요청을 HandlerMapping이라는 빈 객체 컨트롤러에게 검색을 요청한다. HandlerMapping은 요청경로를 받아서 처리한다. 예를 들어 요청경로가 "/hello" 일 때 DispatcherServlet으로 "/hello" 요청경로를 처리할 컨트롤러를 리턴한다. HandlerAdapter는 DispatcherServlet에서 요청받은 컨트롤러에 알맞은 메서드를 호출하여 요청처리를 처리하여 그 결과를 DispatcherServlet에 리턴한다. 이때..
Chap 9. 스프링 MVC 시작하기 웹 프로젝트를 생성해서 프로젝트를 진행할 때 WEB-INF에 jsp를 넣어 프로젝트를 생성하였다. 하지만 이렇게 경로를 설정하면 경로를 직접입력하여 jsp파일에 접근하여 보안성이 떨어진다. WEB-INF 하위 폴더를 생성하여 jsp를 넣으면 controller를 거치지 않으면 접근할 수 없게 설정 할 수 있다. 스프링 MVC를 위한 설정 스프링 MVC를 실행하기 위한 최소 설정은 다음과 같다 - 스프링 MVC 주요설정 (HandlerMapping, ViewResolver 등) - 스프링의 DispatcherServlet (Controller) 설정 @EnableWebMvc 애노테이션을 통해 다양한 빈 설정을 추가한다. pom.xml의 DispatcherServlet은 초기화 과정에서 contextConf..
Chap 8. DB 연동 JDBC 프로그래밍 단점 보안하는 스프링 //반복영역 Member member; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost/spring5fs","DBMS 아이디","DBMS 비밀번호"); /*--------------------------------------------------------------------------------------------------------------------------*/ //핵심영역 pstmt = conn.prepare..