Java JSP 2.0 SEO友好链接编码
目前,我的JSP中有类似的内容Java JSP 2.0 SEO友好链接编码,java,jsp,seo,el,url-encoding,Java,Jsp,Seo,El,Url Encoding,目前,我的JSP中有类似的内容 <c:url value="/teams/${contact.id}/${contact.name}" /> 我的URL的重要部分是ID,我只是为了SEO的目的把名字放在上面(就像stackoverflow.com一样) 我只是想知道是否有一种快速而干净的方法来编码名称(更改空格per+、删除拉丁字符等)。我希望它是这样的: <c:url value="/teams/${contact.id}/${supercool(contact.nam
<c:url value="/teams/${contact.id}/${contact.name}" />
我的URL的重要部分是ID,我只是为了SEO的目的把名字放在上面(就像stackoverflow.com一样)
我只是想知道是否有一种快速而干净的方法来编码名称(更改空格per+、删除拉丁字符等)。我希望它是这样的:
<c:url value="/teams/${contact.id}/${supercool(contact.name)}" />
有这样的功能吗?或者我应该自己开发吗?中没有类似的功能。您需要创建自己的。顺便说一下,我宁愿用
-
代替空格
至此,您需要执行以下步骤:
string = string.toLowerCase();
-
,必要时折叠
string = string.replaceAll("[^\\p{Alnum}]+", "-");
package.com.example;
导入java.text.Normalizer;
导入java.text.Normalizer.Form;
公共最终类函数{
私有函数(){}
公共静态字符串prettyURL(字符串){
返回Normalizer.normalize(string.toLowerCase(),Form.NFD)
.replaceAll(“\\p{InCombiningDiacriticalMarks}+”,“”)
.replaceAll(“[^\\p{Alnum}]+”,“-”;
}
}
您可以在/WEB-INF/functions.tld
中注册它,如下所示:
自定义函数
1
http://example.com/functions
美丽的URL
com.example.Functions
java.lang.String prettyURL(java.lang.String)
您可以在JSP中使用它,如下所示:
...
查找server.urlencode,现在所有主要的服务器端语言都有它们。这仅适用。这并不是他真正想要的。否则的话,这确实是一个非常直截了当的答案:)顺便说一下,它被称为java.net.URLEncoder
。不是server.urlencode
或类似于C语言的东西。顺便问一下,有没有关于使用-而不是+来表示空格的文档?没有,其他人这样做了:)在我更新后的一段时间内进行了否决。首选-
的原因是+
实际上是空间的“URL安全”字符,不用于SEO目的。看看Stackoverflow和其他主要网站是如何做到这一点的。
string = string.replaceAll("[^\\p{Alnum}]+", "-");