日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts深入原理之RequestProcessor与xml

發(fā)布時(shí)間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts深入原理之RequestProcessor与xml 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

和配置文件相對應(yīng)的代碼(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);
??? }

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/3164217.html

總結(jié)

以上是生活随笔為你收集整理的struts深入原理之RequestProcessor与xml的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。