| Код | package apisserver;
import dataclasses.DataClasses.PageSubmission; import java.io.*; import java.util.*;
import javax.servlet.*; import javax.servlet.http.*;
import apisserver.DBMgr.*; import dataclasses.DataClasses.AlbumDetails; import dataclasses.DataClasses.DesignTemplate; import dataclasses.DataClasses.TemplateData;
/** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2006</p> * * <p>Company: </p> * * @author not attributable * @version 1.0 */
public class ApisServer extends HttpServlet { private static final String TEXT_CONTENT_TYPE = "text/html"; private static final String OBJECT_CONTENT_TYPE = "application/x-java-serialized-object"; private static final String GET_TMPL_INDEXES = "get_tmpl_indexes"; private static final String GET_TMPL = "get_tmpl"; private static final String GET_TEMPLATE = "get_template"; private static final String GET_ALBUM_DETAILS = "get_album_details"; private Config cfg = null; //Initialize global variables public void init() throws ServletException { //load all needed params ServletConfig sc = getServletConfig(); cfg = new Config(sc.getInitParameter("db_url"), sc.getInitParameter("db_user"), sc.getInitParameter("db_pass")); } //Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String act = request.getParameter("act"); //check the message if(act != null){ if (act.equals(GET_TMPL_INDEXES)) { SendTmplIndexList(request, response); } else if (act.equals(GET_TMPL)) { SendTemplatePreview(request, response); } else if (act.equals(GET_TEMPLATE)) { this.SendTemplate(request, response, Integer.parseInt(request.getParameter("tId"))); } else if(act.equals(GET_ALBUM_DETAILS)){ this.SendAlbumDetails(request, response, request.getParameter("oId")); } }else { Object obj = GetObject(request); if(obj instanceof PageSubmission){ SendPageSubmissionConfirmation(response, (PageSubmission) obj); } } } //Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } //Clean up resources public void destroy() { } private Object GetObject(HttpServletRequest req){ ObjectInputStream fromApplet = null; Object obj = null; try { fromApplet = new ObjectInputStream(req.getInputStream()); obj = fromApplet.readObject(); fromApplet.close(); } catch (Exception ex) { ex.printStackTrace(); } return obj; } private void SendObject(HttpServletResponse response, Object obj) { ObjectOutputStream outToApplet; try { response.setContentType(OBJECT_CONTENT_TYPE); outToApplet = new ObjectOutputStream(response.getOutputStream()); outToApplet.writeObject(obj); outToApplet.flush(); outToApplet.close(); } catch (Exception e) { e.printStackTrace(); } } private void SendPageSubmissionConfirmation(HttpServletResponse response, PageSubmission pageSubmission) { try { } catch (Exception ex) { ex.printStackTrace(); pageSubmission.setException(ex); } this.SendObject(response,pageSubmission); } private void SendAlbumDetails(HttpServletRequest request, HttpServletResponse response, String oid){ AlbumDetails aTmpl = null; DBMgr dbMgr = new DBMgr(request, cfg); try { aTmpl = dbMgr.GetAlbumDetails(oid); } catch (Exception ex) { ex.printStackTrace(); aTmpl.setException(ex); } this.SendObject(response,aTmpl); } private void SendTemplate(HttpServletRequest request, HttpServletResponse response, int id) { DesignTemplate tmpl = null; StringBuffer str = new StringBuffer(); DBMgr dbMgr = new DBMgr(request, cfg); try{ tmpl = dbMgr.BuildTemplate(id, str); }catch (Exception e){ tmpl.setException(e); } this.SendObject(response, tmpl); } private void SendTemplatePreview(HttpServletRequest request, HttpServletResponse response) { DBMgr dbMgr = null; Object obj = null; TemplateData td = null; try{ obj = GetObject(request); if(obj instanceof TemplateData){ dbMgr = new DBMgr(request, cfg); td = dbMgr.getTmplPreview(((TemplateData)obj).GetTmplID()); } else { throw new Exception("Class type don't match"); } } catch (Exception ex){ if(td == null) td = new TemplateData(); td.setException(ex); } dbMgr = null; obj = null; SendObject(response, td); } private void SendTmplIndexList(HttpServletRequest request, HttpServletResponse response) { ArrayList tmplIndexes = null; DBMgr dbMgr = null; Object obj = null; try { obj = GetObject(request); if(obj instanceof TemplateData){ dbMgr = new DBMgr(request, cfg); tmplIndexes = dbMgr.GetTmplIndexList((TemplateData) obj); } else { throw new Exception("Class type don't match"); } } catch (Exception e) { e.printStackTrace(); tmplIndexes.add(e); } dbMgr = null; obj = null; SendObject(response, tmplIndexes); } }
|
|