2012-10-15 49 views
0

我正在學習Vaadin和Java web開發。 Vaadin建議通過在web.xml中使用<url-pattern>/*</url-pattern>將所有URL重定向到com.vaadin.server.VaadinServlet。 我還要處理一些其他URL設有獨立的servlet,例如:web.xml url-pattern - 爲更廣泛的應用程序提供廣泛的服務

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

有什麼辦法來實現這一目標,同時具有如此廣泛的模式,如/*是什麼?在我目前的配置下,任何呼叫例如http://localhost:8080/myapp/applet.jnlp被忽略,因爲/*接管Vaadin應用程序啓動。

我會感激一些幫助:-)

回答

0

如果你可以擴展com.vaadin.server.VaadinServlet,請這樣做並使用request.getRequestDispatcher().forward()*.jnlp轉發您的網址模式JnlpGenerator。對於其他網址格式,請撥打super方法執行常見業務。

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一起正確工作。