IMap 对map的功能的强化
为了解决表单提交获得数据的方便性,我们将map的功能进行加强,表单提交的数据会自动将页面数据放入PageData对象中,当从页面获取数据时 new的时候要传request。
request.getParameter(arg0): get(arg0)或getString(arg0)
request.getParameterValues(arg0): getValues(arg0)方法
本类也可以当做一个普通的Map使用,new的时候不要传参数
package com.jit.el.common;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; public class IMap extends HashMap{ private static final long serialVersionUID = 1L;
Map map = null;
HttpServletRequest request;
//从页面获取数据
public IMap(HttpServletRequest request){
map = new HashMap();
this.request = request;
Map requestParams = request.getParameterMap();
Set<Map.Entry> entrySet = requestParams.entrySet();
for (Map.Entry entry : entrySet) {
String key = (String) entry.getKey();
String[] values = (String[]) entry.getValue();
String value;
try {
value = transParamDecode(values[0], "UTF-8"); // value = value.replaceAll( "(?i)<script", "<script" );
// value = value.replaceAll( "(?i)</script>", "</script>" ); map.put(key, value);
} catch (Exception e) {
e.printStackTrace();
}
}
} //普通的Map
public IMap() {
map = new HashMap();
} public Object get(Object key) {
return map.get(key);
} //本方法只能用于从页面获取数组,例如相同名字的checkbox
public String[] getValues(Object key) {
return request == null ? null:request.getParameterValues((String)key);
} public String getString(Object key) {
Object o = get(key);
return o == null? null:o.toString();
} public String getString(String name, String defaultValue) {
String value = getString(name);
return value == null ? defaultValue : value;
} /**
* get names
* @return String[]
*/
public String[] getNames() {
String[] names = (String[]) keySet().toArray(new String[0]);
Arrays.sort(names);
return names;
} /**
* get int
* @param name
* @return int
*/
public int getInt(String name) {
return getInt(name, 0);
} /**
* get int
* @param name
* @param defaultValue
* @return int
*/
public int getInt(String name, int defaultValue) {
String value = getString(name, "");
return "".equals(value) ? defaultValue : Integer.parseInt(value);
} /**
* get double
* @param name
* @return double
*/
public double getDouble(String name) {
return getDouble(name, 0);
} /**
* get double
* @param name
* @param defaultValue
* @return double
*/
public double getDouble(String name, double defaultValue) {
String value = getString(name, "");
return "".equals(value) ? defaultValue : Double.parseDouble(value);
} /**
* get boolean
* @param name
* @return boolean
*/
public boolean getBoolean(String name) {
return getBoolean(name, false);
} /**
* get boolean
* @param name
* @param defaultValue
* @return boolean
*/
public boolean getBoolean(String name, boolean defaultValue) {
String value = getString(name, "");
return "".equals(value) ? defaultValue : Boolean.valueOf(value).booleanValue();
} @SuppressWarnings("unchecked")
public Object put(Object key, Object value) {
return map.put(key, value);
} public Object remove(Object key) {
return map.remove(key);
} public void clear() {
map.clear();
} public boolean containsKey(Object key) { return map.containsKey(key);
} public boolean containsValue(Object value) { return map.containsValue(value);
} public Set entrySet() { return map.entrySet();
} public boolean isEmpty() { return map.isEmpty();
} public Set keySet() { return map.keySet();
} @SuppressWarnings("unchecked")
public void putAll(Map t) { map.putAll(t);
} public int size() { return map.size();
} public Collection values() { return map.values();
} private static String transParamDecode(String param, String charset) throws Exception {
if (param == null) {
return null;
}
return URLDecoder.decode(param.replaceAll("%", "%25"), charset);
}
}
IMap 对map的功能的强化的更多相关文章
- javascript实现map的功能(转载)
/* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * put(key, v ...
- Android(java)学习笔记102:Map集合功能概述
下面通过代码引入Map集合:如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生来说,是 ...
- Android(java)学习笔记41:Map集合功能概述
1. 下面通过代码引入Map集合: 如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生 ...
- javascript自定义简单map对象功能
这里介绍一种js创建简单map对象的方法: function Map() { //创建object对象, 并给object对象添加key和value属性 var obj1=new Object(); ...
- 利用Array Prototype的方法来实现对dom集合的筛选、indexOf、map等功能
<!DOCTYPE html><html> <head> <title>TODO supply a title</title> <me ...
- charles本地调试之map和rewrite功能
charles是一款mac下代理调试工具,对于前端开发同学来说是相当方便的一个调试接口的工具:不过charles需要收费,不过在天朝几乎收费的软件都能找到破解方法: 使用charles前,需要将cha ...
- python 列表解析与map和filter函数
不知哪儿看到一个说法,大概是当map的函数参数可以直接引用一个已有的函数变量时(比如内建函数int,str之类的),用map更优美些,否则还是用列表解析更直观和快速. 我同意此说法. 昨天在写一个函数 ...
- kali菜单中各工具功能
一.说明 各工具kali官方简介(竖排):https://tools.kali.org/tools-listing 安装kali虚拟机可参考:https://www.cnblogs.com/lsdb/ ...
- Kali Linux菜单中各工具功能大全
各工具kali官方简介(竖排):https://tools.kali.org/tools-listing 名称 类型 使用模式 功能 功能评价 dmitry 信息收集 whois查询/子域名收集/ ...
随机推荐
- 【10-25】intelliji ide 学习笔记
快捷键 /** alter+enter 导包,异常处理等提示 psvm 快速main函数 sout 快速sysout语句 fi 快速for循环 ctrl+d 重复一行 Ctrl+X 删除行 Ctrl+ ...
- 阿里笔试题:在n个人中找明星
题目描述:有N个人,其中一个明星和n-1个群众,群众都认识明星,明星不认识任何群众,群众和群众之间的认识关系不知道,现在如果你是机器人R2T2,你每次问一个人是否认识另外一个人的代价为O(1),试设计 ...
- 调用手机在线API获取手机号码归属地信息
手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确.号段容量最大的手机号码归属地数据库系统, 目前号段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度 ...
- Myeclipse 构建工作空间出错
MyEclipse工作空间报错如下:'Building workspace' has encountered a problem. Errors occurred during the build.并 ...
- windows安装rabbitmq
官网下载windows安装版本:http://www.rabbitmq.com/install-windows.html ,安装文件rabbitmq-server-3.6.5.exe 前提:安装erl ...
- Hibernate之缓存的原理
一.关于缓存: 其实对于缓存而言,它其实就是一块内存空间,在这个空间中存放了相互关联的持久化对象, 也就是存在于Session缓存内的对象,那么Session负责根据持久化对象的状态变化来同步的更新数 ...
- 高程(3):操作符、for、for...in循环、break/continue/return语句、函数等
1.关系操作符 注意点:1)比较操作数是两个字符串,是比较字符串的字符编码值. 如:"a" > "b" 返回 false:"a" & ...
- 耿丹CS16-2班助教总结
Deadline: 2016-1-7 11:59pm 开篇有言 --又是一年末,不似风光,却添风霜,顶霾前进,踽踽独行,可乎? 助教那些事儿 助教这份工作是之前就担任过的,很羞愧,当时才担任了几天就撒 ...
- dell md3200i mdss (企业管理) 安装的那点事儿
首先获取安装包,解压后如图: 我是在windows 机上安装,所以执行windows 文件夹下的可执行程序: 双击红箭头文件,进行安装,步骤截图如下: 出现最后这个界面,就说明安装成功,直接重启系统就 ...
- Python全栈【异常处理】
Python全栈[异常处理] 本节内容: 1.异常处理 2.什么时候用异常处理 异常处理 1.异常处理: 异常就是程序运行时发生错误的信号,异常处理是在编程过程中为了增加友好性,在程序出现bug时一般 ...