有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用path在java中创建会话cookie,同时仍具有良好的函数式编程实践

我非常喜欢函数式编程,我喜欢它的不变性概念,也喜欢它对函数没有副作用的概念

我正试图将其中一些概念引入java

现在我有了一个servlet,它接收一个请求,如果浏览器没有向服务器发送cookie,那么我想创建一个cookie,并向用户发送特定路径

现在在servlet内部,我不想保留这种逻辑,因为它对于多个servlet是通用的。 因此,我将其提取到某种cookie管理器中,该管理器将执行以下操作:

库克经理。JAVA手册(请求、响应)

  1. 检查浏览器是否发送了cookie
  2. 如果未设置cookie,则使用特定路径的新会话cookie值设置cookie

但是我不喜欢它,因为现在servlet将调用CookieManager。JAVAhandleCookie将有一个副作用,我希望它返回某种响应,并在servlet中进一步使用它,而不是影响我传递给它的参数

任何人都可以提出一个既美观、无副作用又性能优异的解决方案

谢谢


共 (2) 个答案

  1. # 1 楼答案

    一个好的解决方案是创建一个servlet,它将充当所有其他servlet的父类。 现在在这个servlet中,将cookie处理的逻辑放在一个公共函数中,比如handlecookie。 在这个servlet的get和post API中,首先调用这个handleCookie,然后调用servlet的服务API(保持为空)

    在所有子servlet类中,您只能重写从父类继承的服务类,并且应该可以正常工作

    Servlet filters是您可以利用的其他解决方案

  2. # 2 楼答案

    您可以使用servlet过滤器。这很适合你的情况。您可以将过滤器映射到URL模式,并在dofilter方法中编写代码。如果您想在请求/响应之前和之后进行过滤,建议使用过滤器。由于您正在为您的请求进行预处理,因此它将适合您的情况。If也是松散耦合的,因为您可以随时删除、修改或添加另一个规则,而无需修改核心servlet代码