http//localhost:8080/webapp/list.do
前端控制器
ActionSevlet - init()方法中对struts配置文件进行初始化成ModuleConfig对象(struts-config.xml)。
- doGet()或doPost() 调用了RequestProcessor的process()方法。
请求处理器
RequestProcessor - process() <action> ---> ActionMapping
<form-bean> --> ActionForm
<forward> --> ActionForward
在process()方法中
processMultipart(request); 处理请求头中的表单类型
processPath(request, response); 截取URL中的请求路径/list
processLocale(request, response); 获取当前用户的Locale对象,放置到session中。做国际化时用。
processContent(request, response); 处理<controller>标记,生成ControllerConfig
processNoCache(request, response); 是否允许客户端浏览器缓存页面
processPreprocess(request, response); 默认没有操作,供扩展使用
processMapping(request, response, path); 查找和请求路径匹配的ActionMaping
processRoles(request, response, mapping); 处理安全问题
processActionForm(request, response, mapping); 查找并创建对应的ActionForm对象
processPopulate(request, response, form, mapping); 把请求中的数据封装到ActionFrom对象中。
processValidate(request, response, form, mapping); 对ActionFrom的数据做验证。
//processForward(request, response, mapping) 处理是否请求转发
//processInclude(request, response, mapping) 处理是否请求包含
processActionCreate(request, response, mapping); 创建对应的Action对象
processActionPerform(request, response,
action, form, mapping); 调用Action对象中的execute()方法; //Action也称业务控制器
processForwardConfig(request, response, forward); 处理跳转
结束