您的位置:首页 > 产品设计 > UI/UE

request取参数值问题

2015-12-29 10:40 477 查看
对于request的取值根据请求方式不同(post,get)可以分两种

因为getQueryString()只能获取到get请求的参数所以post请求发过来的参数需要通过request.getParameterMap()来循环生成

然后根据key和value对字符串进行拼接

HttpServletRequest request = ServletActionContext.getRequest();

    Map<String, String[]> params = request.getParameterMap();

   

    String cs="";

    if(request.getQueryString()!=null){//针对get请求

    try {

    cs=URLDecoder.decode(request.getQueryString(),"utf-8");

    } catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    }

    }else{

            for (String key : params.keySet()) {//针对post请求 

                String[] values = params.get(key);  

                for (int i = 0; i < values.length; i++) {  

                    String value = values[i];  

                    cs += key + "=" + value + "&";  

                }  

            }

    }

附上post和get请求的区别

1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: