【问题标题】:I want to change the URL displayed in the address bar我想更改地址栏中显示的 URL
【发布时间】:2014-04-04 06:21:24
【问题描述】:

我有一个表格,我想要一个有 3 页的表格 (localhost/myapp)。

1.输入来自用户(asd.jsp)

2.验证(借助DB)(dfg.jsp)

3.输入我的应用所需的详细信息。(zxc.jsp)

现在在任何给定时间在 url 中我只想要localhost/myapp/ 而我不想在 url 上使用我的 jsp 文件名..

P.S: 已经试过了

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

它正在工作,但我仍然可以通过键入 url url 来访问文件。我不希望任何人这样做......所以需要指导!!!

感谢您的建议!!!

【问题讨论】:

  • 你将每个请求发送到 servlet 吗?
  • @sankrish 我没有因为它不是我的标准(常量 URL 名称)所以在第一个之后停止。
  • 这将解决您的疑问stackoverflow.com/a/9221731/3242978>
  • 如果你想生成一个动态的 URL,你可以去 URL 重写。使用户无法通过其 URL 访问页面。
  • 当然你的jsp可以通过文件名访问。为了防止它,您可以使用过滤器并将其映射到 url *.jsp,即任何以 .jsp 结尾的 url。如果它找到这样的 url,它应该给出一个错误,比如 404 或你想要的一些自定义错误消息。

标签: jsp servlets


【解决方案1】:

把jsp放到WEB-INF下。然后它将无法通过 url 中的文件名访问。您显然必须相应地更改您的 web.xml:

<servlet>
<servlet-name>myapp</servlet-name>
<jsp-file>/WEB-INF/dfg.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>myapp</servlet-name>
<url-pattern>/myapp</url-pattern> 
</servlet-mapping>

【讨论】:

  • 我没有得到你。我有 4 个 jsp 文件,你希望我将所有 jsp 文件从 WebContent 移动到 WEB-INF 吗?
  • 如果你想将它们映射到一个像 (sever/appname/somemappedname) 这样的 URL 但它们不能正常访问 (server/appname/file.jsp),那么这就是你必须做的到。
  • 正常访问没问题的,不需要移动。需要正常访问的不要移动,因为一旦放入WEB-INF就不能正常访问了。 WEB-INF 下的任何内容只有在映射后才能访问。
猜你喜欢
  • 2016-07-28
  • 2013-01-12
  • 1970-01-01
  • 2013-01-20
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
相关资源
最近更新 更多