web.xml url-pattern - 同时为更广泛的应用程序提供服务

时间:2012-10-15 15:21:26

标签: vaadin web.xml jnlp url-pattern

我正在学习Vaadin和Java Web开发。 Vaadin建议通过在web.xml中使用com.vaadin.server.VaadinServlet将所有网址重定向到<url-pattern>/*</url-pattern>。 我还想处理一些带有单独servlet的附加URL,例如:

<servlet-mapping>
    <servlet-name>JnlpGenerator</servlet-name>
    <url-pattern>*.jnlp</url-pattern>
</servlet-mapping>

有没有办法实现这一点,而/*具有如此广泛的模式?在我目前的配置中,对例如http://localhost:8080/myapp/applet.jnlp被忽略,因为/*接管并启动Vaadin应用程序。

我会感激一些帮助: - )

2 个答案:

答案 0 :(得分:0)

如果您可以延长com.vaadin.server.VaadinServlet,请执行此操作并使用request.getRequestDispatcher().forward()将您的网址格式*.jnlp转发至JnlpGenerator。对于其他网址格式,请通过调用super方法执行常规业务。

答案 1 :(得分:0)

实际上,您只需绑定以下URI即可使vaading正常工作:/VAADIN/*, /root_URI_for_vaadin_app/*

我的一个项目示例:

@WebServlet(name = "vaadinServlet",
        urlPatterns = {"/app/*", "/VAADIN/*"},
        asyncSupported = false,
        initParams = {@WebInitParam(
                name = "widgetset",
                value = "com.vaadin.DefaultWidgetSet"
        )}
)
@VaadinServletConfiguration(productionMode = false, ui = MainUi.class)
public class AppServlet extends VaadinServlet {}

然后,您可以将任何servlet绑定到任何URI,它们应该与Vaadin一起正常工作。