web.xml中html文件的url模式

时间:2015-04-20 09:45:50

标签: java html5 servlets web.xml url-pattern

我们知道如何为 servlet 设置网址格式,但我无法在 web.xml中为html设置网址格式 ,你可以帮我找到解决方案,我用谷歌搜索但是,无法得到它,请在下面找我的问题。

<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>

在上面的代码中我在 web.xml 中为**Login** servlet类设置 url pattern ,就像我可以设置 url模式一样,用于 web.xml 中的html文件 请帮助找到解决方案,提前谢谢

3 个答案:

答案 0 :(得分:1)

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

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

For Filter

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

那些不适用于Html文件。 事实上,JSP也没有模式配置。

答案 1 :(得分:1)

如果你想保护* .html文件不被直接访问(通过在WEB-INF下放置* .html文件),你可以使用一个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);
}
...

答案 2 :(得分: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>