我正在使用 spring MVC 构建一个 webapp,并且很好奇是否有任何干净的方法来制作 SEO url。
例如,而不是http://mysite.com/articles/articleId等,有:
我正在使用 spring MVC 构建一个 webapp,并且很好奇是否有任何干净的方法来制作 SEO url。
例如,而不是http://mysite.com/articles/articleId等,有:
如果您使用新的 Spring-MVC 注释,则可以使用 @RequestMapping 和 @PathVariable 注释:
@RequestMapping("/articles/{subject}")
public ModelAndView findArticleBySubject(@PathVariable("subject") String subject)
{
// strip out the '-' character from the subject
// then the usual logic returning a ModelAndView or similar
}
我认为仍然有必要去掉 - 字符。
http://mysite.com/articles/my-article-subject是一个比http://mysite.com/articles/articleId更强大的 URL - 特别是如果标题和标题标签也匹配“my-article-subject”并且页面内容中有“我的”、“文章”和“主题”。
例如,如果您想要网址
http:///blog/11/12/2009/my-hello-world-post/
然后配置servlet映射
<servlet>
<servlet-class>com.blog.Blog</servlet-class>
<servlet-name>blog</servlet-name>
<servlet-class>com.blog.Blog</servlet-class>
</servlet >
<servlet-mapping>
<servlet-name>blog</servlet-name>
<url-pattern>/blog/*</url-pattern>
</servlet-mapping>
并在 servlet 代码中
字符串 url = request.getPathInfo();
StringTokenizer 令牌 = new StringTokenizer(url,"/");
while(tokens.hasMoreTokens()){
out.println("
"+tokens.nextToken());
}
使用这些参数从数据库中获取数据并显示给用户
标准的 Java Web 框架还没有为这些 URL 做好准备。
AFAIK,SpringMVC 不支持这种 URL。
我确信有两个框架支持这种 URL:Mentawai 和 VRaptor。
如果您只是在寻找 SEO 优化,您可以这样设计您的 URL:
http://mysite.com/articles/my-article-subject/articleId
或者
http://mysite.com/articles/articleId/my-article-subject
并在评估网址时忽略 my-article-subject 部分。
亚马逊对他们的 URL 做了类似的事情:
这里的文本“Dark-Crystal-Jean-Pierre-Amiel”是完全不相关的,因为该文章由 id B00000JPH6 标识。
编辑:事实上,我刚刚注意到,就在这里,这种精确的技术用于生成对 SEO 友好的 URL...
我在我们的应用程序中使用了漂亮的面孔http://ocpsoft.org/prettyfaces/,因为它是基于 JSF 的。这是一个非常巧妙的解决方案。不确定它是否适用于 Spring MVC 看看我们的 URL
http://www.skill-guru.com/cat/certification-mock-test
http://www.skill-guru.com/test/81/core-spring-3.0-certification-mock
http://www.skill-guru.com/tutor/Pro+ESL
早些时候,我们有非 SEO 友好的 URL,并附加了 jsession Id。现在,在漂亮的过滤器的帮助下,一切都变得干净整洁。这非常符合 wordpress url。
生成包含 id 和 description 的 url 像这个 url http://stackoverflow.com/questions/784891/java-and-seo-urls
。在 servlet 中解析 url,然后使用 id 从数据库中获取数据。同样的技术也适用于这个 stackoverflow 页面。看看网址。然而,http://stackoverflow.com/questions/784891/java-and-seo-urls
它只考虑 questionId 并忽略描述。尝试http://stackoverflow.com/questions/784891
或http://stackoverflow.com/questions/784891/abcdxyz
。你会得到相同的页面。这是生成 seo url 的非常好的技术