2017-10-20 146 views
0

我想知道是否不好的做法是保持HttpSession中的“URL”属性以跟踪用户访问的上一页。我想知道以前的网址,以便根据上一页的内容有条件地执行不同的任务。HttpSession存储URL

一个例子是一个控制器类,它根据用户访问这个页面的方式来改变网页的颜色。如果用户从“example.com/blue”按下按钮,它应该重定向到当前页面并使其变为蓝色。 (如果来自“example.com/pink”,它应该使页面变成粉红色等)。这是从

Url url = httpSession.getAttribute(url);
如果(url.equals(蓝色)){//使页面蓝}
如果(url.equals(粉红色)){//使页面粉}

希望这是决策意识。

谢谢!

回答

0

是的,这是一个不好的做法。这将很难维持。你甚至会写单元测试?

此问题中的标签暗示您使用的是MVC框架,但您的解决方案看起来像是对MVC模式的误解。

网址属于'控制器',页面样式为'view',用户的历史为'model'。如果您需要在HttpSession中存储一些信息,请使其与协议无关。我会考虑存储某种枚举。或者,该按钮可以仅将颜色作为请求参数传递。

此外,还有一些用户会在两个选项卡中打开您的页面。

尝试以这样的方式实现您的应用程序,当您决定重新组织页面结构时,您不必重新组织HttpSession。

+0

感谢您的回答!你所说的话很有意义,特别是使用MVC。 – BGui