如何获取网页提交的数据

以一个用户登陆为例:
get提交:
/**
* 获取get提交的参数.(URI后面的参数数据)
*/
request.getQueryString();
得到结果是:user=1111&password=aaa
所以存在问题:
/**
* 问题:
* 1)获取到的参数数据,还需要进一步处理,获取参数值
* 2)两种提交方式的获取代码完全不一样的,不通用。
*/
解决:
/**
* 通用的获取参数的方法:(无论get和post可用)
* reuqest.getParameter(“name”) 获取一个值的参数
* request.getParameterValue(“name”) 获取多个值的参数
* request.getParameterNames() 获取所有参数名称
* request.getParameterMap() 获取所有参数对象
*/

System.out.println("++++++++++++++++");
        Enumeration<String> en=request.getParameterNames();//获取所有参数名称,只是名称
        while(en.hasMoreElements()){
            String s1=en.nextElement();
            System.out.println(en+"  "+request.getParameter(s1));
        }
    //第三种
 Map<String,String[]> map=request.getParameterMap(); //获取参数对象列名 (Map集合)
        //遍历map,三种方式
        //(1)
        Set<Entry<String,String[]>> set=map.entrySet();
        for(Entry<String,String[]> entry:set)
        {
            String key=entry.getKey();
            String values[]=entry.getValue();
            System.out.println(key+"  "+values[0]);
        }
        //(2)获取所有键对象的Set集合
        System.out.println("==========");
        Set<String> keyset=map.keySet();//获取所有键对象的Set集合
        for(String key1:keyset)
        {通过键对象获取值对象
            String value2[]=map.get(key1);
            System.out.println(key1+"   "+value2[0]);
        }
        //(3)values(): 获取所有值对象的Collection集合(只能获取值对象,不能获取键对象)
        System.out.println("==========");
        Collection<String[]> coll=map.values();
        for (String[] value : coll) {
            System.out.println(value[0]);
        }

//根据参数名称获取多个参数值
以爱好的checkbox为例
String[] hobbit=request.getParameterValues(“hobbit”);
for(String h:hobbit)
System.out.println(h);

**但是用 System.out.println();输出存在一个乱码问题,所以要解码:
(1)post方式
request.setCharacterEncoding(“utf-8”);
/**
* 设置参数解码时查询的码表
* 注意:
* 只对post提交的参数有效,对get提交的参数无效的!
* 因为这个方法只能设置对请求实体内容的解码时查询的码表。post提交的参数时放在实体内容中,所以对post是有效的!
* 但是get提交参数时放在URI后面的,这个方法无法影响URI后面的内容。
*/
(2)get方式,必须进行手动解码
if(“GET”.equals(request.getMethod())){//只对get方法
name = new String(name.getBytes(“iso-8859-1”),”utf-8”);
}
其中name就是要进行输出的字符串
这两种解码方式都要放在方法的第一行(所有网页参数的前面)

通用获取参数方法,在get和post中都是一样的,所以如果在get和post中都写一遍很浪费,所以可以在post方法中,调用doGet(request,response)方法,解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值