ex6_20.txt
来自「j2ee core design patterns」· 文本 代码 · 共 36 行
TXT
36 行
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 + =
减小字号Ctrl + -
显示快捷键?