Web 应用程序在 Google App Engine 上运行的后端使用 Java ReSTLet。
我想为所有 url (/*) 返回 index.html。
在这里,我不想使用response.redirect
,我的意思是,客户端不应该知道重定向。
我在 web.xml 中使用了以下代码。
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.post.PostApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/api/v1/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>StartPageServlet1</servlet-name>
<jsp-file>/client/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>StartPageServlet1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
它使用 ReSTLet 为所有/api/v1 请求提供服务。它工作正常。 但是/* 应该总是返回 index.html。我该怎么做?
最佳答案
你可以插入一个filter并检查请求 URI,并根据它决定是否将其转发到您的主页:
RequestDispatcher rd = request.getRequestDispatcher("/index.html");
rd.forward(请求, 响应);
关于java - 重定向所有 URL 以在 App Engine Java servlet 中返回 index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792481/