2016-09-21 76 views
0

我見過很多關於如何配置HTTPS的Jetty SSL for Jetty的例子,但它們似乎都利用了一個單獨的包含main方法的服務器類來執行。我想執行我的WebServlet作爲通過web.xml文件配置的標準servlet。我目前有:通過HTTPS的Jetty WebSockets通過WebSocketServlet配置

@WebServlet 
public class MonitoringServlet extends WebSocketServlet { 

    @Override 
    public void configure(WebSocketServletFactory factory) { 
     factory.register(MonitoringSocket.class); 
    } 
} 

我在哪裏可以放置我的SSL Servlet配置代碼?在這個Servlet的configure方法中?在init方法?

我明白,在這種情況下,不需要用於實例化Server對象並使用.start().join

回答

1

Servlet的只是一個產生對請求的響應的裝置。

通常,請求可以來自HTTP/0.9,HTTP/1.0,HTTP/1.1或HTTP/2。

將SSL/TLS用於協議的安全部分。

從技術上講,甚至不需要HTTP來運行Servlet。

用於提交請求的協議不在您實施提供響應的Servlet的控制之外。

在碼頭,你會想:

  • 服務器實例配置SSL
  • 至少1連接器/ TLS分配給服務器
    • 至少1處理器使用servlet 沒有「網絡應用程序」的所有行李(「網絡應用程序」通常具有WEB-INF/web.xml,WEB-INF/classesWEB-INF/lib/*.jar),這將是一個ServletContextHandler
    • 使用servlet以「Web應用程序」這將是一個WebAppContext

這樣的設置可以在jetty-distribution或通過使用Java來從配置${jetty.base}建立服務器,連接器和處理程序。

+0

好吧,我以前看過那個模型。我確實想使用'WebAppContext',但我不認爲我需要一個服務器實例。我認爲這是爲我處理的。這個鏈接[Eclipse Websocket API](http://www.eclipse.org/external/jetty/stable-9/apidocs/org/eclipse/jetty/websocket/servlet/package-summary.html)詳細描述了創建過程的不同之處。 – jiveturkey