JSONServlet 过滤器

来源:互联网 发布:淘宝女装店铺起名 编辑:程序博客网 时间:2024/05/21 15:04
package com.xxx.core.filter;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.json.JSONObject;public class JsonFilter extends HttpServlet {private static final long serialVersionUID = 8713394123750996128L;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String requestJSON = "";// 获取前台JSON参数串requestJSON = this.getRequestJSONStr(req);// 获取接口参数String action = this.getRequestParams(requestJSON, "action");req.setAttribute("action", action);RequestDispatcher dispatcher = req.getRequestDispatcher("/index.html");dispatcher.forward(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置返回的数据MIME类型resp.setContentType("text/json; charset=utf-8");PrintWriter out = resp.getWriter();JSONObject resultJSON = new JSONObject();resultJSON.put("status", "失败,请使用 POST 方法");String jsonResultStr = JSONObject.valueToString(resultJSON);out.println(jsonResultStr);out.flush();out.close();}/** * 读取request的JSON串 * * @param req * @return */public String getRequestJSONStr(HttpServletRequest req) {BufferedReader sis;StringBuffer sb = new StringBuffer();try {sis = req.getReader();char[] buf = new char[req.getContentLength()];int len = 0;while ((len = sis.read(buf)) != -1) {sb.append(buf, 0, len);}} catch (IOException e) {e.printStackTrace();}String requestJson = sb.toString();return requestJson;}/** * 根据参数名称获取参数值 * * @param req * @param key * @return */public String getRequestParams(String requestJson, String key) {String paramValue = "";try {JSONObject jobj = new JSONObject(requestJson);// 根据 JSON 键获取值paramValue = jobj.getString(key);} catch (Exception e) {e.printStackTrace();}return paramValue;}}

<servlet><servlet-name>jsonFilter</servlet-name><servlet-class>com.xxx.core.filter.JsonFilter</servlet-class></servlet><servlet-mapping><servlet-name>jsonFilter</servlet-name><url-pattern>/json/*</url-pattern></servlet-mapping>


0 0
原创粉丝点击