HTML编码请求参数

时间:2016-07-29 15:24:00

标签: java spring jsp spring-mvc urlencode

我的应用程序是一个Spring MVC应用程序,不使用注释(虽然它使用spring 3.1.1,但它是一个很老的应用程序)。

我有一个JSP页面,可以通过curl等工具或直接从Web浏览器URL调用。 URL接受名为location

的请求参数
>>> x = 1.8816764231589208e-06
>>> for i in range(10, 30):
...     fmt = "{:.%df}" % i
...     print fmt, fmt.format(x)
... 
{:.10f} 0.0000018817
{:.11f} 0.00000188168
{:.12f} 0.000001881676
{:.13f} 0.0000018816764
{:.14f} 0.00000188167642
{:.15f} 0.000001881676423
{:.16f} 0.0000018816764232
{:.17f} 0.00000188167642316
{:.18f} 0.000001881676423159
{:.19f} 0.0000018816764231589
{:.20f} 0.00000188167642315892
{:.21f} 0.000001881676423158921
{:.22f} 0.0000018816764231589208
{:.23f} 0.00000188167642315892079
{:.24f} 0.000001881676423158920791
{:.25f} 0.0000018816764231589207915
{:.26f} 0.00000188167642315892079146
{:.27f} 0.000001881676423158920791458
{:.28f} 0.0000018816764231589207914582
{:.29f} 0.00000188167642315892079145823
>>> 

在调用上面的url时,我调用SimpleFormController的一个实现来读取请求参数" mylocation"

如何对请求参数进行html编码" mylocation"。在我的控制器中从请求[request.getParameter(" mylocation")]中读取参数之前,如果我调用HtmlUtils.htmlEscape(request.getParameter(" mylocation"))就足够了

请注意,没有表格支持mylocation的输入参数,如前所述我可以从命令行工具或浏览器URL调用它。

1 个答案:

答案 0 :(得分:0)

有两件事:

1)URL编码/解码 - 只允许将GET参数传递给服务器。需要编码因为服务器需要转义一些特殊字符“?” ,“&”在查询字符串中。 它通常由Tomcat等Web服务器处理。

2)为防止XSS,您可以使用Jsoup。只有在网页上显示参数值时才需要它。

某些框架(如JSF)可以自动阻止XSS。当它们显示在网页上时,它们可以转义HTML。