Struts2的工作原理4
来源:互联网 发布:高等电网络理论 编辑:程序博客网 时间:2024/06/06 19:26
代码清单9:FilterDispatcher.init()方法
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
dispatcher = createDispatcher(filterConfig);
dispatcher.init();
String param = filterConfig.getInitParameter("packages");
String packages ="org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
if(param !=null) {
packages = param +" "+ packages;
}
this.pathPrefixes= parse(packages);
}
代码清单10:FilterDispatcher.createDispatcher()方法
protected Dispatcher createDispatcher(FilterConfig filterConfig) {
Map<String,String> params =newHashMap<String,String>();
for(Enumeration e = filterConfig.getInitParameterNames(); e.hasMoreElements(); ) {
String name = (String) e.nextElement();
String value = filterConfig.getInitParameter(name);
params.put(name, value);
}
return new Dispatcher(filterConfig.getServletContext(), params);
}
当用户向Struts2发送请求时,FilterDispatcher的doFilter()方法自动调用,这个方法非常关键。首先,Struts2对请求对象进行重新包装,此次包装根据请求内容的类型不同,返回不同的对象,如果为multipart/form-data类型,则返回MultiPartRequestWrapper类型的对象,该对象服务于文件上传,否则返回StrutsRequestWrapper类型的对象,MultiPartRequestWrapper是StrutsRequestWrapper的子类,而这两个类都是HttpServletRequest接口的实现。包装请求对象如代码清单11所示:
代码清单11:FilterDispatcher.prepareDispatcherAndWrapRequest()方法
- Struts2的工作原理4
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Strategy Pattern in Spring MVC
- SQL基础--UNION EXCEPT INTERSECT
- Extjs中动态改变FusionChart的图表类型
- 精通正则表达式的 12 个有用资源
- C语言函数指针基础
- Struts2的工作原理4
- 深入Java集合学习系列:HashMap的实现原理
- SQLNET.EXPIRE_TIME参数
- ExtJS(4)--Ext.FormPanel
- Ubuntu13.04安装wine qq2012
- 存储过程优化
- HDU 1196
- Codeigniter 框架多级目录访问问题
- popupwindow