2016-01-08 77 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' *。所以,我相信你的会议正在其他地方制作。你的框架不是为你做的吗? –