본문 바로가기
develop/spring

spring restful 관련 web.xml, servlet.xml 파일 설정

by hybr1d 2017. 6. 21.


web.xml

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee" 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_2_5.xsd" id="WebApp_ID" version="2.5">

  <display-name>kard</display-name>

  <filter>

    <filter-name>encodingFilter</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>utf-8</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>encodingFilter</filter-name>

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

  </filter-mapping>

  <filter>

    <filter-name>HTMLTagFilter</filter-name>

    <filter-class>egovframework.rte.ptl.mvc.filter.HTMLTagFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>HTMLTagFilter</filter-name>

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

  </filter-mapping>

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath*:egovframework/spring/context-*.xml</param-value>

  </context-param>

  <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

  <listener>

    <listener-class>kr.re.kisti.kard.comm.ContextListener</listener-class>

  </listener>

  <jsp-config>

    <jsp-property-group>

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

      <page-encoding>UTF-8</page-encoding>

      <scripting-invalid>false</scripting-invalid>

      <include-prelude>/WEB-INF/jsp/kisti/comm/cmmn.jsp</include-prelude>

    </jsp-property-group>

  </jsp-config>

  <servlet>

    <servlet-name>action</servlet-name>

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

    <init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>/WEB-INF/config/egovframework/springmvc/dispatcher-*.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>/</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

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

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

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

  </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <login-config>

    <auth-method>BASIC</auth-method>

  </login-config>

  <error-page>

    <exception-type>java.lang.Throwable</exception-type>

    <location>/common/error.jsp</location>

  </error-page>

  <error-page>

    <error-code>404</error-code>

    <location>/common/Error404.jsp</location>

  </error-page>

  <error-page>

    <error-code>500</error-code>

    <location>/common/Error500.jsp</location>

  </error-page>

</web-app>


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"

        xmlns:p="http://www.springframework.org/schema/p"

        xmlns:context="http://www.springframework.org/schema/context"        

        xmlns:mvc="http://www.springframework.org/schema/mvc"

        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd                

                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd

                http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">

    


    <context:component-scan base-package="kr.re.kisti;egovframework">

        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>

        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>

    </context:component-scan>


    <!-- request mapping handler -->

    <bean class="egovframework.rte.ptl.mvc.bind.annotation.EgovRequestMappingHandlerAdapter">

<property name="customArgumentResolvers">

<list>

<bean class="egovframework.rte.ptl.mvc.bind.AnnotationCommandMapArgumentResolver" />

</list>

</property>

</bean>

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">

        <property name="webBindingInitializer">

            <bean class="egovframework.example.cmmn.web.EgovBindingInitializer"/>

        </property>

    </bean>

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">

        <property name="interceptors">

            <list>

                <ref bean="localeChangeInterceptor" />

            </list>

        </property>

    </bean>

    

    

  <!-- siyon add 20161008 start    -->    

  <!-- 건들지 마세요~~!!!  -->

<mvc:interceptors>

<!-- <bean class="kr.re.kisti.kard.comm.interceptor.IpObtainInterceptor" /> -->

<mvc:interceptor>

<mvc:mapping path="/**/*.do" />

<mvc:exclude-mapping path="/**/*.json" />

<mvc:exclude-mapping path="/main/**" />

<mvc:exclude-mapping path="/mber/**" />

<mvc:exclude-mapping path="/comm/comm101P.do" />

<mvc:exclude-mapping path="/comm/comm102P.do" />

<mvc:exclude-mapping path="/comm/comm109P.do" />

<mvc:exclude-mapping path="/comm/selectMsHorgList.do" />

<mvc:exclude-mapping path="/comm/fileDownload.do" />

<mvc:exclude-mapping path="/comm/registEmail.do" />

<mvc:exclude-mapping path="/comm/getAddrApi.do" />

<mvc:exclude-mapping path="/comm/downloadP.do" />

<mvc:exclude-mapping path="/rsch/popup/directPubDetail.do" />

<mvc:exclude-mapping path="/mylb/docViewReq.do" />

<!-- <mvc:exclude-mapping path="/rsch/**" /> -->

<!-- <mvc:exclude-mapping path="/mylb/**" /> -->

<!-- <mvc:exclude-mapping path="/jrnl/**" /> -->

<!-- <mvc:exclude-mapping path="/topc/**" /> -->

<!-- <mvc:exclude-mapping path="/srch/**" /> -->

<!-- <mvc:exclude-mapping path="/inst/**" />  -->

<!-- <mvc:exclude-mapping path="/comm/**" /> -->

<bean class="kr.re.kisti.kard.comm.interceptor.AuthenticInterceptor" />

</mvc:interceptor>

</mvc:interceptors>

  <!-- siyon add 20161008 start -->

      

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">

<property name="order" value="1" />

</bean>

    

    <!-- 쿠키를 이용한 Locale 이용시 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/> -->

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">

        <property name="paramName" value="language" />

    </bean>


    <!-- 파일 다운로드를 위한 리졸버 -->

    <bean id="fileDownloadView" class="kr.re.kisti.kard.comm.service.FileDownloadView" />

  <bean id="fileViewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver">

  <property name="order" value="0" />

</bean>

<!-- return type json 형태로 하기 위한 선언 -->

<bean name="ajaxMainView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />


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

        <property name="defaultErrorView" value="cmmn/egovError"/>

        <property name="exceptionMappings">

            <props>

                <prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>

                <prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>

                <prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop>

                <prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop>

            </props>

        </property>

    </bean>


<!-- view resolver -->

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

<property name="order" value="1" />

<property name="mediaTypes">

<map>

<entry key="do" value="text/html" />

<entry key="json" value="application/json" />

<entry key="jsonp" value="javascript/jsonp" />

</map>

</property>

<property name="viewResolvers">

<list>

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

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />

<property name="prefix" value="/WEB-INF/jsp/kisti/" />

<property name="suffix" value=".jsp" />

<property name="order" value="1" />

</bean>

</list>

</property>

<!--위의 viewResolvers 에 의해 view를 얻지 못했을 경우에 사용되는 view 커스텀 뷰를 통한 json 응답 설정으로 MessageConverter 및 @ResponseBody를 사용하지 않아도 된다.-->

<property name="defaultViews">

<list>

<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />

<bean class="kr.re.kisti.kard.comm.JSONPView" >

<property name="contentType" value="javascript/jsonp"></property>

</bean>

</list>

</property>

</bean>


    <!-- For Pagination Tag -->

    <bean id="imageRenderer" class="kr.re.kisti.kard.comm.CommonImgPaginationRenderer"/>


    <bean id="paginationManager" class="egovframework.rte.ptl.mvc.tags.ui.pagination.DefaultPaginationManager">

        <property name="rendererType">

            <map>

                <entry key="image" value-ref="imageRenderer"/>

            </map>

        </property>

    </bean>

<!-- /For Pagination Tag -->

<!-- File Upload -->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

   <property name="defaultEncoding" value="UTF-8"/>

   <property name="maxUploadSize" value="209715200"/>

</bean>


    <mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/>

    

    <!-- 20170621 restful 관련  mapping 추가 -->

    <mvc:resources mapping="/css/**" location="/css/" />

<mvc:resources mapping="/html/**" location="/html/" />

<mvc:resources mapping="/images/**" location="/images/" />

<mvc:resources mapping="/js/**" location="/js/" />

<!-- 20170621 restful 관련 mapping  추가 -->

</beans>

'develop > spring' 카테고리의 다른 글

spring property 사용  (0) 2016.03.25
프로젝트 설정 - web.xml  (0) 2016.03.25