【问题标题】:How Can I Hide jsp folder path and file name in application如何在应用程序中隐藏 jsp 文件夹路径和文件名
【发布时间】:2012-12-17 12:40:07
【问题描述】:

我有一个网络应用程序 - 但是当我从菜单和其他链接导航时,地址栏会显示文件夹和文件名。 我想要的是无论用户做什么导航,地址都应该只显示

http://domain:port/daswebapp

而不是

http://domain:port/daswebapp/admin/index.jsp

任何人都可以帮助解决这个问题。我不使用任何其他框架。它是纯 MVC 模式。 谢谢n问候 努法尔

【问题讨论】:

  • 我猜你可以使用框架集,或者使用 Ajax/DHTML 来加载所有页面。但为什么?这对您(和您的用户)有多重要?
  • 您好 Jigar,感谢您的回复。原因是地址栏中的 servlet 名称将显示为 domain:port/daswebapp/servletname 而不带扩展名。如果用户在地址栏中输入,它将显示异常。

标签: java jsp web-applications servlets url-rewriting


【解决方案1】:

使用 url 重写过滤器,例如 urlrewritefilter,对于基于 JSF 的应用程序,请使用 Pretty faces

它的主要用途是:

  • URL Tidyness / URL Abstraction - 无论底层技术或框架(JSP、Servlet、Struts 等)如何,都保持 URL 整洁。

  • 浏览器检测 - 允许您根据请求 HTTP 标头(例如用户代理或字符集)重写 URL。

  • 基于日期的重写 - 允许您转发或重定向到基于其他 URL 的

    日期/时间(适用于计划中断)。

  • 移动的内容 - 可以优雅地移动内容,甚至更改 CMS。

  • 微小/友好 URL(即 blah.com/latest 可以重定向到 blah.com/download/ver1.2.46.2/setup.exe)

  • 一个 Servlet 映射引擎(参见方法调用)

【讨论】:

  • 但是它仍然会显示一些页面唯一的 URL(只是一个不同的 URL)。不过,我认为这无济于事。
  • @Thilo 我想要的是用户进行的任何导航,裸地址应该只显示“domain:port/daswebapp”而不是“domain:port/daswebapp/admin/index.jsp这显然似乎 OP 正在寻找重写过滤器
  • 如果你这么说。我对重写过滤器的理解是导航到不同的页面仍然会以不同的 URL 结束,因此地址栏会根据用户的导航显示不同的内容。
【解决方案2】:

你可以使用 RequestDispatcher,

RequestDispatcher dispatcher = getRequestDispatcher("daswebapp/admin/index.jsp");
   dispatcher.forward( request, response );

【讨论】:

    【解决方案3】:

    您可以使用类似的东西尝试并告诉我

    RequestDispatcher reqDisp = getServletContext().getRequestDispatcher("/index.jsp");
                reqDisp.forward(request, response);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-05
      • 2016-07-20
      • 1970-01-01
      • 2015-12-28
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      相关资源
      最近更新 更多