使用Servlet处理AJAX请求?

Mat*_*hew 3 javascript java ajax servlets

基本上是肯定或没有问题,但我也在寻求有关实施最佳实践的建议.

让我知道何时/如果我开始出错了.

  • 我有一个特定的Servlet(AjaxServlet?),它将处理所有AJAX请求
  • AjaxServlet映射到/ ajax/*所以所有请求URL如/ ajax/getDataFromServer都将由它处理
  • 我的doGet overide函数是一个long if/elseif链,每次检查request.getPathInfo()
  • doGet中的每个if块处理特定的url调用(/ ajax/getDataFromServer)

我想返回JSON,到目前为止我一直在构建这些字符串.是否有我可以使用的轻量级JSON包.我知道我可以扩展ArrayList(ArrayListJson?)并添加一个toJson()方法,然后将任何ArrayList转换为ArrayListJson,但我确信这已经完成了.

小智 5

你的基本想法听起来不错,但最好有多个类,每个类都处理自己的任务.我成功使用的方法是使用单个servlet拦截调用,然后将任务传递给实际执行的其他类.例如,您可以创建一个具有方法的接口(名称为AJAXHandler),public String performTask(HttpServletRequest request)并使用servlet中的Factory Pattern来实例化相应的类(实现AJAXHandler)并让该类完成其工作.然后发送performTask方法(JSON字符串)的结果.当您需要实现新的AJAX调用时,您只需添加实现AJAXHandler的新类,并使用新的类信息更新Factory with.

对于JSON处理,我建议您查看json-simple,网址http://code.google.com/p/json-simple/

工厂模式在http://www.oodesign.com/factory-pattern.html中描述

祝好运!!!

  • @ user1038812它被称为"命令模式".这不是为了表现; 没有多少比if/else或switch语句快.但速度上的差异不大可能,但可维护性和可读性的差异将会增加. (2认同)