web.xml中用于HTML文件的URL模式

3

我们知道如何为servlet设置url模式,但我无法为html在web.xml中设置url模式,请帮助我找到解决方案,我尝试了谷歌搜索,但是没有找到答案,以下是我的问题。

<servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>auth.Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

在上述代码中,我正在为 Login servlet类在< strong> web.xml 中设置< strong> url模式,同样,我能否为html文件在< strong> web.xml 中设置< strong> url模式?请帮忙找到解决方案,谢谢!

1
你好,不太清楚你的问题。请更具体地描述,包括你尝试过的事情,例如正则表达式。谢谢!要快点,因为这个问题可能很快就会关闭。 - Drakes
@Drakes,我在 web.xml 中明确提到。 - Selva
我能感觉到你很沮丧,所以我会退出这个问题。你的答案在这个链接里。祝你好运。https://dev59.com/fWYr5IYBdhLWcg3wAFvE - Drakes
3个回答

1

URL模式适用于servlet和过滤器。 对于servlet:

<servlet-mapping>
    <servlet-name>Servlet-name</servlet-name>
    <url-pattern>/< Pattern ></url-pattern>
</servlet-mapping>

筛选器

<filter-mapping>
    <filter-name>Filter-Name</filter-name>
    <url-pattern>/< Pattern ></url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

这些不适用于Html文件。实际上,JSPs也没有模式配置。


不,你不能。实际上,HTML文件不需要任何URL模式配置。在Tomcat中,可以直接使用相应的URL访问HTML文件。 - Jafar Ali
我认为我们可以为html文件设置url模式,那么在欢迎文件列表中他们是如何将index.html设置为启动页面的? - Selva
欢迎文件是一个特殊情况。它是可配置的,因此可以设置除默认页面(即index.html)之外的欢迎页面。这样我们也可以将Servlet设置为欢迎页面。 - Jafar Ali

1
如果您想保护*.html文件不被直接访问(通过将*.html文件放置在WEB-INF下),您可以使用一个Servlet,该Servlet仅负责将所有此类请求转发到预期的html文件。
<servlet>
    <servlet-name>HTMLServlet</servlet-name>
    <servlet-class>my.package.HTMLServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HTMLServlet</servlet-name>
    <url-pattern>/somepath/*.html</url-pattern>
</servlet-mapping>

在servlet类中的代码可能如下所示

...
protected void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException {
  String requestedPath = //... code for getting requested HTML path
  request.getRequestDispatcher(requestedPath).forward(request, response);
}
...

1
如果您不介意将您的HTML页面更改为JSP,那么您可以像这样设置它的URL模式:
<servlet>
    <servlet-name>Error</servlet-name>
    <jsp-file>/pages/error.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>Error</servlet-name>
    <url-pattern>/error</url-pattern>
</servlet-mapping>

1
您不需要将页面更改为JSP。HTML文件完全可以胜任:<jsp-file>/pages/error.html</jsp-file> - Paul LeBeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接