是否有任何Java MVC框架利用请求路径模式而不是定义的servlet url模式?

时间:2009-09-20 03:00:36

标签: java model-view-controller

据我所知,Java世界之外的MVC(PHP和Ruby on Rails),所有请求首先发送到前端控制器(或调度程序......或者boostrap等),并且前端控制器看起来像URL中的请求路径模式,以确定应该处理请求的类/方法。在Java MVC中,似乎servlet与部署描述符(web.xml)中的url模式一起映射,但文件扩展名和url模式似乎不是非常灵活。是否有任何Java MVC框架使用前端控制器专门读取请求路径以确定应执行哪些类?破解Spring MVC是否相当容易?任何例子?谢谢!

4 个答案:

答案 0 :(得分:3)

可根据需要使用的一个工具示例是web4j

default,它将传入的URL映射到Action类,该类的包限定名称以相当自然的方式映射传入的URL。

其文档示例:

这是该特定工具如何执行任务的示例。由于这是网络应用程序的基本功能,我认为几乎所有这些工具都有类似的机制。

我不是Spring的大用户,但我可以从其文档中看到它有多种方法将请求映射到Actions:

答案 1 :(得分:1)

Java servlet映射也可以通过文件扩展名。

与许多非Java框架非常相似,您可以将所有请求映射到单个servlet,然后处理它们,但在Java中往往不鼓励这样做。这当然是可能的。

如果您需要更多REST样式的URL来声明路径元素的映射,您可能需要查看Spring 3.0中的Spring MVC设置。

答案 2 :(得分:1)

我同意URL映射不是很灵活,但您可以使用URLRewriteFilter

处理映射

http://tuckey.org/urlrewrite/

为此,过滤器几乎像控制器一样工作。

答案 3 :(得分:1)

查看条纹: http://www.stripesframework.org/display/stripes/Quick+Start+Guide

我一直把它视为struts可能的升级。该页面上有一个示例,与John O提供的web4j示例非常相似。