使用动态jsp或servlet构建URL的策略是什么?

时间:2014-08-02 10:38:54

标签: java jsp tomcat servlets seo

我有一个网站,可以生成许多动态的公司资料。 这些都由一个jsp页面显示,其中包含一个标识公司的参数。

我不是SEO实践方面的专家,但我确信用户友好的网址对搜索引擎来说会更好,然后是一个不起眼的参数。

所以而不是

site.com/company.jsp?id=21312

应该阅读

site.com/Country/State/Company_Name 

或者那种效果。

是否有任何现有策略或最佳做法来制作这些网址? 我的环境是一个jsp / servlet tomcat容器,如果有任何不同,我正在使用前视图控制器模式。

以下是我对如何解决它的两点看法。

1)保存公司资料(后端)生成html页面,并重定向到参数化的jsp。此页面将保存在与上面给出的示例匹配的目录结构中。 /CountryName/StateName/CompanyName.html

我不知道搜索引擎是否会忽略它,因为它会重定向到另一个页面。我还预测,当公司名称发生变化或其位置发生变化时,内务管理可能会成为问题。所以我不知道这是否是最好的选择。

2)不知何故有一个 servlet解释url 并相应地重定向。

所以换句话说有一个名为Map的servlet(例如),所以有一个url:site.com/Map/Country/State/CompanyName 将被Map servlet拾取并细分url以查找相关页面。

我不知道servlet是否可以实现这一点。 (编辑:可以使用Map / *完成)

如果我遗失了其他任何选项,请告诉我,或者我是否可以改进现有的想法。

非常感谢。

2 个答案:

答案 0 :(得分:1)

REST为您提供了网址的最佳做法。您可以查看this section了解详情。

您还可以从一些着名的REST API中学习,例如。 Twitter REST API,Google数据API(例如Google Contacts API)。

对于Java实现,JAX-RS是用于RESTful Web服务的Java API。有许多实现,例如CXFRESTEasyJersey

下面的示例代码让您快速了解JAX-RS的外观:

// Root resource class
@Path("/employeeinfo")
public class EmployeeInfo {

    // Subresource locator: obtains the subresource Employee
    // from the path /employeeinfo/employees/{empid}
    @Path("/employees/{empid}")
    public Employee getEmployee(@PathParam("empid") String id) {
        // Find the Employee based on the id path parameter
        Employee emp = ...;
        ...
        return emp;
    }
}

答案 1 :(得分:1)

这是UrlRewriteFilter!

http://tuckey.org/urlrewrite/

配置以执行您所要求的内容:

<rule>
  <name>World Rule</name>
  <from>^/world/([a-z]+)/([a-z]+)$</from>
  <to>/world.jsp?country=$1&amp;city=$2</to>
</rule>

http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html