2013-03-10 72 views
1

目前我創建一個嵌入式服務器這樣的:碼頭連接器和處理程序

Server server = new Server(8080); 

ServletContextHandler handler = new ServletContextHandler(); 
handler.setContextPath("/abc"); 

handler.addServlet(...); 
handler.addServlet(....); 
handler.addServlet(....); 

server.SetHanlder(handler); 

server.start(); 
server.join(); 

因此,我沒有明確地建立在上面的連接器。 如果我想創建一個連接器,這是如何影響的東西?

服務器可以有多個連接器嗎?有沒有創建一個默認的連接器,如果我明確創建一個,它會使用它?

我想我需要一個連接器的原因是我想明確地設置一些實際的服務器實例沒有的屬性。

我對連接器的用途有點困惑。

回答

2

連接器用於接受和處理初始傳入連接。

默認情況下,基本HTTP(非SSL)連接器是基於您在new Server(8080);行上提供的端口設置的。它應該在您的機器的所有網絡接口上監聽端口8080。

如果您想要提供SSL或SPDY,則需要基於您的Jetty版本(javadoc:Jetty 6,Jetty 7/8,Jetty 9)的相應SSL連接器。

或者,如果您只想在特定的網絡接口上偵聽,則需要適當地配置連接器。

+0

如果我想設置端口,重用地址,maxidletime等,我必須添加一個連接器到我的服務器嗎?我沒有看到服務器實例本身的這些屬性。 – Blankman 2013-03-10 23:00:08

+0

Server.setConnectors()是你想要的。查看嵌入式示例:http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded /ManyConnectors.java?h=jetty-8 – 2013-03-11 13:37:29