我创建了一个抽象基类Page
,它弄清楚如何构建动态网页。我正在尝试想出一个好方法来Page
根据GET
作为HttpServletRequest
. 例如...
public class RootServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
Page page = Page.generatePage(request);
// do stuff with page and write back response
}
}
在该generatePage()
方法中,我必须以某种方式找出正在请求的页面,构建正确的页面,然后返回它的实例。但我不确定如何做好这件事......例如,我需要处理这些类型的 URL:
http://example.com/ : build the default home page
http://example.com/ab123 : build the page corresponding to the given token "ab123"
http://example.com/about/ : build the "about" page
http://help.example.com/ : build the "help" page
这些“页面”中的每一个都扩展了抽象基类Page
,因此它们知道如何构建自己,但我不确定如何确定AboutPage
需要构建的,或者HelpPage
与默认相反的HomePage
.
我使用Apache Velocity作为模板引擎,所以这些Page
对象实际上只包含生成该页面所需的重要信息,例如要使用的样式和脚本,以及要在页面上显示的相关内容。
我认为有更好的方法来做到这一点,而不是查看 URL 的末尾并查看“about”是否是构建的子字符串AboutPage
,例如。有什么建议么?