📄 jsonservlet.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 + -