【问题标题】:URL Rewriting in Java and SpringJava 和 Spring 中的 URL 重写
【发布时间】:2011-12-20 01:01:30
【问题描述】:

我是 Java 和 Spring 的新手。我需要知道如何在 Java 和 Spring 中实现 URL 重写。例如在 .NET 环境中,我们可以使用以下代码来实现:

Global.asax.cs:

protected void Application_BeginRequest(object sender, EventArgs e) {
  try {
    string fullOrigionalpath = Request.Url.ToString();
    if (fullOrigionalpath.Contains("/Home-Page")) {
      Context.RewritePath("~/home.aspx"); return;
    }
  }
}

同样,我们需要在Java和Spring中实现。

  1. 我们可以在 Java 和 Spring 中找到与此相关的任何内容吗?
  2. 如果不能使用上面的代码,如何实现URL重写?

我们将不胜感激。

【问题讨论】:

  • @RC.. 实际上我需要知道在 JAVA 和 spring 中是否有类似上述代码的东西,或者我们如何实现。所以 AFAIK 这不是你提到的内容的重复。
  • 我会说接受的答案正是你想要的。
  • 好的,但我还有一个疑问,我们可以通过在 java 和 spring 中使用上面的一些函数来实现 URL 重写吗?

标签: java spring spring-mvc url-rewriting tuckey-urlrewrite-filter


【解决方案1】:

我建议使用OCPsoft Rewrite(测试版)或OCPsoft PrettyFaces(最终版),它们是用于进行 Java Servlet URL 重写的更新和更先进的工具。

如果您想利用现有配置并添加更强大的基于 Java 的 Rewrite 配置,Rewrite 还支持您的 tukey 配置。

它非常稳定且经过良好测试。

package com.example;
public class ExampleConfigurationProvider extends HttpConfigurationProvider
{
   @Override
   public int priority()
   {
     return 10;
   }

   @Override
   public Configuration getConfiguration(final ServletContext context)
   {
     return ConfigurationBuilder.begin()
       .defineRule()
         .when(Direction.isInbound().and(Path.matches("/some/{page}/.*/")))
         .perform(Redirect.permanent("/new-{page}/"));
    }
}

【讨论】:

  • 林肯是OCPsoft的创始人,PrettyFaces和Rewrite的作者。你应该提到你的答案是有偏见的。
【解决方案2】:

如果您使用 Spring >= 3,则可以使用 @RequestMapping。见the official documentation

【讨论】:

  • 谢谢兄弟! +1 分享链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2011-08-09
  • 1970-01-01
  • 2010-12-18
  • 2012-01-01
  • 2016-06-27
  • 2011-07-13
相关资源
最近更新 更多