【问题标题】:Hide servlet name in the url在 url 中隐藏 servlet 名称
【发布时间】:2014-03-12 15:18:19
【问题描述】:

在一个网站中,我在这样的导航栏中有一些链接

<li><a href="?page=pagename">PAGE</a></li>

我在 JSP 页面中用 JAVA 加载链接页面,然后通过 GET 通过表单提交数据,之后我的 URL 变为

www.sitename.com/Servlet

然后我无法加载页面

?page=pagename 

因为我在 URL 中有 Servlet 名称。

如何隐藏或删除 servlet 名称?

【问题讨论】:

  • 如果能提供更多代码来理解就好了
  • @Arjit 此处没有可显示的相关代码。

标签: java jsp servlets url-mapping


【解决方案1】:

在您的web.xml 中使用servlet-mapping:

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

【讨论】:

    【解决方案2】:

    如果所有这些 JSP 都在一个公共路径中,那就更容易了。例如。 /app/*。

    <servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>com.example.FriendlyURLServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>
    

    与

    request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);
    

    这假定 JSP 位于 /WEB-INF 文件夹中,因此无法直接请求它们。这将在http://example.com/app/search 上显示/WEB-INF/search.jsp。

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      相关资源
      最近更新 更多