`

xml作为参数的兄弟们要注意了

阅读更多

将xml作为参数的兄弟们注意了,请将你们的xml,encodeURIComponent()了以后再post到你们的struts,否则,一些特殊字符,比如">",在xml中会被转义成">"。

 

到了struts端," > "中的"&"会被理解成URL的参数分割符,也就是说,“ > ”成了另一个参数,这个时候,所有在" > "之后的xml都会被截断,成了另一个参数,java端解析这个不完整的xml就会报错。

 

因此,你必须把你的xml做了encodeURIComponent(xml)以后再post到服务器端,这样解析出来的xml才是完整的。

 

因为,如果你的xml如果没有逃逸字符出现,就不会暴露出这个问题,所以,我在这里提醒没有发现问题的兄弟们,务必加上这个encodeURIComponent,不过别忘记要重新测试你的代码。

 

(一般struts端会自动解码,如果struts端没有解码,就使用java.net.URLDecoder.decode(String s, String enc))

 

 

escape 方法

String 对象编码以便它们能在所有计算机上可读,

escape( charString )

必选项 charstring 参数是要编码的任意 String 对象或文字。

说明

escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 % xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %u xxxx 格式存储。

注意   escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURIencodeURIComponent 方法。

encodeURI 方法

将文本字符串编码为一个有效的统一资源标识符 (URI)。

encodeURI( URIString )

必选的 URIString 参数代表一个已编码的 URI。

说明

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI ,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

encodeURIComponent 方法

将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。

encodeURIComponent( encodedURIString )

必选的 encodedURIString 参数代表一个已编码的 URI 组件。

说明

encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent ,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html ,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。

 

三种编码效果可以在这里试验:

http://xkr.us/articles/javascript/encode-compare/

评论

相关推荐

    MFC保存控件数据到xml及读取xml数据到控件

    为每个控件创建一个XML元素,将控件的属性(如ID、文本、状态等)作为元素的属性保存。 2. **读取XML数据到控件**: - 当应用程序启动时,或者需要恢复控件状态时,读取XML文件。使用TinyXML2的XMLDocument::Load...

    拼接xml调用webservice

    主体中包含实际的调用方法和参数,这些参数通常以XML格式拼接而成。 3. **Web Service接口**:Web Service提供者定义一套服务操作,这些操作通过WSDL(Web Services Description Language)文档公开。WSDL文件是一...

    调用webservice,通过post传参读取返回的XML

    它通常使用SOAP(简单对象访问协议)作为消息传输格式,XML作为数据交换格式。 2. **POST方法**:在HTTP请求中,POST方法用于向服务器发送数据,常用于提交表单或发送数据到服务器进行处理。在这个场景中,POST方法...

    c#直接操作xml文件作为数据库

    当我们将XML文件作为数据库,首先要做的就是读取XML文件并将其内容转换为可操作的数据结构。C#中可以创建一个自定义的类,该类的属性与XML文件的元素相对应。例如,如果XML文件描述的是学生信息,我们可以创建一个...

    Xml完全操作 XML增删改查

    修改XML通常涉及找到要更改的节点,然后更新其属性或内容。例如,如果要修改某个元素的文本,可以使用DOM API的`Node.setTextContent()`方法;如果要更改属性值,可以使用`Node.setAttribute()`。注意,修改后需要...

    将xml文件转换成csv格式

    1. **理解XML结构**:在转换之前,首先要了解XML文件的结构,包括根元素、子元素、属性等。这将决定CSV文件中的列名和数据分布。 2. **解析XML文件**:使用XML解析器,如Python的`ElementTree`库,Java的`JDOM`或`...

    XML可以做为参数传给【存储过程】也可以做为后台返回值传给前端的【JS】

    2. **处理XML参数的注意事项**: 在调用存储过程时,如果dataset的命名发生变化,可能导致问题。为了避免这种情况,可以在创建dataset时指定一个固定的名称,如`DataSet ds = new DataSet("bao");`这样,无论内部...

    XML验证器(XSD验证XML)

    3. 验证XML:使用XML文档对象的validate方法,传入XSD文档对象作为参数。 4. 处理验证结果:检查验证结果,如果返回值为真,说明XML文档有效;否则,遍历错误集合获取错误信息。 通过这样的验证器,开发者可以确保...

    c# 操作XML 技术

    XML 作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的 C# 也一样在很多领域离不开 XML。但是,C# 在很多方面对 XML 做了写封装,以至于很多操作 XML 的代码,都不需要手动去写。例如...

    xml加密解密工具XMLEncryption

    3、使用X.509加密xml,这种方法是用X.509作为非对称密钥,它由诸如VeriSign之类的第三方提供。 方法 不管xml加密是如何完成的,保存加密数据总是用两种方法之一。 1、加密后所有的元素都被命名为 2、加密后只有...

    读取xml文件中的配置参数实例

    在使用读取XML文件中的配置参数时,我们需要注意以下几点: 1. 需要正确配置XML文件的路径和名称。 2. 需要正确定义Bean的属性和 setter/getter 方法。 3. 需要正确使用ApplicationContext来读取XML文件中的配置...

    TC4热力参数.xml

    TC4热力参数.xml

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    在Mybatis中,我们经常需要处理复杂的SQL查询,其中涉及到多条件筛选,这些条件可能是可选的,并且可能需要在`AND`与`OR`之间灵活切换。...在实际应用中,一定要注意SQL安全和性能优化,避免不必要的全表扫描。

    MFC解析XML文档类

    `LoadXML`接受XML字符串作为参数,而`Load`则加载文件路径。 2. **验证XML文档**: - 在加载XML时,可以设置验证标志,如`IXMLDOMDocument::validateOnParse`,来验证XML文档是否符合其指定的DTD(文档类型定义)...

    XMLViewer xml查看器

    XMLViewer,查看xml文件非常好用的工具。 Viewer(xml查看器)是一款专业的xml查看软件。他可以帮助用户方便查看xml,以便检测语法是否正确。 安装之后,右键点击XML文件,选择“ View ”,方便快捷。

    XML文件的加密与解密

    XML(可扩展标记语言)作为一种常用的数据交换格式,在诸多应用场景中扮演着重要角色。因此,对XML文件进行有效的加密与解密处理是确保数据安全的关键步骤之一。 #### 二、XML文件加密的重要性 1. **数据安全性**...

    java中使用xslt转换xml成为另一个xml

    在Java编程环境中,XML(可扩展标记语言)和XSLT(可扩展样式表语言转换)是处理和转换XML文档的常见工具。XSLT是一种专门用于将XML文档转换为其他XML、HTML或文本格式的语言。本文将详细介绍如何在Java中使用XSLT来...

    检验xml文件有效性的小工具

    要使用这个工具,你只需要将你的XML文件路径作为参数传递给`TestXML`程序,它会通过解析和验证XML文件的语法来检查其有效性。如果XML文件有效,工具会返回成功信息;反之,它会报告错误位置和原因。这对于开发者调试...

    C++读取XML(彻底了解XML)

    C++读xml,包括读XML,写XML,让你完全了解XML。C++读xml,包括读XML,写XML,让你完全了解XML。C++读xml,包括读XML,写XML,让你完全了解XML。C++读xml,包括读XML,写XML,让你完全了解XML。C++读xml,包括读XML...

Global site tag (gtag.js) - Google Analytics