⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsonservlet.java

📁 JavaScript完全自学宝典 (G) 演示JavaScript的简单应用及JavaScript特效
💻 JAVA
字号:
package jsonExercise;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

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

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONServlet extends HttpServlet {
	
	private static final String CONTENT_TYPE = "text/html; charset=GBK";
	private List<ComdtyBean> comdtyList = genComdtyList(); //商品信息列表

	public JSONServlet() {
		super();
	}

	public void destroy() {
	}

	/**
	 * servlet的doGet方法
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType(CONTENT_TYPE);
		String type = request.getParameter("type"); //获取操作类型
		StringBuffer rtnStr = new StringBuffer(""); //返回页面的信息
		if("checkCode".equals(type))
		{ //操作类型为“检验商品编码”
			String code = request.getParameter("code"); //获得商品编码
			JSONObject jsonObj = new JSONObject(); //JSON对象
			if(isComdtyExist(code).equals("1"))
			{ //商品编码存在
				jsonObj.put("rtnCode", "0000");
				jsonObj.put("rtnMsg", "OK");
			}
			else
			{ //商品编码不存在
				jsonObj.put("rtnCode", "1000");
				jsonObj.put("rtnMsg", "未获取此商品信息,请重新输入。");
			}
			rtnStr.append(jsonObj.toString()); //将JSON对象转换为字符串并返回
		}
		else if("save".equals(type))
		{ //保存操作
			String comdtyInfos = request.getParameter("comdtyList"); //获取JSON格式的商品列表
			System.out.println("从客户端获取的商品列表:\n" + comdtyInfos);
			JSONArray comdtyAry = JSONArray.fromObject(comdtyInfos);
			if(comdtyAry != null && comdtyAry.size() > 0)
			{ //JSON数组不为空
				for(int i=0; i<comdtyAry.size(); i++)
				{ //遍历JSON数组
					JSONObject obj = JSONObject.fromObject(comdtyAry.get(i));
					//从JSON数组中获取JSON对象
					System.out.println("获取的商品编码:" + obj.get("comdtyCode"));
					System.out.println("获取的订购数量:" + obj.get("comdtyNum"));
					rtnStr.append("商品编码:").append(obj.get("comdtyCode")).
					append("  订购数量:").append(obj.get("comdtyNum")).append("<br>");
					//从JSON对象中获取信息
				}
			}
		}
		PrintWriter out = response.getWriter();
		out.print(rtnStr);
		out.flush();
		out.close();
	}

	/**
	 * servlet的doPost方法
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
	
	/**
	 * 检验指定编号的商品是否存在
	 * 存在返回“1”,否则返回“0”
	 * @param code
	 * @return
	 */
	private String isComdtyExist(String code)
	{
		String flag = "0";
		for(ComdtyBean bean : comdtyList)
		{
			if(code.equals(bean.getComdtyCode()))
			{
				flag = "1";
				break;
			}
		}
		return flag;
	}
	
	/**
	 * 生成商品信息列表
	 * @return
	 */
	private List<ComdtyBean> genComdtyList()
	{
		List<ComdtyBean> lst = new ArrayList<ComdtyBean>();
		lst.add(new ComdtyBean("10101", "1", "商品1"));
		lst.add(new ComdtyBean("10102", "1", "商品2"));
		lst.add(new ComdtyBean("10201", "1", "商品3"));
		lst.add(new ComdtyBean("10202", "1", "商品4"));
		return lst;
	}

	public void init() throws ServletException {
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -