项目请求参数封装
来源:互联网 发布:js 正则 可有可无 编辑:程序博客网 时间:2024/06/05 02:28
根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。这是因为服务器为了实现一定的安全规范,所作的限制。比如WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。
如果实在有必要在取得此值以后做修改的话,要新建一个map对象,将返回值复制到此新map对象中进行修改,用新的map对象代替使用之前的返回值。
/** * @author: John * @desc: 封装请求参数 * 将请求中的请求参数和请求参数值的映射关系转换成可操作的Map * */public class PageData extends HashMap implements Map { public PageData() { map = new HashMap(); } private static final long serialVersionUID = 1L; Map map = null; HttpServletRequest request; public PageData(HttpServletRequest request) { this.request = request; Map properties = request.getParameterMap(); //记录请求中的请求参数和请求参数值的映射关系,只能读 Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Map.Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if (null == valueObj) { value = ""; } else if (valueObj instanceof String[]) { String[] values = (String[]) valueObj; for (int i = 0; i < values.length; i++) {//用于请求参数中有多个相同名称 value = values[i] + ","; } value = value.substring(0, value.length() - 1); } else { value = valueObj.toString();//用于请求参数中请求参数名唯一 } returnMap.put(name, value); } map = returnMap; } @Override public Object get(Object key) { Object obj = null; if (map.get(key) instanceof Object[]) { Object[] arr = (Object[]) map.get(key); obj = request == null ? arr : (request.getParameter((String) key) == null ? arr : arr[0]); } else { obj = map.get(key); } return obj; } public String getString(Object key) { return (String) get(key); } @SuppressWarnings("unchecked") @Override public Object put(Object key, Object value) { return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } public void clear() { map.clear(); } public boolean containsKey(Object key) { // TODO Auto-generated method stub return map.containsKey(key); } public boolean containsValue(Object value) { // TODO Auto-generated method stub return map.containsValue(value); } public Set entrySet() { // TODO Auto-generated method stub return map.entrySet(); } public boolean isEmpty() { // TODO Auto-generated method stub return map.isEmpty(); } public Set keySet() { // TODO Auto-generated method stub return map.keySet(); } @SuppressWarnings("unchecked") public void putAll(Map t) { // TODO Auto-generated method stub map.putAll(t); } public int size() { // TODO Auto-generated method stub return map.size(); } public Collection values() { // TODO Auto-generated method stub return map.values(); }}
阅读全文
0 0
- 项目请求参数封装
- Struts2 封装请求参数
- Struts2如何封装请求参数
- Struts2如何封装请求参数
- Struts2如何封装请求参数
- Retrofit2 封装统一请求参数
- struts2的请求参数封装
- 封装请求参数Page对象
- SnailApp项目---网络请求封装
- 使用Action来封装HTTP请求参数
- 使用BeanUtils工具类封装请求参数
- 封装Ajax请求,callback函数参数分析
- 【struts2】——封装请求参数
- Java URLConnection请求的参数进行封装
- Jmeter对于请求参数封装及使用
- 把请求的参数封装为xml
- 自定义拦截器封装公共请求参数
- Rxjava+retrofit 添加公共请求参数及请求结果封装
- 如何将excel格式的中国三级地址文件转换成android需要的json格式的文件(二)
- string的find函数
- 无限轮播+pulltorefresh刷新
- lecture7,Training Neural Networks, Part 2
- 代码大全 读书笔记(2)
- 项目请求参数封装
- js预处理阶段arguments深度解剖
- NOIP2012 Day2
- java接口的使用
- Druid大数据实时处理的开源分布式系统——Historical Node
- Oracle数据库、实例、用户、表空间、表之间的关系
- <二分答案加验证||最小生成树>bzoj 1821 部落划分
- 腾讯浏览服务接入文档
- iOS AutoLayout 简单运用(纯代码)