0

我创建了一个 Google App Engine 项目,但由于一些 SEO 问题,我想将我的一个页面从 HTML (+ JQuery) 更改为在服务器上呈现的 JSP

这个页面是index.html文件,我怎样才能让它作为一个JSP工作而不重命名它(我不希望用户去index.jsp,而是把index.html当作一个JSP页面)

我已经尝试将它添加到我的 web.xml 中,但它似乎不起作用

<servlet>
    <servlet-name>main</servlet-name>
    <jsp-file>/index.html</jsp-file>   (or index.html, same result)
 </servlet>

关于如何解决这个问题的任何想法?

如果我将 index.html 重命名为 index.jsp 文件,一切正常

4

1 回答 1

1

您绝对可以在 Servlet 过滤器中执行此操作。

设置过滤器以捕获对 /index.html 的请求

然后在过滤器中返回 index.jsp,因此客户端将其视为 /index.html

前任:

    private ServletContext context;

    @Override public void init(FilterConfig arg0) throws ServletException {
        context = arg0.getServletContext();

    }

    @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        context.getRequestDispatcher("/index.jsp").include(request, response); 

    }

这样做是在响应中包含 /index.jsp。当然,由于您没有 /index.html 文件,因此最终会成为整个响应。

于 2013-04-16T13:23:44.207 回答