0

我的问题可能很成熟,但我仍然想知道我们是否可以将 HttpServletRequest、HttpServletResponse 对象作为参数传递给业务逻辑方法?

这是一个好的编程习惯吗?

例子 :

@RequestMapping( value = "/controller_name" , method = RequestMethod.GET)
public String getNewRegistrationPage(HttpServletRequest req,HttpServletResponse res)
{
    getDetails(req);
}

public void businessLogic(HttpServletRequest **req**)
{
    //business logic here
}

谢谢, Sridhar R

4

4 回答 4

3

好的做法是相对的。我个人的意见是不要这样做。我觉得控制器应该从请求中提取信息以发送到业务层。这样,您就有可能在非 Web 应用程序环境中使用业务层。在这不可行的情况下,我将有一个实用程序类来与业务层和 HttpServletRequest 对象进行交互。

于 2013-01-11T14:36:59.373 回答
1

最好不要那样做。我明白您为什么要这样做是因为您希望将来自 JSP 的参数用于业务逻辑。所以这可以使用:

DataType param = request.getParameter("param");

getDetails(param);

因此,按照建议的方式,您的所有业务逻辑都应该在您重定向到相应视图之前在控制器中调用的函数中。

于 2013-01-11T14:46:14.487 回答
0

我认为做一个使用请求和响应作为输入参数的业务逻辑不是一个好习惯,因为在其他情况下你不能有效地重用业务逻辑。

过去,我们习惯于将请求中的所有数据复制到 Hashmap 中,并将 hashmap 作为业务逻辑的输入参数传递。

我不认为你总是需要读取无限参数,所以现在我更喜欢使用简单的 POJO,这在我看来更易于维护。

于 2013-01-11T14:46:53.710 回答
0

出于与本文中已经提到的相同原因:我认为这不是一个好习惯。

相反,我建议您查看此处以获取有关提取请求数据并将其传递给您的业务逻辑的可能方法的更多信息。

于 2013-01-11T14:47:08.807 回答