如何在URLEncoder消息中放置HTML链接

时间:2016-02-04 21:50:25

标签: java html jsp

我正在尝试在java中创建一个带有链接的String。 消息读起来像

String message ="Something happened please go back to <a href=\"link.com\"> Home </a> and start again";

此消息最终使用

进行编码
String msg = URLEncoder.encode(message,"UTF-8");

并显示在JSP页面上,但在JSP页面上呈现时此消息如下所示。

Something happened please go back to <a href=\"link.com\"> Home </a> and start again

普通字符串,但没有实际链接。

我不确定如何在Java中的String消息中嵌入链接。

1 个答案:

答案 0 :(得分:0)

这看起来很像这个链接上讨论的问题: https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/#Donotuse%7B%7Bjava.net.URLEncoder%7D%7Dor%7B%7Bjava.net.URLDecoder%7D%7DforwholeURLs

文章说:

  

不要将java.net.URLEncoder或java.net.URLDecoder用于整个网址   我们不是在开玩笑。这些类不用于编码或解码   URL,正如他们的API文档清楚地说:

     

HTML表单编码的实用程序类。这个类包含静态   将String转换为的方法   application / x-www-form-urlencoded MIME格式。欲获得更多信息   关于HTML表单编码,请参阅HTML规范。

     

这与网址无关。它最多类似于查询部分编码。   使用它来编码或解码整个URL是错误的。你会想   标准JDK有一个标准类来处理URL编码   正确(部分,即)但要么它不存在,要么我们   还没有找到它,这诱使很多人使用URLEncoder   出于错误的目的。

我已经从上面的页面格式化了相关代码,并根据您的代码对其进行了调整:

String pathSegment = "link.com"; 
String message ="Something happened please go back to <a href=\"" + URLUtils.encodePathSegment(pathSegment) + "> Home </a> and start again";