Servlet+Json代码
package com.brmoney.servlet; 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 com.brmoney.flight.pojo.DomeTicketPsg; @SuppressWarnings("serial") public class CreateFeedServlet extends HttpServlet { /** * Constructor of the object. */ public CreateFeedServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String feed = request.getParameter("feed"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); DomeTicketPsg user1 = new DomeTicketPsg(); user1.setPsgName(feed); DomeTicketPsg user2 = new DomeTicketPsg(); user2.setPsgName(feed); List list = new ArrayList(); list.add(user1); list.add(user2); JSONArray jsonList = JSONArray.fromObject(list); PrintWriter out = response.getWriter(); out.write(jsonList.toString()); out.flush(); out.close(); } public void init() throws ServletException { } }
Ext.define('FV.lib.FeedValidator', { singleton : true, /** * @cfg {String} url The url to validate feeds on */ url : 'http://localhost:8080/utils/servlet/CreateFeedServlet', /** * Validates a given feed's formating by fetching it and ensuring it * is well formed * * @param {FV.model.Feed} * feed The feed to validate */ validate : function(feed, options) { options = options || {}; Ext.applyIf(options, { scope : this, success : Ext.emptyFn, failure : Ext.emptyFn }); Ext.Ajax.request({ url : this.url, params : { feed : feed.get('url') }, scope : this, success : function(response) { if (this.checkResponse(response, feed)) { options.success.call(options.scope, feed); } }, failure : function() { options.failure.call(options.scope); } }); }, /** * @private Validates that a response contains a well-formed feed * @param {Object} * response The response object */ checkResponse : function(response, feed) { // var dq = Ext.DomQuery, url = feed.get('url'),xml, channel, // title; try { alert(response.responseText); var objs = eval("("+response.responseText+")"); alert(objs.length); for(var i=0;i<objs.length;i++){ alert(objs[i].psgName); } // channel = xml.getElementsByTagName('channel')[0]; // if (channel) { // title = dq.selectValue('title', channel, url); // return true; // } } catch (e) { alert(e.description); } return false; } });