001 package com.croftsoft.apps.client; 002 003 import java.io.*; 004 import java.net.*; 005 006 import javax.servlet.*; 007 import javax.servlet.http.*; 008 009 import org.aitools.programd.Core; 010 import org.aitools.programd.server.servlet.ProgramDContextListener; 011 import org.aitools.util.resource.URLTools; 012 import org.aitools.util.xml.XML; 013 014 /********************************************************************* 015 * Processes Program D requests. 016 * 017 * @version 018 * $Id: ClientServlet.java,v 1.3 2006/12/01 04:42:24 croft Exp $ 019 * @since 020 * 2006-11-27 021 * @author 022 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 023 *********************************************************************/ 024 025 public final class ClientServlet 026 extends HttpServlet 027 ////////////////////////////////////////////////////////////////////// 028 ////////////////////////////////////////////////////////////////////// 029 { 030 031 private static final long serialVersionUID = 0L; 032 033 ////////////////////////////////////////////////////////////////////// 034 ////////////////////////////////////////////////////////////////////// 035 036 @Override 037 protected void doGet ( 038 final HttpServletRequest httpServletRequest, 039 final HttpServletResponse httpServletResponse ) 040 throws ServletException 041 ////////////////////////////////////////////////////////////////////// 042 { 043 String request 044 = httpServletRequest.getParameter ( "request" ); 045 046 if ( request == null ) 047 { 048 return; 049 } 050 051 request = request.trim ( ).toLowerCase ( ); 052 053 if ( request.equals ( "input" ) ) 054 { 055 doInput ( httpServletRequest, httpServletResponse ); 056 } 057 else if ( request.equals ( "reload" ) ) 058 { 059 doReload ( ); 060 } 061 } 062 063 ////////////////////////////////////////////////////////////////////// 064 ////////////////////////////////////////////////////////////////////// 065 066 private void doInput ( 067 final HttpServletRequest httpServletRequest, 068 final HttpServletResponse httpServletResponse ) 069 throws ServletException 070 ////////////////////////////////////////////////////////////////////// 071 { 072 try 073 { 074 final ServletContext servletContext = getServletContext ( ); 075 076 final Core core = ( Core ) servletContext.getAttribute ( 077 ProgramDContextListener.KEY_CORE ); 078 079 final PrintWriter printWriter 080 = httpServletResponse.getWriter ( ); 081 082 printWriter.write ( XML.filterWhitespace ( core.getResponse ( 083 httpServletRequest.getParameter ( "input" ), 084 httpServletRequest.getParameter ( "userid" ), 085 httpServletRequest.getParameter ( "botid" ) ) ) ); 086 087 printWriter.flush ( ); 088 089 printWriter.close ( ); 090 } 091 catch ( Exception ex ) 092 { 093 throw new ServletException ( "doInput failure", ex ); 094 } 095 } 096 097 private void doReload ( ) 098 throws ServletException 099 ////////////////////////////////////////////////////////////////////// 100 { 101 try 102 { 103 final ServletContext servletContext = getServletContext ( ); 104 105 final String config = servletContext.getInitParameter ( 106 ProgramDContextListener.PARAM_CORE_CONFIG ); 107 108 final URL baseURL = servletContext.getResource ( "/" ); 109 110 final Core core = new Core ( 111 baseURL, URLTools.contextualize ( baseURL, config ) ); 112 113 servletContext.setAttribute ( 114 ProgramDContextListener.KEY_CORE, core ); 115 } 116 catch ( Exception ex ) 117 { 118 throw new ServletException ( "doReload failure", ex ); 119 } 120 } 121 122 ////////////////////////////////////////////////////////////////////// 123 ////////////////////////////////////////////////////////////////////// 124 }