본문 바로가기

spring/Web

controller를 직접만들어서 운영하기

servlet 설정파일에서 설정한 controller를 직접만들어서 운영


============================================================================================================================================

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

  <display-name>s_mvc2</display-name>

  <servlet>

  <servlet-name>test</servlet-name> <!-- test-servlet.xml 파일을 찾게된다. -->

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>test</servlet-name>

  <url-pattern>*.do</url-pattern>

  </servlet-mapping>

</web-app>


============================================================================================================================================

test-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.xsd">

<!-- HandlerMapping : BeanNameUrlHandlerMapping (생략가능)-->

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<!-- Controller : 요번에는 controller를 직접만들어서 운영해보장!!(전에는 스프링에서 제공해주는 ParameterizableViewController class로 운영함 -->

<bean name="/index.do" class="pack.TestController"/> <!--  -->

<!-- 

TestController class에서 

org.springframework.web.servlet.mvc.Controller를 구현(implement)하여 

handleRequest 메소드를 오버라이딩해주고 뷰 파일명을 리턴해줌 

-->

<!-- ViewResolver : InternalResourceViewResolver -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/"/> <!-- controller 리턴값의 앞부분에 붙는 문자열 : 결국 경로라는 이야기 -->

<property name="suffix" value=".jsp"/> <!-- controller 리턴값의 뒷부분에 붙는 문자열 : 결국 확장자라는 이야기 -->

</bean>


</beans>


============================================================================================================================================

Controller


package pack;


import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;


public class TestController implements Controller{

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

System.out.println("TestController 수행");

//return new ModelAndView("list"); //test-servlet.xml에서 InternalResourceViewResolver bean의 설정값에 의해 list.jsp파일을 찾아서 뷰해줌

ModelAndView view = new ModelAndView();

view.setViewName("list");

view.addObject("say", "모델 수행 결과 값"); //request.setAttribute("say", "모델 수행 결과 값");

return view;

}

}