【问题标题】:Browser URL file extension dropping using springMVC使用 Spring MVC 删除浏览器 URL 文件扩展名
【发布时间】:2014-03-28 07:24:48
【问题描述】:

我正在使用 Spring 开发应用程序。我正在通过应用程序导航到不同的页面。我的问题是, 如果我正在导航到 ABC.jsp 页面。在浏览器中应该显示为IP:port/ABC,而不是IP:port/ABC.jsp

spring中是否有任何机制可以在浏览器中隐藏文件扩展名?

【问题讨论】:

    标签: spring jsp web.xml


    【解决方案1】:

    如果我没记错,而且您使用的是 sping。如此简单,在控制器请求映射中将扩展名和控制器设置视图页面中的一件事拖放到模型中,也将扩展名放入其中。喜欢

    @RequestMapping(value="/login")
        public ModelAndView login() {
            return new ModelAndView("login");
        }
    

    在上述方法中,我通过删除扩展名将控制器映射为登录名,并且在转发模型时,我正在删除扩展名。在这种情况下,您可以转发到控制器而不在 url 中显示扩展名。

    【讨论】:

      【解决方案2】:

      使用 servlet 映射,您需要单独指定每个 JSP,如下所示:

      <servlet>
          <servlet-name>search</servlet-name>
          <jsp-file>/search.jsp</jsp-file>
      </servlet>
      <servlet-mapping>
          <servlet-name>search</servlet-name>
          <url-pattern>/search</url-pattern>
      </servlet-mapping>
      

      如果所有这些 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。

      【讨论】:

      • 感谢您对 Santino 'Sonny' Corleone 先生的回复。但在这里我使用弹簧控制器导航到 ABC.jsp 页面。我只想从控制器导航到 jsp 页面而不显示文件扩展名。
      • 所以只需将 .jsp 文件名映射到您想要的任何内容..就像这样 &lt;servlet&gt; &lt;servlet-name&gt;search&lt;/servlet-name&gt; &lt;jsp-file&gt;/search.jsp&lt;/jsp-file&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;search&lt;/servlet-name&gt; &lt;url-pattern&gt;/search&lt;/url-pattern&gt; &lt;/servlet-mapping&gt;
      • 我的意思是这样说。我在我的应用程序中使用了一百多个文件。我认为应用程序为超过 100 个这样的文件编写它不是一个好习惯。我说的对吗?
      • 你是对的,但我不知道其他方法..检查谷歌
      • tq 桑提诺。我在google上试过,但能找到答案
      猜你喜欢
      • 2012-05-12
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      相关资源
      最近更新 更多