struts学习

public void init() throws ServletException {
	initInternal(); // MessageResources, 初始化Struts框架内在的消息资源,如系统日志相关的通知、警告和错误消息
	initOther(); // ConvertUtils 注册
	initServlet();
	initChain();

	ModuleConfig moduleConfig = initModuleConfig("", config);
	initModuleMessageResources(moduleConfig);
	initModulePlugIns(moduleConfig);
	initModuleFormBeans(moduleConfig);
	initModuleForwards(moduleConfig);
	initModuleExceptionConfigs(moduleConfig);
	initModuleActions(moduleConfig);
	moduleConfig.freeze();
}

public void process(HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException {
	// 上传
	request = processMultipart(request);
	// action.path
	String path = processPath(request, response);

	processLocale(request, response);
	processNoCache(request, response);
	processPreprocess(request, response);
	this.processCachedMessages(request, response);

	//找不到,就找Unknown的action mapping
	ActionMapping mapping = processMapping(request, response, path);

	processRoles(request, response, mapping);

	//scope里面查一下,没有就创建一个并写到scope里面去
	ActionForm form = processActionForm(request, response, mapping);
	//收集数据:reset()一下,把form表单的name、value(转化String[])塞到properties(HashMap),合适的convert一下,塞到formbean里面去
	processPopulate(request, response, form, mapping);
	//validate失败,就forward到action.input
	processValidate(request, response, form, mapping);
	//mapping.forward
	processForward(request, response, mapping);
	//mapping.include
	processInclude(request, response, mapping);
	//有就用,没就创建一个并保存
	Action action = processActionCreate(request, response, mapping);
	//执行了
	ActionForward forward =
		processActionPerform(request, response, action, form, mapping);

	//forward.path -> uri -> forward or redirect
	processForwardConfig(request, response, forward);
}

 

你可能感兴趣的:(框架,struts)