html表单的get+post提交数据,GET和POST两种提交表单的方式说明

这个url中,a、b和c是url参数,具体的说是参数名,与之用“=”隔开的是对应的参数值。也就是说参数a的值为3、参数b的值为5、参数c的值为7。get.do是请求地址,紧跟这个地址的参数a需要用“?”作为分隔符,其余参数用“&”做分隔符。

这种get请求发起后,服务器端可以通过request.getParameter()方法来获得参数值。如要获得参数a的值可以通过request.getParameter("a");

2.Post方式

相比get方式,post方式更为隐蔽。例如:http://www.javaweb.cc/post.do

在这个url中,你看不到任何参数,真正的参数隐藏在Http请求的数据体中。如果了解网络监听的话,就会对这一点深有体会。

我们举一个简单的例子:通过表单做登录操作。

我们简化一个登录表单:

  • 用户名
  • 密码
  • type="reset" value="重置" />

表单中有2个字段,用户名(username)和密码(password)

注意form标签中的method参数值是post!

即便是表单,在服务器端仍然可以通过request.getParameter()方法来获得参数值。

Post方式,其实是将表单字段和经过编码的字段值经过组合以数据体的方式做了参数传递。

经过一番阐述,相信大家对两种网络参数传递方式都有所了解了。

Get方式比较简单,通过构建一个简单HttpURLConnection就可以获得,我们暂且不说。

我们主要来描述一下如何通过java代码构建一个表单提交。

仔细研究表单提交时所对应的http数据体,发现其表单字段是以如下方式构建的:

arg0=urlencode(value0)&arg1=urlencode(value1)

当然,尤其要注意字段名,参数名只不能使用中文这类字符。

3、通过httpclient来模拟POST提交表单:

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngimportjava.util.Random;

4f1150b881333f12a311ae9ef34da474.pngimportjava.util.ArrayList;

4f1150b881333f12a311ae9ef34da474.pngimportjava.util.List;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.HttpEntity;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.HttpResponse;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.NameValuePair;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.client.entity.UrlEncodedFormEntity;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.client.methods.HttpGet;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.client.methods.HttpPost;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.cookie.Cookie;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.impl.client.DefaultHttpClient;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.message.BasicNameValuePair;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.protocol.HTTP;

4f1150b881333f12a311ae9ef34da474.pngimportorg.apache.http.util.EntityUtils;

4f1150b881333f12a311ae9ef34da474.png

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gif/** *//**d18c02628675d0a2c816449d98bda930.png * Example how to use multipart/form encoded POST request.

8f1ba5b45633e9678d1db480c16cae3f.png*/1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassClientMultipartFormPost9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.pngpublicstaticvoidExecuClient(String userName, String wlanuserip2,

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif            String wlanacip2)throwsException9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png        DefaultHttpClient httpclient=newDefaultHttpClient();

d18c02628675d0a2c816449d98bda930.png        String a1="http://172.21.16.38:8080/bpss/jsp/do_login.jsp";

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.giftry9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png            HttpGet httpget=newHttpGet(a1);

d18c02628675d0a2c816449d98bda930.png            HttpResponse response=httpclient.execute(httpget);

d18c02628675d0a2c816449d98bda930.png            HttpEntity entity=response.getEntity();

d18c02628675d0a2c816449d98bda930.png            System.out.println("Login form get:"+response.getStatusLine());

d18c02628675d0a2c816449d98bda930.png            EntityUtils.consume(entity);

d18c02628675d0a2c816449d98bda930.png//这里需要生成并传递一个COOKIE过去d18c02628675d0a2c816449d98bda930.pngSystem.out.println("Initial set of cookies:");

d18c02628675d0a2c816449d98bda930.png            Listcookies=httpclient.getCookieStore().getCookies();

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifif(cookies.isEmpty())9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png                System.out.println("None");

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif            }else9b8a8a44dd1c74ae49c20a7cd451974e.png{

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.giffor(inti=0; i{

d18c02628675d0a2c816449d98bda930.png                    System.out.println("-"+cookies.get(i).toString());

ecedf933ec37d714bd4c2545da43add2.png                }ecedf933ec37d714bd4c2545da43add2.png            }d18c02628675d0a2c816449d98bda930.png            HttpPost httppost=newHttpPost(a1);

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.png            Listnvps=newArrayList();

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("local","zh_CN"));

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("USER", userName));

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("PWD","123456"));

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("pwdtype","1"));

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("actiontype","LOGIN"));

d18c02628675d0a2c816449d98bda930.png            nvps.add(newBasicNameValuePair("logonsessid",""));

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.png            httppost.setEntity(newUrlEncodedFormEntity(nvps, HTTP.UTF_8));

d18c02628675d0a2c816449d98bda930.png

d18c02628675d0a2c816449d98bda930.png            response=httpclient.execute(httppost);

d18c02628675d0a2c816449d98bda930.png            entity=response.getEntity();

d18c02628675d0a2c816449d98bda930.png            System.out.println("测试地址:"+a1);

d18c02628675d0a2c816449d98bda930.png            System.out.println("Login form get:"+response.getStatusLine());

d18c02628675d0a2c816449d98bda930.png            EntityUtils.consume(entity);

d18c02628675d0a2c816449d98bda930.png            

d18c02628675d0a2c816449d98bda930.png//读出COOKIE信息d18c02628675d0a2c816449d98bda930.pngSystem.out.println("Post logon cookies:");

d18c02628675d0a2c816449d98bda930.png            cookies=httpclient.getCookieStore().getCookies();

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifif(cookies.isEmpty())9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png                System.out.println("None");

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif            }else9b8a8a44dd1c74ae49c20a7cd451974e.png{

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.giffor(inti=0; i{

d18c02628675d0a2c816449d98bda930.png                    System.out.println("-"+cookies.get(i).toString());

ecedf933ec37d714bd4c2545da43add2.png                }ecedf933ec37d714bd4c2545da43add2.png            }d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif        }finally9b8a8a44dd1c74ae49c20a7cd451974e.png{

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.giftry9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png                httpclient.getConnectionManager().shutdown();//总是关闭连接97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif}catch(Exception ignore)9b8a8a44dd1c74ae49c20a7cd451974e.png{

d18c02628675d0a2c816449d98bda930.png                System.out.println(ignore.getMessage());

ecedf933ec37d714bd4c2545da43add2.png            }ecedf933ec37d714bd4c2545da43add2.png        }ecedf933ec37d714bd4c2545da43add2.png    }

posted on 2012-06-06 17:09 japper 阅读(4287) 评论(1)  编辑  收藏 所属分类: Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值