表单POST和GET的区别

项目中前台中文提交到后台就乱码了,和学长找了N久都没发现原因,最后发现是在页面中虽然在form表单出写上了method=“POST” 但是在网页脚本那里设定按照GET发送请求,导致最后页面的请求是以GET进行请求的.

既然解决了问题,那么顺便来学一学POST请求与GET请求的区别.

我这里只罗列了三点

以下部分见解为网上复制,另外有一些自己的实际操作试验.

 

1,GET顾名思义为获取,POST就为邮递发送的意思.但实际上GET也能传送数据,只不过GET能传送的数据量非常小,其要小于2048字节,也就是2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为 100KB。

这也就是我们项目中出错的原因.

下面附上乱码的例子,乱码的同学可以找找是不是这个错误:

 

页面:简单的form表单,然后输出值栈中的name.

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'MyJsp.jsp' starting page</title>
  </head>
  <body>
    <form action="test.action" method="POST">  <!--注意这里先用POST-->
        <input type="text" name="name">
        <input type="submit" value="提交">
    </form>
    <s:property value="name"/>
  </body>
</html>

网页演示:

在其中输入  “不断坚持”  之后点击提交显示网页:
 
 
如果我们将页面form表单中的method改成GET之后,再输入 “不断坚持”
页面就会出现乱码:
 
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
还是以上面的例子来测试一下:
当为GET请求,在页面输入“Jim”,然后点击提交.我们看到地址栏中:http://localhost/webTest/test.action?name=hehe
当为POST请求,在页面输入“Jim”,然后点击提交.我们看到地址栏中:http://localhost/webTest/test.action
 
3. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
这个我还没有仔细去了解为何如此.
 
 
不断坚持!
 
 
 
posted @ 2013-12-03 18:32  不断坚持  阅读(3541)  评论(0编辑  收藏  举报