代码之家  ›  专栏  ›  技术社区  ›  Fuzz

使用动态jsp或servlet构建URL有哪些策略?

  •  1
  • Fuzz  · 技术社区  · 10 年前

    我有一个网站,可以生成许多动态的公司简介。 这些都由一个带有标识公司的参数的jsp页面显示。

    我不是SEO实践方面的专家,但我确信用户友好的url比晦涩难懂的参数更适合搜索引擎。

    所以不是

    site.com/company.jsp?id=21312
    

    应该是这样的

    site.com/Country/State/Company_Name 
    

    或者类似的东西。

    是否有任何现有的策略或最佳实践来生成这些url? 我的环境是一个jsp/servlet tomcat容器,如果有什么不同,我使用的是前视图控制器模式。

    下面是我对如何解决这个问题的两个想法。

    1) 保存公司配置文件时(后端) 生成一个html页面 并重定向到参数化的jsp。此页面将保存在与我上面给出的示例相匹配的目录结构中/国家名称/州名称/公司名称.html

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

    2) 不知怎么的 解释url的servlet 并相应地重定向。

    换句话说,有一个名为Map的servlet(例如),所以有一个url,如: site.com/Map/Country/State/CompanyName 将由Mapservlet获取并分解url,以便找到有问题的页面。

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

    如果我还缺少其他选择,请告诉我,或者如果我可以改进我现有的想法。

    非常感谢。

    2 回复  |  直到 10 年前
        1
  •  1
  •   Alex Chernyshev    10 年前

    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

        2
  •  1
  •   Wenbing Li    10 年前

    这个 REST 为web URL提供最佳实践。您可以检查 this section 了解更多详情。

    此外,您还可以学习一些著名的REST API,例如。 Twitter REST API ,谷歌数据API( Google Contacts API 例如)。

    对于Java实现, JAX-RS 是RESTful Web Services的Java API。有许多实现,例如 CXF , RESTEasy , Jersey .

    下面的示例代码让您快速了解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;
        }
    }