⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestprocessor.java

📁 Oracle的J2EE Sample
💻 JAVA
字号:
/* * @author : Umesh Kulkarni * @version 1.0 * * Development Environment : Oracle9i JDeveloper * Name of the File        : RequestProcessor.java * Creation / Modification History *    Umesh           26-Apr-2002        Created * */package oracle.otnsamples.ibfbs.control;// Import Required Packagesimport javax.servlet.http.HttpServletRequest;import javax.servlet.ServletContext;import java.util.HashMap;import java.lang.reflect.Method;/** * This Class handles all the Request Processing for this entire application. For * any request, controller Servlet (ControllerServlet.java) takes the help of this * class to handle and process the request. * * In the MVC Architecture, the Controller Component takes the responsibility of * controlling the entire execution flow. The View Layer, assumes the responsibility * of the representing the data whereas the Model Layer is responsible for implementing * the Business Logic. * * In a typical web application, there exists various events in the form of * button clicks, combo box selections etc. * * In response to these events, application executes the functionality embedded in * some methods in some classes. This Class helps to facilitate the execution of methods * in Model Layer using Java Reflection. * * @version 1.0  * @since   1.0 */public class RequestProcessor {  // Declare Instance Variables  private ServletContext ctx;  // Data Structure to store Objects of URLMapping Class  // URLMapping Maps an Event Name with the Business Method to be invoked and  // the View to be used to display the data. See URLMapping.java for more info.  private HashMap urlMap;  // This DataStructure Stores Instances of Classes which implement various   // business methods. Whenever there is a new Event which need to be processed,  // this class first checks whether the Class corresponding to this event is already  // present here.  private HashMap objectMap;  /**   * Empty Constructor of this Class.   * @since 1.0   */  public RequestProcessor() {}  /**   * Method to initialize the values of Instance Variables   *   * @param ctx  Servlet Context passed to this method.   * @since 1.0   */  public void init(javax.servlet.ServletContext ctx) {    this.ctx = ctx;    // Get All the URLMapping Objects initialized in the init() method     // of ControllerServlet     urlMap = (HashMap) ctx.getAttribute(FBSKeys.URLMAPPINGS);    // Initialize Object Map to hold business classes    objectMap = new HashMap();  }  /**   * Method to process a particular request. A particular request is characterized   * by the distinct EVENT_NAME. Each EVENT_NAME is associated with a particular   * business method in a particular business class. This relationship is captured in   * an XML file and uploaded as URLMapping Objects during initialization of the   * controller servlet.   *   * Note that this method makes use of Reflection APIs to invoke a particular   * method in a particular class.   *   * @param request Incoming HTTP Request. From the Request we can find out the Event   *                occured.   * @exception Throwable   * @since 1.0   */  public void processRequest(HttpServletRequest request) throws Throwable {    // Every Business Method takes HttpServletRequest as a parameter    // We construct args and params for executing the method using Reflection API    Class[]  args   = { HttpServletRequest.class };    Object[] params = { request };    //Get the Event Name    String eventName = (String) request.getAttribute("EVENTNAME");    if (eventName == null) {      eventName = request.getParameter("EVENTNAME");    }    try {        if ( (eventName != null)&& (!eventName.equals(""))) {        // Get the URL Map for the Event Occured        URLMapping u1 = (URLMapping) urlMap.get(eventName);        if (u1 == null) {           u1 = (URLMapping) urlMap.get("FIRSTPAGE");        }        if (u1.getClassName() != null) {          // When there is a valid Class Name and valid Method Name present in the          // URL Map, then invoke the method using Java Reflection          if (!(u1.getClassName().equals(""))                &&!(u1.getMethodName().equals(""))) {            // Try to get the required Class from the Object Map            Object obj = objectMap.get(u1.getClassName());            // When the Class does not exist in the Object Map, instantiate a             // new instance and put the Class in the Object Map            if (obj == null) {              obj = Class.forName(u1.getClassName()).newInstance();              objectMap.put(u1.getClassName(), obj);            }            // Get the required Method to be invoked            Method m1 = obj.getClass().getMethod(u1.getMethodName(), args);            // Invoke the method and get the Result as an object            Object obj1 = m1.invoke(obj, params);            // Put the result object in the Session so that result can be             // accessed in the pages which show the result.            request.getSession().setAttribute(eventName + ".RESPONSE", obj1);          }        }       }    } catch (ClassNotFoundException ex) {  // Trap Errors When Class not present in CLASSPATH      System.out.println("Class Not Found " + ex.toString());    } catch (IllegalAccessException ex) {  // Trap Errors When you try to execute methods illegally      System.out.println("Illegal Access " + ex.toString());    } catch (InstantiationException ex) {  // Trap Errors When Class can not be instantiated      System.out.println("Instantiation Exception " + ex.toString());    } catch (NoSuchMethodException ex) {  // Trap Errors When Method Name do not match      System.out.println("Instantiation Exception " + ex.toString());    } catch (java.lang.reflect.InvocationTargetException ex) {  // Trap Errors when      // Execution of Methods raised some exceptions. We need the similar exceptions      Throwable e = ex.getTargetException();      throw e;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -