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

📄 ex6_20.txt

📁 j2ee core design patterns
💻 TXT
字号:
Example 6.20 RequestContextFactory
// POJO ContextObject Factory
public class RequestContextFactory {
  public RequestContext createRequestContext(ServletRequest request) {

    RequestContext requestContext = null;
    try {
      // Identify command string from request object
      String commandId = getCommandId(request);
      // Identify POJO RequestContext Class for the given Command, 
      // using CommandMap
      CommandMapper commandMapper = CommandMapper.getInstance();
      CommandMap  mapEntry = commandMapper.getCommandMap(commandId);
      Class requestContextClass = mapEntry.getContextObjectClass();

      // Instantiate POJO
      requestContext  = (RequestContext)
          requestContextClass.newInstance();

      // Set Protcol-specific Request object
      requestContext.initialize(request);
    } catch(java.lang.InstantiationException e) { 
      // Handle Exception
    } catch(java.lang.IllegalAccessException e) { }
    return requestContext;
  }

  private String getCommandId(ServletRequest request) {
    String commandId = null;
    if ( request instanceof HttpServletRequest) {
      String pathInfo = ((HttpServletRequest)request).getPathInfo();
      commandId =  pathInfo.substring(1);   // skip the leading '/'
    }
    return commandId;
  }
}

⌨️ 快捷键说明

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