struts深入原理之RequestProcessor与xml
和配置文件相對應的代碼(struts1)?
public void process(HttpServletRequest request, HttpServletResponse response)
??????? throws IOException, ServletException {
??????? // Wrap multipart requests with a special wrapper
??????? request = processMultipart(request);
??????? // Identify the path component we will use to select a mapping
??????? String path = processPath(request, response);
??????? if (path == null) {
??????????? return;
??????? }
??????? if (log.isDebugEnabled()) {
??????????? log.debug("Processing a '" + request.getMethod() + "' for path '"
??????????????? + path + "'");
??????? }
??????? // Select a Locale for the current user if requested
??????? processLocale(request, response);
??????? // Set the content type and no-caching headers if requested
??????? processContent(request, response);
??????? processNoCache(request, response);
??????? // General purpose preprocessing hook
??????? if (!processPreprocess(request, response)) {
??????????? return;
??????? }
??????? this.processCachedMessages(request, response);
??????? // Identify the mapping for this request
??????? ActionMapping mapping = processMapping(request, response, path);
??????? if (mapping == null) {
??????????? return;
??????? }
??????? // Check for any role required to perform this action
??????? if (!processRoles(request, response, mapping)) {
??????????? return;
??????? }
??????? // Process any ActionForm bean related to this request
??????? ActionForm form = processActionForm(request, response, mapping);
??????? processPopulate(request, response, form, mapping);
??????? // Validate any fields of the ActionForm bean, if applicable
??????? try {
??????????? if (!processValidate(request, response, form, mapping)) {
??????????????? return;
??????????? }
??????? } catch (InvalidCancelException e) {
??????????? ActionForward forward = processException(request, response, e, form, mapping);
??????????? processForwardConfig(request, response, forward);
??????????? return;
??????? } catch (IOException e) {
??????????? throw e;
??????? } catch (ServletException e) {
??????????? throw e;
??????? }
??????? // Process a forward or include specified by this mapping
??????? if (!processForward(request, response, mapping)) {
??????????? return;
??????? }
??????? if (!processInclude(request, response, mapping)) {
??????????? return;
??????? }
??????? // Create or acquire the Action instance to process this request
??????? Action action = processActionCreate(request, response, mapping);
??????? if (action == null) {
??????????? return;
??????? }
??????? // Call the Action instance itself
??????? ActionForward forward =
??????????? processActionPerform(request, response, action, form, mapping);
??????? // Process the returned ActionForward instance
??????? processForwardConfig(request, response, forward);
??? }
轉載于:https://www.cnblogs.com/davidwang456/p/3164217.html
總結
以上是生活随笔為你收集整理的struts深入原理之RequestProcessor与xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Debugging WebLogic S
- 下一篇: struts深入理解之登录示例的源码跟踪