• DispatherServlet : 모든 요청을 받아서(진입점)HandlerMapper에게 요청을 보내 요청을 처리할 수 있는 Controller명과 method명을 얻는일( web.xml에 설정 )
  • HandlerMapper : 요청 받은 x.do를 처리할 수 있는 Controller를 검색하는 일.
  • Controller : web의 요청을 method로 처리하는 일.
  • ViewResolver : Controller에서 반환되는 JSP명을 받아서 prefix와 suffix를 붙여서 JSP가 존재하는지 추적하는 일.

  • 파일 작성 위치
  • Spring MVC구조 / 동작

Controller 작성법

  1. 클래스위에 @Controller annotation을 선언한다.
    @Controller
    public class TestController{

  2. method를 사용하여 web의 요청 하나를 처리한다.
    -method위에 @RequestMapping, @GetMapping, @PostMapping annotation을 선언.

@RequestMapping( value="/요청URI", method=요청방식 )
public String method명( 매개변수,,, ){

return "응답할 JSP명";

}
}

  • POJO( Plain Old Java Object )지원
    특정 외부 기술을 포함하지 않고, 순수하게 자바에서 제공하는 데이터 형(기능)만으로 제작되는 클래스.
    별도의 Container가 존재하지 않아도, 실행 및 데스트를 손쉽게 할 수 있다.(실행 및 테스트의 용이성 향상)

요청처리(Controller)

  • Controller method는 web요청하나를 처리한다.

Get방식 : <a>, <form method="get">, location.href="";

@RequestMapping("/요청URI")
@RequestMapping(value="/요청URI", method=RequestMethod.GET)
@GetMapping("/요청URI") -> spring4.3부터 추가

Post방식 : <form method="post">

@RequestMapping(value="/요청URI", method=RequestMethod.POST)
@GetMapping("/요청URI") -> spring4.3부터 추가
  • GET방식과 POST방식 모두 요청
    @RequestMapping(value="/요청URI", method={RequestMethod.GET, RequestMethod.POST})
  • 응답 JSP
    Controller의 method에서 반환되는 문자열과 ViewResolver의 prefix, suffix가 결합되어 JSP가 찾아진다.
    예) "test"가 반환되면 => WEB-INF/views/test.jsp를 찾는다.
    -요청된 URL과는 관계가 없다.
    -views폴더의 하위폴더를 생성하고 JSP를 생성하면 Controller method에서는 "하위폴더명/jsp명" 으로 반환해야한다.

  • web parameter 받기
    HttpServletRequest, 단일형(String, int,,,), VO 사용하여 입력 값을 받을 수 있다.
  • 단일형으로 web parameter 받기
    String이나 기본형으로 받을 수 있다.
    주의 : HTML Form Control의 name속성과 method의 patameter명이 반드시 같아야한다.

Filter를 사용한 한글 처리

한글처리시 사용
CharacterEncodingFilter
사용법) => DD( Deployment Descriptor ) : web.xml 에 작성.

1.필터등록
 <filter>
   <filter-name>객체명</filter-name>
   <filter-class>org.springframe.web.fileter.CharaterEncodingFilter</filter-class>
    <init-param>
         <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
    </init-param>
 </filter>

2.필터가 동작하는 URL설정
 <filter-mapping>
   <filter-name>객체명</filter-name>
   <url-pattern>/*</url-pattern >
 </filter-mapping>

0개의 댓글