* 결과보기

HelloController.hello()
greeting() : 이순신님 환영합니다.

 

 

 

 

 

 


 

Posted by 조은성
,

* Annotation기반 Controller

1. @Controller
- 컨트롤러 클래스 표시

2. @RequestMapping
- 요청 URL 등록, 처리할 요청방식 지정
- 구문
- RequestMapping("오청 url")
- RequestMapping(value="요청URL" method=요청방식)
- Controller 클래스에 등록
- Controller 메소드에 등록

3. Controller 클래스 스프링 설정파일에 등록
- <bean>을 이용해 등록
- 자동 스캔
- <context:component-scan base-package="package"/>

4. Controller 메소드에서 요청파라미터 처리
- DTO(Command) 이용
- 요청파라미터와 매칭되는 이름의 property를 가진 DTO
- 요청파라미터 name을 이용한 매개 변수 사용
- 같은 이름으로 여러 개 값이 넘어올 경우 String[] 사용
- @RequestParam Annotation 사용
- 속성
- value : 요청파라미터 이름 설정
- required : 핑수 여부. 안넘어오면 400 오류 발생. 기본 : true
- defaultValue : 값이 안넘어 올 경우 설정할 기본 값

5. Controller 메소드 이용가능 매개변수 타입
- HttpServletRequest
- HttpServletResponse
- HttpSession
- 요청파라미터 연결 변수
- 요청파라미터를 설정할 DTO 객체
- @CookieValue 적용 매개변수 - 쿠키 값 매핑
- @CookieValue(value="name", required=false)
- Map, Model, ModelMap
- View에 전달할 모델 데이터 설정시 사용

6. Controller 메소드 설정 가능 return type
- Controller 메소드 설정 가능 return type
- ModelAndView : View 정보와 응답 데이터 설정
- View에 전달할 값 설정
- Map
- Model
- View는 요청 URL로 결정됨
- String : View의 이름 리턴
- View 객체
- void
- Controller 메소드 내에서 응답을 직접처리 시 사용

 

Posted by 조은성
,

 

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

 

 

 

'프로그래밍 > Spring MVC' 카테고리의 다른 글

SpringMVC annotation[실습]  (0) 2012.06.27
Annotation기반 Controller  (0) 2012.06.27
SpringMVS abstract[실습] - SrpingMVC_01_abstract  (0) 2012.06.27
ViewRsolver  (0) 2012.06.27
ModelAndView  (0) 2012.06.27
Posted by 조은성
,

 

 

 

 

 

 

 

* 결과

Controller로 부터 메세지 : 안녕하세요.. 점심 맛나게 드립숑..123

Posted by 조은성
,

* ViewRsolver

1. Controller가 넘긴 view이름을 통해 알맞은 view를 찾는 역할
 ① Controller는 ModelAndView 객체에 응답할 view 이름을 넣어 return
 ② DispatcherServlet은 viewResolver에게 응답할 view를 요청한다.
 ③ ViewResolver는 view 이름을 이용해 알 맞는 view 객체를 찾아 DispatcherServlet에게 전달.

2. ViewResolver - Spring 설정 파일에 등록한다.

3. ViewResolver

 - InternalResourceViewResolver
   - JSP나 HTML등의 내부 자원을 이용해 뷰 생성
   - InternalResourceView를 기본 뷰로 사용

 - BeanNameViewResolver
   - 뷰의 이름과 동일한 이름을 가지는 빈을 View로 사용
   - 사용자 정의 View 객체를 사용하는 경우 주로 사용

 - XmlViewResolver
   - BeanNameViewResolver와 동일 하나 뷰객체를 Xml파일에 설정해 놓는 것이 차이.
   - Bean 등록시 location 프라퍼티에 xml 파일을 지정

Posted by 조은성
,

* ModelAndView

1. Controller 처리 결과 후 응답할 view와 view에 전달할 값을 저장.

2. 생성자
 - ModelAndView(String viewName) : 응답할 view 설정
 - ModelAndView(String viewName, Map values) : 응답할 view와 view로 전달할 값들을 저장한 Map 객체
 - ModelAndView(String viewName, String name, Object value) : 응답할 view이름, view로 넘길 객체의 name-value

3. 주요 메소드
 - setViewName(String view) : 응답할 view이름을 설정
 - addObject(String name, Obejct value) : view에 전달할 값을 설정
   - requestScope에 설정됨
 - addAllObjects(Map values) : view에 전달할 값을 Map에 name-value로 저장하여 한번에 설정 - requestScope에 설정됨

4. Redirect 방식 전송
 - view이름에 redirect : 접두어 붙인다.
   ex) mv.setViewName("redirect:/welcome.html");

 

Posted by 조은성
,

* Controller 작성

1. Controller 종류
 - Controller (interface)
 - AbstractController
 - MultiActionController

2. 위의 interface/class를 상속하여 Controller 작성한다.

* AbstractController

1. 가장 기본이 되는 Controller
2. 작성
 - AbstractController 상속한다.
 - public ModelAndView handleRequestInternal(HttpServletReqiest request, HttpServletResponse response) throws Exception
오버라이딩 하여 코드 구현
 - ModelAndView에 view가 사용할 객체와 view에 대한 id값을 넣어 생성 후 return

 

* MultiActionController

1. 하나의 Controller에서 여러 개의 요청 처리 지원
 - 연관 된 request를 하나의 controller로 묶을 경우 사용,

2. 작성
 - MultiActionController 상속
 - client의 요청을 처리할 메소드 구현
 public[ModelAndView|Map|void] 메소드이름(
 HttpServletRequest req, HttpServletResponse res[HttpSession|Command])[throws Exception]{}

 - return type : ModelAndView, Map, void 중 하나
 - argument :
   1번 - HttpServletRequest
   2번 - HttpServletResponse
   3번 - 선택적이며  HttpSession 또는 Command or 3번 HttpSession
   4번 - Command

3. MethodNameResolver 등록
 - 역할 : 어떤 메소드가 클라이언트의 요청을 처리할 것인지 결정
 - Spring 설정파일에 <bean>으로 등록
 - controller에서는 property로 주입 받는다.
 - 종류
   - parameterMethodNameResolver : parameter로 메소드 이름 전송
   - InternalPathMethodNameResolver : url 마지막 경로 메소드 이름으로 사용
   - PropertiesMethodNameResolver : URL과 메소드 이름 mapping을 property로 설정

 

'프로그래밍 > Spring MVC' 카테고리의 다른 글

ViewRsolver  (0) 2012.06.27
ModelAndView  (0) 2012.06.27
HandlerMapping  (0) 2012.06.26
DispatcherServlet 설정과 ApplicationContext  (0) 2012.06.26
Spring MVC 흐름  (0) 2012.06.26
Posted by 조은성
,

* HandlerMapping

1. Client요청을 처리할 Controller를 연결을 설정
2. 다양한 HandlerMapping클래스를 Springframework가 제공 하며 Spring 설정파일에 <bean> 으로 등록하여 설정한다.
3. BeanNameUrlHandlerMapping
 - bean의 이름과 url을 mapping
4. SimpleUrlHandlerMapping
 - url pattern들을 properties로 등록해 처리
5. DefaultAnnotationHandlerMapping
 - Annotation기반 Controller 처리

 

Posted by 조은성
,

* DispatcherServlet 설정과 ApplicationContext

1. DispatcherServlet 설정
 - web.xml에 등록
 - 스프링 설정파일 : "<servlet-name>-servlet.xml" 이고 WEB-INF\아래 추가한다.
 - <url-pattern>은 DispatcherServlet이 처리하는 URL 매핑 패턴을 정의

2. Spring Container는 설정파일의 내용을 읽어 ApplicationContext 객체를 생성한다.
3. 설정 파일명 : dispatcher-servlet.xml - MVC 구성 요소(HandlerMapping, Controller, ViewResolver, View)설정과 bean, aop설정들을 한다.
4. Spring 설정파일 등록하기
 - <servlet>의 하위태그인 <init-param>에 contextConfigLocation 이름으로 등록
 - 경로는 Application Root부터 절대경로로 표시
 - 여러 개의 경우, 또는 공백으로 구분


'프로그래밍 > Spring MVC' 카테고리의 다른 글

Controller 작성(AbstractController, MultiActionController)  (0) 2012.06.26
HandlerMapping  (0) 2012.06.26
Spring MVC 흐름  (0) 2012.06.26
Spring MVC 구성 주요 컴포넌트  (0) 2012.06.26
MVC패턴이란?  (0) 2012.06.26
Posted by 조은성
,
* Spring MVC 흐름

1. Spring MVC

- MVC 패턴 기반 웹 개발 프레임워크

2. 요청 처리 순서
 
① DispatcherServlet이 요청을 수신
  - 단일 Front Controller serlvet
  - 요청을 수신하여 처리를 다른 컴포넌트에 위임
  - 어느 컨트롤러에 요청을 전송할지 결정
② DispatcherServlet은 HandlerMapping에 어느 컨트롤러를 사용할 것인지 문의
③ DispatcherServlet은 요청을 컨트롤러에게 전송하고 컨트롤러는 요청을 처리한 후 결과 리턴
  - 비지니스 로직 수행 후 결과 정보(Model)가 생성되어 JSP아 같은 뷰에서 사용됨
④ ModelAndView를 생성하여 DispatcherServlet에 리턴
⑤ ModelAndView 정보를 바탕으로 ViewResolver 에게 View를 요청
⑥ View는 결과 정보를 사용하여 화면을 표현함

3. Spring MVC 구현 Step

- Spring MVC를 이용한 어플리케이션 작성 스텝
① web.xml에 DispacherServlet 등록 및 Spring설정 파일 등록
② Spring 설정파일에 HandlerMapping 설정
③ 컨트롤러 구현 및 Spring 설정파일에 등록
④ 컨트롤러와 JSP의 연결 위해 View Resolver Spring설정 파일에 등록
⑤ JSP(or View작성 후 설정) 코드 작성

Posted by 조은성
,