【问题标题】:design servlet router from scratch从头开始设计 servlet 路由器
【发布时间】:2012-12-10 07:01:24
【问题描述】:

我想设计一个基于servlet的url路由器。

路由器通常会将网络请求发送到适当的控制器和操作。

Web url 将采用“控制器/操作”模式。

我尝试了什么:

  1. 模式:/controller?action=dosomething
  2. url 映射将流向 servlet。
  3. servlet 将创建控制器实例
  4. “action”GET 参数将使用反射在控制器上执行方法。

我做的很糟糕。我希望 url 是“控制器/动作”形式。

一些建议会有所帮助。

谢谢。

【问题讨论】:

标签: jakarta-ee servlets servlet-filters


【解决方案1】:

servlet 规范通过示例给出了很好的解释

这是重写的部分:

如果您有一个上下文路径为/catalog 的webapp,并且有一个映射到/lawn/* 的servlet,并且如果请求进入路径/catalog/lawn/index.html,则该请求的ContextPath 将为/catalog;它的 ServerPath 将是 /lawn,它的 PathInfo 将是 /index.html

使用请求的 ServerPath 和 ContextPath 属性来提取 URL 的控制器部分和操作部分。

【讨论】:

  • 您将在 web.xml 中使用什么 url 映射?是否存在路径为“.”的包罗万象的 servlet。如果它是“.”,那么当我再次尝试加载 jsp 时,将调用这个包罗万象的 servlet。
  • 您应该做出决定,因为您选择从头开始重新实现 MVC 框架,尽管已经存在很多优秀的框架。
  • 如果我尝试调度 jsp 捕获所有 servlet 将被调用。如何从包罗万象的 servlet 中排除 jsp?
猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 2019-03-11
  • 2010-09-19
  • 1970-01-01
  • 2021-02-08
  • 2012-12-18
  • 1970-01-01
  • 2020-11-27
相关资源
最近更新 更多