2016-01-08 75 views
-2

我想知道如果有可能爲僅處理Web服務RESTful的應用程序服務器禁用HTTPSession爲無狀態Web服務禁用HTTPSession

我不知道是否有專門處理微RESTful Web服務的特定應用程序服務器或servlet容器。

我認爲禁用完全會話概念將提供以下優點:

  • 更好的性能
  • 沒有風險將數據保存在會議打破了RESTful Web服務的無狀態的概念
  • 減由類加載器加載的類
  • 沒有未使用的信息保存在會話中(例如會話ID,會話狀態)
  • 減少訪問同步識別的塊(我認爲,至少在會議lastAccessedTime的價值爲每個請求更新,這應該在synchronized塊來實現)

如果能夠這樣做的任何應用程序服務器或servlet容器:有沒有其他的Java 引擎可以處理微服務而不創建類似於HttpSession的東西?

+0

我編輯了問題,最後添加了一個新的請求。所以它是不一樣的。 –

+1

這隻能通過提出一個令人難以置信的模糊和廣泛的次要問題來解決問題。 – Gimby

+0

事實並非如此模糊Andres用可能的引擎回答了這個問題。 –

回答

1

您不能在Servlet容器(如Tomcat)上禁用HttpSession。

也許Play framework將是一個很好的方法來實現您的設計。

+0

謝謝,我會看看它 –

1

您不能完全禁用HttpSession

但是,您可以確保在您的應用程序中不會創建HttpSession。要做到這一點,確保不會被調用下面的方法(通過自己或由框架您使用):


Microservices是架構設計原理。如果您想使用Spring,則有guide you can follow

+0

我叫request.getSession(false),它也返回一個會話,如果沒有其他請求已經完成。 –

+1

然後會話在別處創建。其餘服務是否嵌入在打開會話的應用程序中? – thst

+0

@DavideLorenzoMARINO查看[documentation](http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html#getSession-boolean-):*如果'create'是'false',並且請求沒有有效的'HttpSession',則此方法返回'null' *。所以,我相信你的會議正在其他地方製作。你的框架不是爲你做的嗎? –