Model view controller 使用Struts或自定义控制器

Model view controller 使用Struts或自定义控制器,model-view-controller,struts2,controller,scalability,Model View Controller,Struts2,Controller,Scalability,我正在开发一个Ajax应用程序,用户永远不会离开同一个页面。然而,将有几十种不同类型的数据调用到服务器,我相信这个应用程序将在未来添加到服务器上。对于这些调用中的每一个,我都需要检查以确保用户(A)登录(B)对他们的请求有足够的权限,然后用hibernate填充bean,然后将其转换为JSON、XML或错误/登录消息 我知道这在Struts中是可能的,但是当我可以制作一个自定义servlet控制器时,使用它有什么好处吗 Controller extends Servlet { statu

我正在开发一个Ajax应用程序,用户永远不会离开同一个页面。然而,将有几十种不同类型的数据调用到服务器,我相信这个应用程序将在未来添加到服务器上。对于这些调用中的每一个,我都需要检查以确保用户(A)登录(B)对他们的请求有足够的权限,然后用hibernate填充bean,然后将其转换为JSON、XML或错误/登录消息

我知道这在Struts中是可能的,但是当我可以制作一个自定义servlet控制器时,使用它有什么好处吗

Controller extends Servlet
{
    status = checkLogin()
    if(status == SUCCESS)
        status = checkPermissions()
    if(status == SUCCESS)
        status = validateCommand()
    if(status == SUCCESS)
        bean = factory()
    if(status == LOGIN)
        promptLogin()
    else if(status == ERROR)
        toError(status)
    else if(isJson)
        toJson(bean)
    else
        toXml(bean)
}

我觉得这符合我的目的,而且更简单/更小,但我绝对不是Java专家,所以我希望能得到一些建议。我的首要任务是可伸缩性和维护。也许我应该用一个更好的框架?提前谢谢

亚历克斯,使用任何框架(无论是struts2/spring mvc)的想法都是这样的:去掉通用代码,让开发人员专注于业务逻辑,这与您的情况是一样的,在将来,正如您所提到的,它可以发展为复杂的部分,所以最好使用任何现有框架,让它们处理请求流循环和你专注于商业逻辑

另外,当许多其他人已经开发和测试车轮时,重新发明车轮没有任何好处。
正如您所说,您的主要目标是可伸缩性和维护,因此我认为最好使用一些众所周知的框架来实现这一点。您的用例听起来已经足够复杂,您可能会从框架中受益,因为您显然有以下要求:

  • 保安
  • 多用户操作
  • JSON/有效负载编组
为了解决您的具体问题,Struts2可以使用(对于安全性等方面),(S2中MVC的关键)和(对于JSON响应)轻松满足所有这些需求。然而,如果您是从头开始开发这个应用程序,并且您有一些技术回旋余地,那么肯定还有其他可行的选项,例如JSF(带有类似的组件库)和许多其他选项