如何在一个web.xml文件中创建2个servlet?

时间:2014-10-30 15:08:20

标签: xml spring spring-mvc servlets web

这是我的web.xml文件中一个servlet的代码:

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

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

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

        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>

        <welcome-file-list>
            <welcome-file>redirect.jsp</welcome-file>
        </welcome-file-list>

我可以复制并粘贴和更改某些值并再次使用吗?

第二个问题(可以帮助第一个问题)

目前,当我使用此url localhost / HelloSpring在glassfish中部署我的应用程序时 我得到了404.但是,当我在最后添加/ home时:localhost / HelloSpring / home 它会转到正确的页面。我也可以在末尾添加/索引localhost / HelloSpring / index,这也正常工作。那么如何从启动时加载localhost / HelloSpring / home而不必手动输入,从而避免404错误?

注意:在servlet映射中将url模式从/更改为/ home时,修复了/ home问题,但意味着/ index将无法正常工作

总而言之,如何从部署中加载localhost / home,然后在url / index中键入index并显示正确的页面?

P.S。 stackoverflow不会让我输入我的完整地址链接所以假设我说的localhost它包含端口:8080后直接

2 个答案:

答案 0 :(得分:0)

您的servlet无法自动识别主页。您必须通过使用重定向页面(您已将其包含在welcome-file-list中)告诉它,或者将提供主页的控制器映射到根目录:

@RequestMapping(value = { "/", "/home" }, method = RequestMethod.GET)

答案 1 :(得分:0)

对于第一个问题,您当然可以在web.xml文件中声明任意数量的servlet,但我真的无法确定用于声明多个DispatcherServlet的用例。

您的第二个问题似乎与在Spring MVC应用程序中命中根URL的问题有关。我前段时间尝试过发布我在问题上发现的内容:Match for root url and serving of static resources