package com.support.ajax;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import com.support.basic.RequestWrapper;
/**
* @author Jarez
* <pre>
* <servlet>
* <servlet-name>ajax_processor</servlet-name>
* <servlet-class>com.support.ajax.AjaxProcessor</servlet-class>
* </servlet>
* <servlet-mapping>
* <servlet-name>ajax_processor</servlet-name>
* <url-pattern>/servlet/AjaxProcessor</url-pattern>
* </servlet-mapping>
* </pre>
*
*/
public class AjaxProcessor extends HttpServlet {
private static final long serialVersionUID = -8384075176527116678L;
public void init(ServletConfig servletConfig) throws ServletException
{
super.init(servletConfig);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
process(req,res);
}
protected void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
process(req, res);
}
private void process(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.setHeader("content-type","text/xml;charset=utf-8");
RequestWrapper request=new RequestWrapper(req);
String t=request.getString("SysGenRandomValue");//防止浏览器缓存机制影响数据同步
System.err.println("AjaxProcessing Happened:"+t);
String ahcn=request.getString("Ajax_Handler_ClassName");
System.err.println("AjaxProcessing Handler:"+ahcn);
AjaxReturnBean bean=new AjaxReturnBean();
try {
bean.setStatCode("success");
Class cls=Class.forName(ahcn);
Object obj=cls.newInstance();
AjaxHandler handler=(AjaxHandler)obj;
bean=handler.doHandlerAjax(request);
} catch (ClassNotFoundException e) {
bean.setMsg(e.getLocalizedMessage());
bean.setStatCode("fail");
e.printStackTrace();
} catch (InstantiationException e) {
bean.setStatCode("fail");
bean.setMsg(e.getLocalizedMessage());
e.printStackTrace();
} catch (IllegalAccessException e) {
bean.setStatCode("fail");
bean.setMsg(e.getLocalizedMessage());
e.printStackTrace();
}
PrintWriter out=res.getWriter();
out.println("<Object>");
out.println(AjaxUtil.getXMLDescription(bean));
out.println("</Object>");
out.flush();
out.close();
}
}