스마트웹앱콘텐츠전문가/프레임워크

[4.28]스프링 프레임워크(MVC2:메시지.커맨드 객체 검증, 세션)

9D4U 2016. 4. 28. 14:20
728x90
반응형

[메시지를 출력하는 방법]




[메시지 파일 작성]



[메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정]


스프링은 로케일(지역)에 상관없이 일관된 방법으로 문자열(메시지)을 관리할 수 있는 MessageSource  인터페이스를 정의하고 있다.


[JSP 코드에서 <spring:message> 태그를 사용해서 메시지를 출력]


================================

[커맨드 객체의 값을 검증하는 방법]

스프링MVC에서 커맨드 객체의 값이 올바른지 검사하려면 Validator, Errors 인터페이스를 사용


-커맨드 개체를 검증하고 결과를 에러코드로 저장

-JSP에서 에러 코드로부터 메시지를 출력




정규식 표현

http://breath91.tistory.com/entry/Java-정규표현식을-이용한-Pattern-Match-및-검증방법-Validation



[필수항목 유효성]



[이메일 형식 유효성]



[이메일 중복 유효성]




[<form:erros>태그의 element속성]




================================

[로그인 예제:세션을 사용하는 방법]


로그인 성공 후 인증 상태 정보를 세션에 보관할 때 사용할 클래스 : AuthInfo




이메일과 비밀번호가 일치하는지 확인하고 일치할 경우 AuthInfo 객체를 생성해주는 AuthService 클래스




AuthService를 이용해서 로그인 요청을 처리하는 LoginController 컨트롤러 클래스 + 폼 값이 올바른지 검사하는 검사하기 위한 LoginCommandValidator 클래스







폼에 입력한 값을 전달받기 위한 LoginCommand


뷰 작성 : 로그인 폼, 로그인 성공 결과





컨트롤러와 서비스를 스프링 빈으로 등록하는 것-> 설정파일





============

결과




[db연동포함]



war파일 : 

sp4-chap11.war


================================

스프링 Macher 메서드

http://enterkey.tistory.com/353



=========================================================

스프링MVC의 컨트롤러에서 HttpSession을 사용하려면 두 가지 방법 중 한 가지를 사용하면 된다.

-@RequestMapping 적용 메서드에 HttpSession 파라미터를 추가(예제는 이 방법을 사용)

-@RequestMapping 적용 메서드에 HttpServletRequest 파라미터를 추가하고, 이HttpServletRequest를 이용해서 HttpSession를 구한다.


1.로그인컨트롤러에 인증 후에 인증 정보를 세션에 담도록 submit() 메서드의 코드를 수정 : 로그인에 성공하면

세션의 "authInfo"속성에 인증 정보 객체(authInfo)를 저장하도록



[첫번째 방법]




[두번째 방법]


2.로그아웃을 위한 컨트롤러 클래스 : 세션을 제거





3.로그아웃 컨트롤러를 스프링 설정에 빈으로 추가




4.메인.jsp 수정




===========================

결과




===========================================================


[비밀번호 변경]








=======================================================

[인터셉터 사용하기]

로그인하지 않고, uri주소에 비밀번호변경폼주소를 직접입력하면 비밀변호 변경폼이 출력되는 것을 방지



[HandlerInterceptor 구현 클래스]



[구현한 HandlerInterceptor를 어디에 적용할지 설정 ]


[결과 : 로그인하지 않고 비밀번호 변경 폼을 입력하면 로그인 화면으로 이동함]

=========================

war 파일 :

sp4-chap11.war

728x90