2013-07-22 34 views
0

假設我有一個Spring MVC應用程序,JPA作爲後端。現在,我們要爲用戶提供簡單的用戶界面來執行一些屬性文件的簡單配置。將其與主Spring應用程序分開是有意義的,因爲某些配置與Spring MVC相關,所以當主UI通過Spring MVC啓動主應用程序時,它將失敗。如何使Spring MVC和普通的JSP在一個應用程序中共存

但是如何在同一個web應用程序中註冊servlet(Spring和普通的JSP)?

<!-- Handles Spring requests --> 
<servlet> 
    <servlet-name>SpringApplication</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/mvc-config.xml</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 


<servlet-mapping> 
    <servlet-name>SpringApplication</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>PlainJSPApplication</servlet-name> <!--Is it ok to separate request to different servlet like this?--> 
    <servlet-class>com.app.plainJSP</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>PlainJSPApplication</servlet-name> 
    <url-pattern>/config</url-pattern> <!--How to handle mapping so not conflict to Spring main application--> 
</servlet-mapping> 

我認爲這是通用於SAME web.xml中的另一個Servlet類註冊,是它好嗎?以及如何處理該請求的URL模式,因爲「/」已被分配給Spring servlet?

任何意見,將不勝感激。

+0

您是否嘗試過該設置?你遇到衝突嗎? – madth3

回答

1

您可以通過映射兩個不同的url模式來分開Spring管理的控制器和您自己的servlet。

對Spring控制器的請求由DispatcherServlet進行管理。基本上,它就是這樣,當你URL映射到它,它會自動被Spring看到一個Servlet,因此將其映射到正確的控制器,視圖等

的web.xml

<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 


    <servlet> 
     <servlet-name>PlainJSPApplication</servlet-name> <!--Is it ok to separate request to different servlet like this?--> 
     <servlet-class>com.app.plainJSP</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>PlainJSPApplication</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
     <url-pattern>*.html</url-pattern> 
     <url-pattern>*.bmk</url-pattern> 
     <!-- other url pattern ... --> 
     <!-- other url pattern ... --> 
     <!-- other url pattern ... --> 
    </servlet-mapping> 

在這裏,所有以.do結尾的請求都將在Spring中看到。其他人則會被你的servlet看到。因此,只要你不損害這個映射,你正常的servlet將優雅地集成在一起。

相關問題