java - 重定向所有 URL 以在 App Engine Java servlet 中返回 index.html

标签 java google-app-engine servlets restlet-2.0

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/

相关文章:

eclipse - 如何在没有 ant 或 maven 的 Eclipse 中创建 war 文件?

java - Servlet 未包含在 Maven 项目中

java - 服务小程序异常 : Error instantiating servlet class on OPENSHIFT Tomcat 7 ( Jboss EWS)

java - 无法获得将一个字符串中的字符与另一个字符串进行比较并返回 true 的 for 循环

java - Jenkins插件开发——环境变量

google-app-engine - 是否有实体组最大大小?

java - 在创建新的 JDO 实体之前,如何确保 Google AppEngine 中不存在该实体?

java - 试图在 Java 中制作一个模态 "Generating Report"对话框

java - 使用 appbundler 为 mac 使用捆绑的 jre 签署 java 应用程序

java - 在一个查询中查询不同的EntitySubclass