Spring 프로젝트 설정

개발 Programming/SPRING|2009. 11. 9. 14:21
Spring 설정 파일

(Application project)
-path : src (Web project)
-path : WebContent> WEB-INF



스프링 MVC의 클라이언트 요청 처리 과정






- 웹 프로젝트시 예시

스프링 Hello World 

1. DispatchServlet 설정 및 스프링 컨텍스트 설정 web.xml

웹 프로젝트 설정 파일인 web.xml파일에 요청을 전달 받을 DispatcherServlet과
공통으로 사용할 어플리케이션 컨텍스트 설정

 


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>SpringTest</display-name>
 
 <!-- 서블릿이름은 매핑이름과 동일해야하며 –servlet.xml 서블릿 설정 파일 이름과 동일해야함. -->
 <servlet>
  <servlet-name>springTest</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 </servlet>
 
 
 <!-- 모든 요청을  *.do로 처리. 즉! 하나의 서블릿으로 모든 요청 처리! -->
 <servlet-mapping>
  <servlet-name>springTest</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 
 
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
</web-app>





2. HandlerMapping 설정 파일에 설정 추가 (WebContent> WEB-INF) springTest-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-2.5.xsd">

 <!-- the application context definition for the springapp DispatcherServlet -->
 
 <!-- 핸들러 맵핑 하는 부분으로 URL과 일치하는 이름을 갖는 컨트롤러를 사용 하므로,
 URL과 일치하는 이름을 갖는 컨트롤러를 사용하므로 ,
 http://localhost8089[/servletContextPath]/hello.do으로 요청이 들어올 경우
 이름이 “hello.do”인 컨트롤러를 이용하여 클라이언트의 요청을 처리하게 됨. -->
 <bean id="handlerMapping"
 class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 <!-- DI 설정 -->
 <bean name="/hello.do" class="springTest.web.HelloController"/>
 <!-- Resolver 설정 -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <!--  자동으로 되는 부분이기 때문에 잘 사용 안함! -->
  <property name="prefix" value="/view/" />
  <property name="suffix" value=".jsp"/>
 </bean>
 
 
</beans>







3. 컨트롤러 구현 및 설정



 
package springTest.web;

import java.util.Calendar;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class HelloController extends AbstractController {

 //컨트롤러는 처리 결과를 ModelAndView에 담아 DispatcherServlet에 전달함. (data,view)
 @Override
 protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
   HttpServletResponse arg1) throws Exception {
  ModelAndView mav = new ModelAndView();
  mav.setViewName("hello");
  mav.addObject("greeting",getGreeting());
    
  return mav;
 }
 private String getGreeting(){
  int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
  
  if(hour >=6 && hour<=10){
   return "종은 아침 압니다";
   
  }else if (hour>=11 && hour<=15){
   return "점심 식사 하셨나요?";
   
  }
  return "안녕하세요";
 }

}






4. 뷰 생성
 

 

<?xml version="1.0" encoding="EUC-KR" ?>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Insert title here</title>
</head>
<body>
인사말 : <strong>${greeting}</strong>
</body>
</html><SPAN id=tx_marker_caret></SPAN>



'개발 Programming > SPRING' 카테고리의 다른 글

AOP  (0) 2010.05.03
스프링 데이터소스 연결  (0) 2009.11.10
스프링 프레임워크 소개( Spring Framwork Introduce)  (0) 2009.11.05
spring_dwr  (0) 2009.11.05
spring_tile_  (0) 2009.11.05

댓글()