1.get 和 post的区别
表面上看,这两者的区别就在于一个将键值串拼接在url中,另一个放在页面中整体提交,当然还有数据长度多少的区别,get有长度限制(2048bytes)。
2.get 和 post的相同点
二者提交时,浏览器都要进行编码urlcode传送。所以此时在action对应的地方需要进行decode来处理。
3.URLEncoder及URLDecoder使用时机
如果传送的所有data中没有特殊字符(非ASCII),则不用显式编码,注意空格会被编码为+。
如果是自页面提交,则浏览器会根据contentType中指定的编码进行encode而后传送,而接收的地方(action对应处)如果没有指定contentType或者指定的编码和提交处的编码不一致则需要显式地用URLDecoder来解码。
如果是两个jsp之间forward来传送参数(拼接url),则需要在拼接url前将含有特殊字符的字符串用URLEncoder.encode()编码,接收的页面配置contentType或者用URLDecoder.decode()解码。
4.[quote]HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype="multipart/form-data"的话)。
注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。[/quote]
表面上看,这两者的区别就在于一个将键值串拼接在url中,另一个放在页面中整体提交,当然还有数据长度多少的区别,get有长度限制(2048bytes)。
2.get 和 post的相同点
二者提交时,浏览器都要进行编码urlcode传送。所以此时在action对应的地方需要进行decode来处理。
3.URLEncoder及URLDecoder使用时机
如果传送的所有data中没有特殊字符(非ASCII),则不用显式编码,注意空格会被编码为+。
如果是自页面提交,则浏览器会根据contentType中指定的编码进行encode而后传送,而接收的地方(action对应处)如果没有指定contentType或者指定的编码和提交处的编码不一致则需要显式地用URLDecoder来解码。
如果是两个jsp之间forward来传送参数(拼接url),则需要在拼接url前将含有特殊字符的字符串用URLEncoder.encode()编码,接收的页面配置contentType或者用URLDecoder.decode()解码。
4.[quote]HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype="multipart/form-data"的话)。
注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。[/quote]