为什么Java Web应用程序使用.do扩展名?它从哪里来的?

我一直想知道为什么这么多Java开发人员使用“

.do”作为其Web控制器(MVC)资源的扩展名。示例:http://example.com/register.do

正如我在Spring MVC和Struts项目中所看到的那样,它甚至似乎并不是特定于框架的。这种“

.do”扩展实践从何而来。为什么这样做而不是不进行扩展?我觉得我想念有关Java世界的备忘录。

我个人不喜欢扩展。

回答:

据我所知,该约定已被Struts1传播。用户指南如下所示:

5.4.2配置ActionServlet映射

本节中的材料并不特定于Struts。Servlet映射的配置在Java Servlet规范中定义。本节介绍配置应用程序的最常用方法。

有两种常见的方法来定义将由控制器Servlet处理的URL:前缀匹配和扩展名匹配。下面将描述每种方法的适当映射条目。

前缀匹配意味着您希望将以特定值开头(在上下文路径部分之后)的所有URL传递到此servlet。这样的条目可能如下所示:

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>/do/*</url-pattern>

</servlet-mapping>

这意味着与/logon前面描述的路径匹配的请求URI 可能看起来像这样:

http://www.mycompany.com/myapplication/do/logon

/myapplication部署应用程序的上下文路径在哪里。

另一方面,扩展映射基于以下事实将请求URI与操作Servlet匹配:URI以一个句点结束,后跟一个定义的字符集。例如,将JSP处理servlet映射到该*.jsp模式,以便调用它来处理所请求的每个JSP页面。

,映射条目应如下所示:

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

/logon前面描述的路径匹配的请求URI 可能看起来像这样:

http://www.mycompany.com/myapplication/logon.do

-如果<servlet-mapping>为控制器Servlet 定义多个元素,则框架将无法正常运行。

-如果您使用1.1版以后的新模块支持,则应注意仅支持扩展映射。

而且我认为这个约定已经得到遵守(有时即使替换Struts1后也不更改URL,有时只是因为人们对此感到满意)。

以上是 为什么Java Web应用程序使用.do扩展名?它从哪里来的? 的全部内容, 来源链接: utcz.com/qa/430823.html

回到顶部