【问题标题】:JBoss - redirecting url without changing address bar URL in browserJBoss - 重定向 url 而不更改浏览器中的地址栏 URL
【发布时间】:2012-10-08 06:15:03
【问题描述】:

我会在这里提出多个相关问题,希望没有问题。

我的电脑上有JBoss 服务器,我想做以下事情:

当用户单击 (www.abc.com/login) 之类的链接时 我想将他重定向到(www.abc.com/jsp/login.jsp) 不显示新网址。

这样做的目的是向用户隐藏文件夹和文件扩展名,这样他们就不会开始测试和弄乱东西。

所以我的问题是:

1)如何在用户浏览器上保留(www.abc.com/login)?

2) 如何隐藏一些url?就像网址是 www.abc.com/jsp/login.jsp, 如何隐藏 (.jsp) 或更改文件/文件夹排列以减少向用户显示的信息?

3) 如果我的想法有误和/或有更好/更简单的方法,请给我建议。

我找到了一些相关的东西,例如this,但我不明白,因为我不懂jboss,而且英语也有点弱。

谢谢大家,很抱歉造成混乱。

【问题讨论】:

  • 创建一个文件夹login,在里面创建index.jsp,在那个jsp文件中包含../js/login.jsp?
  • 但是我有很多jsp文件。是的,这是一个解决方案,但如果有其他东西会更好。

标签: jsp jboss url-rewriting


【解决方案1】:

您应该始终将 Servlet 与 JSP 结合使用。

Servlets 在 Web 应用程序中充当控制器。

IMO,您应该创建一个 Servlet 并将其映射为像您 login 这样的名称,然后转发到一个页面。这实现了隐藏目录结构并保持 URL 不变的目标。

例如

<servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.test.controllers.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

在您的form 中的action 中传递/login。

在您的 Servlet 中执行业务逻辑后。转发到想要的页面

request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);

您没有提到您在 Servlet 方面的技能。所以,我建议

阅读更多:

  1. https://stackoverflow.com/tags/servlets/info
  2. What is the difference between JSF, Servlet and JSP?
  3. http://pdf.coreservlets.com/Servlet-Basics.pdf

【讨论】:

  • 感谢链接,我对Servlets知之甚少,刚开始学习。我会测试你的解决方案并通知你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
相关资源
最近更新 更多