날짜 값 변환 사용자가 설정한 기간 사이에 회원가입을 한 멤버들을 확인하는 요청을 하고 싶은 경우가 있습니다. 이를 위해 MemberDao 클래스에 다음과 같은 메서드를 추가할 수 있습니다. 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...
Session 웹 프로그래밍은 여러 웹서버 프로그램들이 모여 이루어지는 것이라고 볼 수 있습니다. 클라이언트에서 특정한 요청을 하면 웹서버는 알맞는 프로그램을 찾아 실행한 후 종료하게 됩니다. 이 때 실행되는 프로그램은 실행이 완료된 후 메모리에서 제거됩니다. 이 때문에 다음 요청에서 이전에 실행한 결과를 담은 값들에 대해 접근을 할 수가 없습니다. 이 문제를 해결하기 위해 전역변수와 같이 저장공간을 두어야합니다. 이러한 저장공간은 크게 HttpSession과 Cookie로 나눌 수 있습니다. 우선 알아볼 것은 Session을 활용하여 로그인 상태를 유지하는 방법에 대해 알아보겠습니다. 우선적으로 세션에 저장할 객체를 정의해야합니다. package spring; public class AuthInfo {..
Validator 클라이언트가 작성한 폼 객체를 검사하지 않으면 데이터베이스에 잘못된 데이터가 들어가 오류를 일으킬 수 있습니다. 또한 확인을 통해 잘못된 값이 들어왔다는 것을 확인하더라도 클라이언트가 에러 메시지를 받지 못하면 어떠한 이유에서 가입을 실패했는지 알 수 없어 서비스를 제대로 이용할 수 없게 됩니다. 스프링은 이를 해결하기 위해 다음의 두 인터페이스를 제공합니다. org.springframework.validation.Validator org.springframework.validation.Errors Validator은 아래와 같은 인터페이스를 사용합니다. public interface Validator{ boolean supports(Class clazz); void validate(O..
이메일을 전달하기 위해 아래와 같은 폼을 사용했다고 가정하겠습니다. 이메일 이메일을 사용하는 폼은 굉장히 많습니다. 만일 이메일을 이메일 주소로 변경하려고 한다면 이렇게 하드코딩된 코드들을 일일이 찾아 수정해야합니다. 또한 사용자의 접속 환경에 따라 보여주는 글자를 다르게 하고 싶을 때도 마찬가지입니다. 스프링은 이러한 문제점을 해결하기 위해 메세지 태그를 제공합니다. 메세지 태그를 사용한다면 다음과 같이 바꿀 수 있습니다. 을 사용한 곳은 메세지 파일에서 지정한 글자로 바뀌게 됩니다. 메세지 태그를 사용하기 위해 세가지를 준비해야합니다. 문자열을 담은 메세지 파일 메세지 파일에서 값을 읽어올 MessageSource 빈 JSP에서 이를 사용하는 태그 메세지 파일은 클래스패스안에 위치한 폴더에 .prop..
요청 매핑 웹 개발은 크게 클라이언트 요청 URL을 처리할 코드를 작성하거나 처리 결과를 페이지에 출력해줄 코드를 작성하는 것입니다. 첫 번째는 dispatcherServlet이 요청받은 URL을 처리해줄 Controller을 작성하는 것입니다. 컨트롤러 클래스는 요청 매핑 어노테이션을 이용해서 메서드가 처리할 경로를 지정할 수 있습니다. package controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.spri..
Transaction 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 트랜잭션입니다. 한 트랜잭션에 묶인 쿼리들 중 한개라도 실패하면 이전상태로 돌아가는 rollback을 수행하고 모든 쿼리들이 성공하면 해당 상태를 업데이트하는 commit을 수행합니다. @Transactional 트랜잭션 처리를 편리하게 하기 위해 @Transactional 어노테이션을 사용합니다. 트랜잭션 범위에서 실행하고 싶은 메서드에 어노테이션을 붙이면 됩니다. package spring; import org.springframework.transaction.annotation.Transactional; public class ChangePasswordService { private MemberDao memberD..
web.xml 웹 요청이 발생하면 우선적으로 톰캣이 해당 요청을 받게 됩니다. web.xml은 톰캣의 환경설정에 해당하는 파일입니다. 들어가야할 내용은 Servlet에 대한 설정들입니다. dispatcher org.springframework.web.servlet.DispatcherServlet contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation config.MvcConfig config.ControllerConfig 1 dispatcher / encodingFilter org.springframework.web.filter.CharacterEncoding..
프록시 생성방식 스프링은 프록시를 생성할 때, 실제 생성할 빈 객체가 인터페이스를 상속하면 프록시 타입 또한 해당 인터페이스를 상속해서 만들어지게 됩니다. 즉 다음과 같은 코드는 오류가 발생합니다. //in Configuration code.. @Bean public Calculator calculator() { return new REcCalculator(); } package main; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import chap07.Calculator; import chap07.REcCalculator; import config.AppCtx; public class MainAs..
- Total
- Today
- Yesterday
- 트라이
- 세그먼트트리
- sweeping
- 2-SAT
- dijkstra
- dfs
- Oracle
- union find
- kmp
- spring boot
- 이분매칭
- Fenwick
- 이분탐색
- 좌표압축
- Suffix Array
- 동적계획법
- implementation
- string
- Segment tree
- sorting
- SCC
- bfs
- knapsack
- hld
- spring
- 정렬
- greedy
- DP
- 스위핑
- 펜윅트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |