티스토리 뷰

728x90
[web.xml]

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">

<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-app>


<servlet-name>은 아무거나 상관없다
<servlet>과 <servlet-mapping>을 같은 이름으로 맞춰주기만 하면 된다

xxxx-servlet.xml을 파일을 이용해서 다시 설정을 하는 것이 있는데 이때는
해당 <servlet-name>과 같은 이름으로 만들어줘야 한다

위와 같이 dispatcher라고 했으면 dispatcher-servlet.xml이 되어야 한다


[dispatcher-servlet.xml]

<?xml version="1.0" encoding="UTF-8"?>

<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean
id="helloController"
class="SpringTest.HelloController">
                <!-- /*.do라고 접속했을때 연결될 클래스 --> 
</bean>
<bean
id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="prefix"
value="/WEB-INF/view/" />
<property
name="suffix"
value=".jsp" />
                <!-- HelloController에서 리턴된 문자열로 /WEB-INF/view 폴더 안의 jsp 파일 중에서 골라 실행시킴 -->
</bean>
</beans>

여기서 MVC 구성 요소인 Controller, ViewResolver, View 등을 설정


[HelloController.java]

package SpringTest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

@RequestMapping("/hello.do")
public ModelAndView hello() {
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");
mav.addObject("call", getCall());
return mav;
}
private String getCall() {
return "퉤";
}
}

@Controller 및 @RequestMapping 어노테이션 적용


[hello.jsp]

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>안녕~</title>
</head>
<body>
넘겨받은 값 : <strong>${call}</strong>
</body>
</html>


EL을 사용해서 값을 넘겨받았다


[실행결과]

 

정리하자면..
1. web.xml에서 
org.springframework.web.servlet.DispatcherServlet 을 실행시키고
2. dispatcher-servlet.xml 설정을 참조해서 Controller와 viewResolver, View를 동작하게 한다

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

[Spring] 파일 업로드  (3) 2011.08.17
[Spring] 파일 다운로드  (2) 2011.08.17
[Spring] DI(Dependency Injection) 패턴  (0) 2011.07.28