1. 구글 리캡차 api key 발급https://www.google.com/recaptcha/admin#list label : 이름domain : URL입력 (로컬이라면 localhost 입력) owner : 소유자 이메일 발급받은 후 sitekey, secretkey 복사 2. 메이븐 의존성 주입net.tanesha.recaptcha4jrecaptcha4j0.0.7 3. jsp 엘리먼트 작성 siteKey는 발급받은 것 적으면 됨 4. 자바스크립트 메서드 작성(본인은 ajax 처리) $.ajax({ url : '/member/captchaAjax', type : 'post', data : { recaptcha : document.getElementById("g-recaptcha-response").v..
Spring 3.2 부터 이 @ControllerAdvice가 생겼다고 한다.컨트롤러 서비스 퍼시스턴스 단에 발생할 수 있는 예외를 이 어노테이션을 지정한 클래스에서 공통적으로 관리 해 줄 수 있다. 사용 방법은 간단하다.(세부적으로 들어가면 간단하지 않음.) 보는 것처럼 스프링 빈을 정의해주는 config파일에 구문을 넣어준다.context:component-scan이라는 것은 bean엘리먼트를 정의하지 않아도 자동으로 해당 패키지에 있는 @compoenet, @service, @controller 등을 알아서 스캔해 인스턴스를 생성해준다. 안에 있는 context:include-filter는 스프링이 제공하는 기본필터를 사용하지 않고 @ControllerAdvice의 클래스를 사용하겠다는 뜻.. 다음..
소스코딩을 하면서 JDBC연결에 필요한 username, password, url 같은 접속 정보나 로컬호스트와 서버의 파일 저장 경로같은 설정을 기존에는 MessageSource기능을 이용해서 사용하였는데..이 방법의 단점은 자바의 controller단에서 request객체를 이용하여 서버의 url을 가져온 다음에 조건문으로 localhost나 127.0.0.1, 192.168.x.x 같은 호스트가 포함되어 있으면 로컬이라하고 아니면 서버로 구분한 문자열을 service단으로 넘겨서이문자열을 플래그 값으로 해서 실서버 환경인지 로컬작업 환경인지를 구분하는 조금 복잡한 구조를 가지고 있었는데.. 어떻게 다른 방법이 없나 하다가 profile이라는 기능을 발견하게 되었다. 사용방법은 의외로 간단하면서 유용..
메이븐 의존 라이브러리 주입 javax.validation validation-api 1.1.0.Final org.hibernate hibernate-validator 5.2.2.Final org.hibernate hibernate-validator-annotation-processor 5.2.2.Final @Valid를 사용하기 위하여 스프링 컨테이너에 빈 등록 모델클래스에 어노테이션 기반의 검증 코드 작성 컨트롤러단에 적용@ModelAttribute 로 받은 모델 객체가 @Valid 적용이 되어 있다면 수행BindingResult 타입으로 성공 실패 여부 판단
1. 우선 구글 계정 가입을 한다. 2. https://www.google.com/settings/u/1/security/lesssecureapps 이곳에 가서 보안 수준을 사용으로 한다. 3. spring에서 메일 관련 라이브러리를 pom.xml에 의존성 주입 - javax.mail mail - org.springframework.integration spring-integration-mail 4. 스프링 컨테이너인 root-context.xml에 관련 빈을 정의한다. helpMailSendableJavaMailSenderImpl을 주입받고 실제로 메일을 보내는 일을 담당하는 사용자 정의 인터페이스 JavaMailSenderImpl메일을 보내기 위하여 여러가지 값을 설정, 제공하는 인스턴스 smtp.g..
sitemesh는 레이아웃을 꾸며주는 기술이다. 웹페이지들을 보면 어떤 화면을 출력하던지 항상 같은 위치에 존재하는 태그들을 볼 수 있다.(메뉴나 하단내용 등) 같은 기술로는 tiles나 velocity 등이 있지만 이것들과 sitemesh는 동작하는 구성이 다르다. Tiles나 Velocity 방식이 전체 페이지 중 내용 부분에 해당하는 코드만을 생성하는 방식이라면, SiteMesh는 완전한 HTML 페이지를 생성한 뒤 Decorator라는 패턴을 사용하여 데코레이터HTML 페이지에 레이아웃을 입히는 방식이다. sitemesh 설정 1. 스프링 메이븐의 라이브러리를 디펜던시한다.(pom.xml) (그룹아이디 : opensymphony, 아이팩트아이디 : sitemesh) 2. sitemesh.xml과 ..
1. 네이버에서 제공하는 지도를 사용하기 위해서는 네이버 개발자 센터에서 키를 발급받아야한다.(http://developer.naver.com) 들어가서 키 발급/관리 메뉴에서 지도 api키를 발급한다. 테스트할 서버의 url이나 로컬url(포트포함)을 써주고 키발급을 하면된다. 2. 지도를 보기 위해서 기본 골격을 jsp페이지에 넣어준다.(여러가지 기능을 테스트 해보고 싶으면 네이버 개발자 api참고) - 자바스크립트코드 Colored By Color Scripter™ 1 Colored By Color Scripter™ 1 2 3 4 5 6 7 8 9 10 window.onload = function(){ new nhn.api.map.Map('map',{ point : mapPoint, zoom:10,..
구글차트로 방문자수를 일주일 단위로 집계하려고 하다 보니 매주 월요일 0시가 되면 방문자수가 카운트되는 DB가 초기화가 되게 해야되서 스케쥴러를 찾다가 쿼츠 스케쥴러를 찾았다. (사실 스프링에 @scheduled 라는 스케쥴러를 지원하는 어노테이션이 있지만 나중에야 알았다....-_-) 1. Maven에 의존 라이브러리 주입(pom.xml) 그룹아이디 : org.quartz-scheduler 아티팩트아이디 : quartz 2. QuartzJobBean추상클래스를 상속받아 executeInternal()메서드를 오버라이딩 하는 클래스를 작성한다. 이 메서드에 스케쥴러가 돌아가는 시점에 수행 할 코드(작업)를 정의한다. BoardService라는 객체는 sql을 수행하는 dao단을 호출하는 비즈니스 로직 클..
contentType이란 프로퍼티를 명시하여야 한다.
@RequestMapping(value={"/paramTest.choon","/param.choon"},params="account=admin",method=RequestMethod.GET) public ModelAndView springParam(HttpServletRequest req, HttpServletResponse res){ ModelAndView mav = new ModelAndView(); mav.setViewName("stringTest"); return mav; } 첫번 째는 ModelAndView 리턴방식이다. ModelAndview를 사용하면 setViewName()으로 찾아갈 뷰이름을 지정하고, addObject()로 뷰페이지에 넘길 파라미터를 셋팅한다. @RequestMappin..