1) (Dynamic Web Project) SpringMVC 프로젝트 생성
2) spring에 관련된 라이브러리를 넣어준다.
3) web.xml에 등록(컨트롤러 역할을 한다고 설정)한다.
- 형식) test-servlet.xml파일===>dispatcher-servlet.xml파일
- XXX-servlet.xml파일로 만들어진다.(web.xml과 같은 폴더에 저장)
ex) action -> action-servlet.xml파일을 생성한다.
- 경로 WEB-INF > test-servlet.xml생성(별칭-servlet.xml)
형식) test-servlet.xml파일===>dispatcher-servlet.xml파일
XXX-servlet.xml파일로 만들어진다.(web.xml과 같은 폴더에 저장)
(2)요청에 따른 컨트롤러를 문의
<bean id="defaultHendlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
(3)요청명령어에 해당하는 컨트롤러를 이용(처리)
<bean name="/요청명령어.do" class="패키지명...처리할 컨트롤러 클래스명" />
<bean name="/index.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="list"></property> </bean> <bean name="/good/index.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="list2"></property> </bean>
ModelAndView
: 요청을 처리하고 나서 ModelAndView 객체를 전달하여 화면에 보여주는 데이터 정보가 같이 저장된다.(이동할 페이지를 지정할 수 있고, 화면에 데이터 출력이 가능하다.)
(4)viewResolver(위치)prefix, 이동할페이지의 확장자를 지정(suffix)
: 컨트롤러의 처리결과를 생설할 뷰를 결정한다.(경로와 파일명을 이용)<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/" /> <property name="suffix" value=".jsp" /> </bean>
prefix : 요청을 받아서 화면에 출력시켜주는 파일의 위치를 지정해주는 멤버변수 src/main/webapp (/) <- list.jsp, list2.jsp
=> 경로(/)
suffix : 확장자명(.jsp)
모델2 -> 요청명령어 -> commandPro.propreties에 등록 (/list.do=action.ListAction)
- 모델2 액션클래스->서블릿역할
- CommandAction 상속->요청을 받으면 기능을 실행하고 나서 페이지 이동
ex) 글쓰기,글수정,,,- 일관성 유지->메서드를 통일(추상메서드로 만들어서 상속)
- Controller 인터페이스
< 모델2 -> 스프링 >
- CommandAction -> Controller
- Action -> ModelAndView
handleRequest()
//request.setAttribute("greeting","스프링 세상!!");과 mav.addObject("greeting","스프링 세상!!");은 같다.
요청을 받아서 처리해주는 컨트롤러 등록
1. 각각의 요청에 따른 요청 환경설정 파일을 각각 따로 작성한다.
요청명령어를 처리해주는 서블릿 별칭 => 환경설정파일을 불러오는 구문, 메모리 2번째
- contextConfigLocation매개변수로 지정
value->불러올 xml파일의 종류(경로포함)->여러줄로 표시
,,, 공백, 줄바꿈 ->각각의 불러올 파일을 구분할 수 있다.<servlet> <servlet-name>hello</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/hello-servlet.xml /WEB-INF/world-servlet.xml </param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>world</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
- load-on-startup는 메모리에 불러올리는 순서이다.
- 요청처리하는 hello가 메모리를 2번째로 실행된다.
(mapping의 hello를 지정하면 가장 나중에 메모리에 올라감)<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>