`

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/

评论

相关推荐

    Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf

    在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...

    拼接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文件转换成csv格式

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

    将xml内容显示Qt界面

    在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而Qt则是一个跨平台的应用程序开发框架,尤其适合创建GUI(图形用户界面)。本项目结合了XML的数据处理与Qt的界面展示技术,实现...

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

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

    XML验证器(XSD验证XML)

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

    QT程序中修改XML文件

    QT程序中修改XML文件是一个常见的任务,特别是在软件开发中,XML作为一种结构化数据存储格式,经常用于配置文件、数据交换等。本程序示例展示了如何在QT环境下利用C++进行XML文件的操作,编译环境为Visual C++ 6.0。...

    xml加密解密工具XMLEncryption

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

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

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

    Xml完全操作 XML增删改查

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

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

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

    Xml Viewer (xml文档修改器)

    9. **安全考虑**:在处理XML文件时,需要注意防止XXE(XML External Entity)攻击,这是一种利用XML解析器的特性来获取服务器敏感信息的攻击方式。好的XML Viewer会对此类风险有所防范。 10. **XML数据绑定**:在...

    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来...

    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...

    jqGrid使用XML數據源例子

    在XML中,jqGrid寻找`<rows>`元素作为数据行的容器,`<row>`元素表示每一行数据,而`<cell>`元素包含每行中的单元格数据。 3. **定义列模型**: 在jqGrid中,我们需要定义列模型来指定列的名称、宽度、对齐方式等...

    根据word的xml模板生成word文件

    本文将详细介绍如何根据 Word 的 XML 模板生成 Word 文件,包括服务位置、参数设置、日期类型字段处理等方面的知识点。 一、服务位置 com_service.service.word:wordCreateSer 服务是一个根据 Word 模板生成 Word ...

Global site tag (gtag.js) - Google Analytics