页面数据交互规范
1、 Form的提交
1.1 get
1) get的FORM提交的特点
- get方式等于是在URL后面带着数据,在传递中文内容时会出现乱码;
- get只有一个流,参数附加在url后,地址行显示要传送的信息,大小个数有严格限制且只能是字符串;
- get调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来问题,例如用户名和密码等(不安全);
- 服务器随机接受GET方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕(服务器接收方式);
- 当form框里面的method为get时,执行doGet方法(执行方式);
- GET方法后面的信息量字节大小不要超过1.3K(容量限制);
2) 代码规范
禁止使用get方法进行form提交。
1.2 Post
1) POST的FORM提交的特点
- post的参数是通过另外的流传递的, 不通过url,所以可以很大,也可以传递二进制数据,如文件的上传;
- post传递数据是不会显示SERVLET的数据,这就很好的解决了不安全的问题(安全);
- POST方法,服务器先接受数据信息的长度,然后再接受数据(服务器接收方式);
- 当form框里面的method为post时,执行doPost方法(form的运行方式);
- post方法后面的信息量字节大小没有限制;
2) 代码规范
- 通过form的onsubmit事件直接提交
<html:form action="/update" onsubmit="return formCheck();">
<input type="submit" class="clsbtn2" name="subButton" value="修改" />
</html:form>
- 通过JS提交
<script>
document.form1.action=webapp+"/fishing/apply/businessAcceptDo.do";
document.form1.submit();
</script>
2、 URL提交
2.1Window的提交
<script>
var id=$Q("#id").val();
window.navigate("delete.do?id="+id);
</script>
2.2 <html:link>
<html:link page="/updateView.do" paramId="id" paramName="item" paramProperty="id">更新</html:link>
3、 AJAX的提交
3.1 Url参数提交数据
function sendRequest(url) {//初始化、指定处理函数、发送请求的函数
httprequest = false;
if(window.XMLHttpRequest) {//Mozilla 浏览器
httprequest = new XMLHttpRequest();
if(httprequest.overrideMimeType) {//设置MIME类别
httprequest.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) { //IE 浏览器
try {
httprequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httprequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if(!httprequest) {
window.alert("错误");
}
httprequest.onreadystatechange = processrequest;// processrequest为回调函数,既数据返回后调用的方法。
httprequest.open("GET",url,false);
httprequest.send(null);
}