解决getQueryString乱码 代替request.getParameter("...")的方法

来源:互联网 发布:阿里云系统怎么root 编辑:程序博客网 时间:2024/06/04 18:43
import javax.servlet.http.HttpServletRequest;import java.util.Map;import java.util.StringTokenizer;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;/** *  * @author liuxingxing * * 2017年4月17日 */public class QueryStringParser {    Map paramMap;    HttpServletRequest request;    List<Map> list=new ArrayList<Map>();    /**     * 给request     * @param request     */    public QueryStringParser(HttpServletRequest request) {        String queryString=null;try {queryString = URLDecoder.decode(request.getQueryString(),"utf-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}        if (queryString == null) {            paramMap = null;            this.request = request;            return;        } else            paramMap = new HashMap();        StringTokenizer st = new StringTokenizer(queryString, "&");        while (st.hasMoreTokens()) {            String pairs = st.nextToken();            String key = pairs.substring(0, pairs.indexOf('='));            String value = pairs.substring(pairs.indexOf('=') + 1);            paramMap.put(key, value);        }    }        /**     * 直接给URL的getQueryString     * @param QueryString     */    public QueryStringParser(String QueryString) {        String queryString=null;try {queryString = URLDecoder.decode(QueryString,"utf-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}        if (queryString == null) {            paramMap = null;            return;        } else            paramMap = new HashMap();        StringTokenizer st = new StringTokenizer(queryString, "&");        String keys="";        String keyss="";        String values="";        String temp="";        int num=0;        while (st.hasMoreTokens()) {        Map map=new HashMap();            String pairs = st.nextToken();            String key = pairs.substring(0, pairs.indexOf('='));            String value = pairs.substring(pairs.indexOf('=') + 1);            paramMap.put(key, value);            map.put(key, value);            list.add(map);        }    }        public String getParameter(String key) {        if(paramMap==null)            return request.getParameter(key);        else{        return URLDecoder.decode((String) paramMap.get(key));          }    }    public String[] getParameterValues(String key){    String str="";    for (Map map : list) {        if(map.get(key)!=null){        str+=map.get(key).toString()+",";        }}    str=str.substring(0, str.length()-1);    return str.split(",");    }        public static void main(String[] args) {     QueryStringParser parser = new QueryStringParser("table=name&table=name1&Test=adc&table=name2");         String curPath = parser.getParameter("Test");         System.out.println(curPath);         String[] s=parser.getParameterValues("table");         for (String string : s) {System.out.println(string);}}}


                                             
1 0
原创粉丝点击