2015년 7월 23일 목요일

신입SW인력을 위한 실전 자바(Java) 스프링(Spring) 동영상과정 11_MVC 기초

이 게시물은
http://www.wiz.center/241

해당 링크를 청취하고 작성한 글입니다.

본인 이해도 확인을 위해서 작성한 것이니
스프링에 대해서 알고 있다면 쑥 훝어보고 끝내시고

좀 깊게 알고 싶다면 위의 링크부터 시작해서
총 30개 강의로 이루어진 스프링 과정을 청취하세요

1. SpringMVC 개요
   ①사용자 요청 -> ②DispatcherServlet
      -> ③HandlerMapping (Framework 부분)
      -> ③HadndlerAdapter (Framework 부분)
      -> ③Controller ☆<사용자구현>
      -> ③ViewResolver (Framework 부분)
      -> ③④View(JSP) ☆<사용자 구현>

  Model : (DispatcherServlet<-->Controller) ☆ 사용자 구현
        사용자가 작성하는건 View, Controller, Model 이다.
        Model은 DispatcherServlet 및 Controller 부분을
        걸쳐 있음.

  MVC에 대한 설명은 워낙 많기 때문에
    그림 예제는 검색이나 아래 링크를 확인.
    http://javacan.tistory.com/120


2. Spring MVC 구조(STS IDE를 사용시)


사용자 요청 ->
 1) web.xml 에서 모든 요청에 대해서
         (servlet-pattern이 / 로 설정되었기 때문에)
         DispatcherServlet 으로 보내도록 설정되어 있음


 appServlet
 org.springframework.web.servlet.DispatcherServlet
 
  contextConfigLocation
  /WEB-INF/spring/appServlet/servlet-context.xml
 
 1

 

 appServlet
 /



 2) DispatcherServlet 에서는 뭘 하는지 모르지만
     Framework 단이라 자동으로 진행됨  ->

 3) Controller로 보내짐 Controller 에서는
     Java 파일로 작업 기본예제에서는 모든 요청에 대해
     home 으로 보내도록 명시됨.

 @RequestMapping(value = "/", method = RequestMethod.GET)
 public String home(Locale locale, Model model) {
  logger.info("Welcome home! The client locale is {}.", locale);
  Date date = new Date();
  DateFormat dateFormat
                         = DateFormat.getDateTimeInstance
                            (DateFormat.LONG, DateFormat.LONG, locale);
  
  String formattedDate = dateFormat.format(date);
  
  model.addAttribute("serverTime", formattedDate );
  
  return "home";
 }


  ※ 어디 에 Controller 가 있는지는
       appServlet/sevlet-context라는 bean설정 파일에
       패키지까지를 명시해놓아야 함
<context:component-scan base-package="com.ex.test" />


 4) ViewResolver 셋팅을 통해 주소가 맵핑되는데
      파일은 appServlet/sevlet-context 에 셋팅되어 있고
      여기서는 controller 에서 리턴되는 값 앞에 /WEB-INF/views/
      를 붙이고 뒤에는 .jsp 를 붙이도록 명시되어 있다.

 
  
  
 


ps. 패키지명 정할때 앞의 2개 단어 뒤에것은 어플리케이션 명이 된다.
  예를 들어 기본 패키지를 com.ex.test.java.spring 로 잡을때
     test.java.spring 이 어플리케이션 명이된다.
  이에 대한 확인은
   server/tomcat~~/server.xml  가장 하단부쯤에 해당 서버로
     context docBase 가 쫙 보이는데 해당 프로젝트는
     패키지를 com.ex.test 로 잡았기 때문에 앞의 2개 단어를 뺀
     test 가 어플리케이션 명(=path)이 된걸 확인할 수 있다.


......
<Context docBase="testSpring" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:testSpring"/></Host>
.....

jsp 파일에서 실행시 404가 뜰텐데 방금 확인한 주소로 다시
   적어서 보내면 테스트 페이지가 뜨는걸 확인 할 수 있다.

http://localhost:8181/test/
  <test는 패스명과 동일>






댓글 없음:

댓글 쓰기