0

我创建了一个抽象基类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,例如。有什么建议么?

4

2 回答 2

2

有几十个现成的工具框架可以为您做到这一点。至少我建议 Spring MVC 可以使用速度。

于 2012-05-24T20:02:52.247 回答
1

Spring MVC 有一种很好的方法来处理这类事情,使用带有注释方法的控制器来处理您想要的特定模式。

他们在这里有一个很好的示例应用程序:

https://github.com/SpringSource/spring-mvc-showcase

无论如何,使用 Java 代码构建页面并不是一个好习惯。

于 2012-05-24T20:03:15.323 回答