java 获取 post参数

/**  
 * @Title: GgCzyTBServlet.java
 * @Package com.zzxy.common.gg_jgtb.servlet
 * @Description: TODO
 * @author 屈卞忠
 * @date 2016-8-22 下午05:02:03
 */
package com.zzxy.common.gg_czytb.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zzxy.common.gg_czytb.iface.CzytbFacade;
import com.zzxy.common.gg_jgtb.iface.JgtbFacade;
import com.zzxy.common.util.SpringBeanUtil;

/**
 * ClassName: GgCzyTBServlet 
 * @Description: TODO
 * @author 屈卞忠
 * @date 2016-8-22 下午05:02:03
 */
@SuppressWarnings("serial")
public class GgCzyTBServlet extends HttpServlet {
	CzytbFacade czytbFacade = (CzytbFacade) SpringBeanUtil.getBean("czy.CzytbFacade");

	/**
	 * 新增用户数据
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String str = this.getData(request);
		HashMap<String, String> map = this.jsonForMap(str);
		
		czytbFacade.addOrUpdateCzy(map.get("userId").toString(),map.get("username").toString(),map.get("orgId").toString()
				,map.get("phone").toString(),map.get("workTel").toString());
	}

	/**
	 * 更新用户数据
	 */
	public void doPut(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	/**
	 * 
	 * @Description: TODO 获取请求传输过来的数据
	 * @param @param req
	 * @param @return
	 * @param @throws IOException   
	 * @return String  
	 * @throws
	 * @author 屈卞忠
	 * @date 2016-8-25 上午09:36:14
	 */
	private String getData(HttpServletRequest req) throws IOException {
		// 获取post参数
		StringBuffer sb = new StringBuffer();
		InputStream is = req.getInputStream();
		InputStreamReader isr = new InputStreamReader(is);
		BufferedReader br = new BufferedReader(isr);
		String s = "";
		while ((s = br.readLine()) != null) {
			sb.append(s);
		}
		return  sb.toString();
	}
	/**
	 * 
	 * @Description: TODO 将json字符串转换为hashmap
	 * @param @param str
	 * @param @return   
	 * @return HashMap<String,String>  
	 * @throws
	 * @author 屈卞忠
	 * @date 2016-8-26 下午02:38:02
	 */
	private HashMap<String, String> jsonForMap(String str) {
		/*
		{"data":{"userId":"0002","username":"朱玉国","orgId":"100","orgName":"长沙3银行总行","deptId":"","position":"董事长","phone":"18807312207","workTel":"54221","shortTel":"101","displayOrder":1,"enable":true},"secret":"7cb32c5c98344646b6a9c9ac7caf5245"}
		*/
		HashMap<String, String> map = new HashMap<String, String>();
		String data_ = str.substring(1, str.length()-1);
		System.out.println(data_);
		String data1_ = data_.split("}")[0];
		String data2_ = data1_.substring(8);
		String [] data = data2_.split(",");
		for(int i=0 ;i<data.length;i++){
			String[] s_ = data[i].split(":");
			String key=s_[0].substring(1, s_[0].length()-1);
			String value = "";
			if(s_[1].contains("\"")){
				value = s_[1].substring(1, s_[1].length()-1);
			}else{
				value = s_[1];
			}
			map.put(key, value);
		}
		return map;
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

P2580 于是他错误的点名开始了

题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人。 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉...

31770
来自专栏拂晓风起

java poi读取excel公式,返回计算值

16220
来自专栏HansBug's Lab

3098: Hash Killer II

3098: Hash Killer II Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge S...

29960
来自专栏GIS讲堂

用geotools自己写WMS服务

本文讲述如何结合geotools写一个类似于WMS的地图服务,并实现在OL4中的调用展示。

29960
来自专栏我是攻城师

Fastjson解析嵌套Map例子

43850
来自专栏XAI

Excel导出工具类.

 Excel导出工具类.--POI import java.io.OutputStream; import java.lang.reflect.Field; i...

221100
来自专栏calmound

UVA 10604 Chemical Reaction(六维dp数组)

题意:有六种不同的试剂,放于试管中,不同的试剂融合其产生的热量不同,且生成的新试剂也不相同,问最后最低温度是多少。 分析:由于只有六种试剂,所以开辟一个六维dp...

37970
来自专栏程序你好

如何使用Java Stream Collectors(归约器)?

Java 8引入了Stream API,它允许我们以声明的方式处理数据。此外,Stream还可以在不需要编写多线程代码的情况下使用多核架构。

9010
来自专栏ml

Redis学习笔记二

  学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而...

34190
来自专栏码匠的流水账

聊聊storm TridentTopology的构建

storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java

11920

扫码关注云+社区

领取腾讯云代金券