|
|||||||||||
스프링 MVC Hello World
스프링 MVC를 이용한 개발과정을 단순하게 설명하며 아래와 같다.
☞클라이언트의 요청을 받을 DispatcherServlet을 web.xml 파일에 설정
<servlet>
<servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> /WEB-INF/web.xml파일에 추가한다. 윗코드에서 *.do로 들어오는 클라이언트의 요청를 DispatcherServlet이 처리하도록 설정 하였다. DispatcherServlet은 WEB-INF/ 디렉터리에 위치한 [서블릿이름]-servlet.xml파일을 스프링 설정파일로 사용한다. 예를 들어, 위코드의 경우 'dispatcherservlet-servlet.xml' 파일을 설정파일로 사용하게 된다. 이파일에서 MVC 구성요소인 Controller, ViewResolver, View등의 빈을 설정하게 된다. ☞클라이언트의 요청을 처리할 컨트롤러를 작성 @Controller
public class Helloworldcontroller { @RequestMapping("/hello.do") public ModelAndView hello(){ ModelAndView mav=new ModelAndView(); mav.setViewName("hello"); mav.addObject("greeting",getGreeting()); //라인 15 return mav; } private String getGreeting(){ int hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY); if(hour>=6&&hour<=10){ return "좋은 아침입니다."; }else if(hour>=12 &&hour<=15){ return "점심 식사는 하셨나요?"; }else if(hour>=18&&hour<=22){ return "좋은 밤 되세요!!"; } return "안녕하세요?"; } } @RequestMapping어노테이션은값으로 지정한 요청경로를 처리할 메서드를 설정한다. 윗 예제의 경우"/hello.do"를 지정했는데, 이경우, http://host:port[/컨텍스트 경로]/hello.do요청을 HelloController클래스의 hello()메서드가 처리하게 된다. hello()메서드안에서ModelAndView 를 생성하고 있는데, ModelAndView 는 컨트롤러의 처리 결과를 보여줄 뷰와 뷰에서 출력할 모델을 지정할 때 사용된다. 윗 경우 사용할 뷰 이름으로"hello"를 지정하였고(라인 15), 모델에 "greeting"이라는 이름으로 String 타입의 값을 추가하였다. ☞ViewResolver를 설정. ViewResolver는 컨트롤러가 전달한 값을 이용해서 응답 화면을 생성할 뷰를 결정한다. public ModelAndView hello(){
ModelAndView mav=new ModelAndView(); mav.setViewName("hello"); mav.addObject("greeting",getGreeting()); //라인 15 return mav; } 여기서 mav.setViewName() 메서드를 이용하여 컨트롤러의 처리결과를 보여줄 뷰이름을 "hello"로 지정하였는데, DispatcherServlet은 이뷰 이름과 매칭되는 뷰 구현체를 찾기 위해 ViewResolver를 사용한다. 스프링 MVC는 JSP, Velocity, FreeMarket등의 뷰구현 기술과의 연동을 지원하는데 , JSP를 뷰기술로 구현할 경우 dispatcher-servlet.xml에 아래와 같이 추가하면 된다. <bean id="viewResolver" 위 코드에서 prefix프로퍼티와 suffix프로퍼티의 값으로 가각"/WEB-INF/view/"와".jsp"를 설정하였는데, 이는 ViewResolver가 "/WEB-INF/view/뷰이름.jsp"를 뷰 jsp로 사용한다는것을 의미한다. 즉 앞의 예에서 Helloworldcontroller는 뷰이름 으로 "hello"를 리턴하므로, 실제로 사용되는 뷰 파일은 "/WEB-INF/view/hello.jsp"파일이 된다. ☞JSP나 Velocity등을 이용하여 뷰 영역의 코드를 작성. WebContent/WEB-INF/view/hello.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%> [모델과 뷰코드의 연결] -컨트롤러 @RequestMapping("/hello.do") public ModelAndViewhello(){ ModelAndView mav=new ModelAndView(); mav.setViewName("hello"); mav.addObject("greeting", getGreeting()); return mav; } -뷰JSP <body> 인사말:<strong>${greeting}</strong> </body> ☞실행
위와 같은 결과가 나왔다면 성공이다.!!
★★★실행 흐름 정리
출처: 웹개발자를 위한 스프링3.0프로그래밍 |
maven + spring + mybatis 설정 | ||
AOP(Aspect Oriented Programming) |