0

我有一个 Spring 应用程序,其 ContextFactoryBean 定义如下:

<bean id="adServerContext" class="com.intentmedia.springframework.jetty.ContextFactoryBean">
    <property name="contextPath" value="/initalpath"/>
    <property name="filterMappings">
        <map>
            <entry key="/*">
                <list>
                    <ref bean="filter1"/>
                    <ref bean="filter2"/>
                </list>
            </entry>
            <entry key="/myServlet">
                <list>
                    <ref bean="filter1"/>
                    <ref bean="filter2"/>
                </list>
            </entry>
            ....
    </property>
    <property name="servletMappings">
        <map>
            <entry key="/myServlet" value-ref="myServlet"/>
            ....
        </map>
    </property>
</bean>

所以我的 servlet 位于http://example.com/initialpath/myServlet。我想定义一个同义词路由,这样我就可以访问http://example.com/optionalpath/myServlet并引用同一个 servlet。我可以在不复制整个上下文代码块的情况下定义多个路径吗?

我正在使用 Spring 2.5.6。

4

1 回答 1

0

Servlet 规范允许这样的配置:

http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getContextPath()

一个 servlet 容器可能通过多个上下文路径匹配一个上下文。在这种情况下,HttpServletRequest.getContextPath() 将返回请求使用的实际上下文路径,它可能与此方法返回的路径不同。此方法返回的上下文路径应被视为应用程序的主要或首选上下文路径。

我也很确定 Jetty 会允许这样的配置。所以问题是你的框架是否可以支持……但我怀疑这里的任何人都会知道专有工厂 bean 在做什么。

于 2013-10-07T20:40:02.707 回答