当前位置:  开发笔记 > 编程语言 > 正文

每个webapp一个或多个servlet?

如何解决《每个webapp一个或多个servlet?》经验,为你挑选了2个好方法。

我知道,这取决于webapp.但是在正常情况下,你做什么:一个servlet,它服务于不同的页面(比如一个具有不断变化的内容的独立应用程序),或者每个页面都有一个servlet.

以博客为例.有一个包含最新博客条目的起始页面,一个用于显示一个博客条目和一个存档的文章视图.您是使用三个不同的servlet实现此功能,还是将其分配给函数.至少有很多东西是共享的,比如http-headers.

那么,你的经历是什么,最有效的是什么?



1> Vincent Ramd..:

通常,您将根据用例创建一个servlet.Servlet就像您的应用程序的控制器.当您从用户识别交互时,然后实现servlet来控制该交互.

也就是说,如果您使用普通的servlet/JSP来构建站点.如果您使用像struts这样的框架,您会发现它们实现了前端控制器模式,并使用单个servlet来接收所有请求,并将这些请求转发给实现用户请求的实际逻辑的操作类.这对你自己来说要难得多,但这是一个很好的做法......这就是为什么这么多人使用这些框架的原因.

简而言之,您将为每个webapp创建许多servlet,因为每个webapp都会暴露几个用例.

[编辑]重新阅读您的问题,似乎您使用术语网站表示页面或视图.同样,这取决于该观点上发生的事情.例如,要显示最新的博客条目,您可以拥有一个servlet,用于构建数据库中的条目列表以供显示.如果用户单击某个条目,则另一个servlet可以检索该单个条目以供查看,依此类推.主要是,每个动作都是一个用例,因此是一个不同的servlet.



2> Miguel Ping..:

大多数Web框架使用调度程序servlet(例如:Spring MVC)来处理将请求路由到适当的类/控制器.

当你开始拥有大量页面时,这种方法效果最好,因为你有一种更加用户友好的方式(关于web.xml)来声明/管理一个处理http请求及其url的类.示例(再次弹簧mvc):

@Controller
public class MyController {
 @RequestMapping("/viewPosts")
 public void doViewPosts(HttpRequest r, HttpResponse res) {
  //...
 }
}

此外,拥有一个调度程序servlet可以使代码流集中.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有