【发布时间】:2012-05-25 04:03:15
【问题描述】:
我创建了一个抽象基类Page,它知道如何构建动态网页。我试图想出一个好方法来根据GET 请求生成Page,该请求以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 的子字符串,例如。有什么建议么?
【问题讨论】:
标签: java velocity dynamic-pages