Hey everybody, i am beginner. Can somebody advise me on how to manage single 
page application routing? 

I need DefaultServlet to work as it works now - serve static content, handle 
ETags and do other stuff. 
Since JS will handle routing, on unknown route to Jetty, Jetty will throw 404 
and i need to intercept these 404 errors
to output content of index.html and let JS do the work. 

What is the best way to do that? 

Launcher.java
-----------------------------------------------------------------------------
public static void main(String[] args) throws Exception
{
        Server server = new Server();

        // Remove Server:Jetty(9...) from Response Headers
        HttpConfiguration httpConfig = new HttpConfiguration();
        httpConfig.setSendServerVersion(false);
        HttpConnectionFactory httpFactory = new 
HttpConnectionFactory(httpConfig);

        ServerConnector connector = new ServerConnector(server, httpFactory);
        connector.setPort(8080);
        server.addConnector(connector);

        WebAppContext context = new WebAppContext("webapp", "/");
        context.addServlet(new ServletHolder(new DefaultServlet()), "/*");

        // Map WebSocket to listen on `/ws`
        Broker broker = new Broker();
        context.addServlet(new ServletHolder( new Servlet(broker)), "/ws");

        // Setting up browser caching. Binds params for 
org.eclipse.jetty.servlet.DefaultServlet.init()
        context.setInitParameter("org.eclipse.jetty.servlet.Default.etags", 
"true");
        
context.setInitParameter("org.eclipse.jetty.servlet.Default.cacheControl", 
"public, max-age=0");

        // Disallow directory listing
        
context.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", 
"false");

        // Search for index.html/index.jsp pages
        
context.setInitParameter("org.eclipse.jetty.servlet.Default.welcomeServlets", 
"true");

        // Fix for Windows, so Jetty doesn't lock files
        if (System.getProperty("os.name").toLowerCase().contains("windows")) {
                
context.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer",
 "false");
        }

        // Will throw an exception when will be unable to start server for some 
reason
        context.setThrowUnavailableOnStartupException(true);

        server.setHandler(context);
        server.start();
}
—————————————————

I also have jersey mapping in web.xml

<servlet-mapping>
    <servlet-name>jersey-api-v1</servlet-name>
    <url-pattern>/api/v1/*</url-pattern>
</servlet-mapping>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to