仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 488|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇层层递进Struts1(五)的地方理流程

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
这篇博客我们深切Struts框架实行部分源码,从ActionServlet的process函数入手下手,看一下其内涵的实行历程。
流程图
以下游程图展现的是ActionServlet和RequestProcessor两个类用到的函数,如RequestProcessor挪用的别的类的函数不再申明。

函数申明
我们选择几个主要的函数申明,别的函数则复杂申明一下便可。
ActionServlet
process
  1. /***<p>Performthestandardrequestprocessingforthisrequest,andcreate*thecorrespondingresponse.</p>**@paramrequestTheservletrequestweareprocessing*@paramresponseTheservletresponsewearecreating**@exceptionIOExceptionifaninput/outputerroroccurs*@exceptionServletExceptionifaservletexceptionisthrown*/protectedvoidprocess(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{ModuleUtils.getInstance().selectModule(request,getServletContext());ModuleConfigconfig=getModuleConfig(request);
  2. RequestProcessorprocessor=getProcessorForModule(config);if(processor==null){processor=getRequestProcessor(config);}processor.process(request,response);}}
复制代码
在调试时起首进进这个函数(Tomcat启动终了,发生哀求后),这个函数的感化是猎取加载阶段发生的Module对象,发生struts逻辑处置的次要对象RequestProcessor。
RequestProcessor
process
  1. /***<p>Processan<code>HttpServletRequest</code>andcreatethe*corresponding<code>HttpServletResponse</code>ordispatch
  2. *toanotherresource.</p>**@paramrequestTheservletrequestweareprocessing*@paramresponseTheservletresponsewearecreating**@exceptionIOExceptionifaninput/outputerroroccurs*@exceptionServletExceptionifaprocessingexceptionoccurs*/publicvoidprocess(HttpServletRequestrequest,
  3. HttpServletResponseresponse)throwsIOException,ServletException{
  4. //Wrapmultipartrequestswithaspecialwrapperrequest=processMultipart(request);//IdentifythepathcomponentwewillusetoselectamappingStringpath=processPath(request,response);if(path==null){return;
  5. }if(log.isDebugEnabled()){log.debug("Processinga"+request.getMethod()+"forpath"+path+"");}//SelectaLocaleforthecurrentuserifrequested
  6. processLocale(request,response);//Setthecontenttypeandno-cachingheadersifrequestedprocessContent(request,response);processNoCache(request,response);//Generalpurposepreprocessinghookif(!processPreprocess(request,response)){return;}this.processCachedMessages(request,response);//IdentifythemappingforthisrequestActionMappingmapping=processMapping(request,response,path);if(mapping==null){return;
  7. }//Checkforanyrolerequiredtoperformthisactionif(!processRoles(request,response,mapping)){return;}//ProcessanyActionFormbeanrelatedtothisrequestActionFormform=processActionForm(request,response,mapping);processPopulate(request,response,form,mapping);//ValidateanyfieldsoftheActionFormbean,ifapplicabletry{if(!processValidate(request,response,form,mapping)){return;}}catch
  8. (InvalidCancelExceptione){ActionForwardforward=processException(request,response,e,form,mapping);processForwardConfig(request,response,forward);
  9. return;}catch(IOExceptione){throwe;}catch(ServletExceptione){throwe;}//Processaforwardorincludespecifiedbythismappingif(!processForward(request,response,mapping)){return;}if(!processInclude(request,response,mapping)){return;}//CreateoracquiretheActioninstancetoprocessthisrequest
  10. Actionaction=processActionCreate(request,response,mapping);if(action==null)
  11. {return;}//CalltheActioninstanceitselfActionForward
  12. forward=processActionPerform(request,response,
  13. action,form,mapping);//ProcessthereturnedActionForwardinstance
  14. processForwardConfig(request,response,forward);}
复制代码
<p>
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。
若天明 该用户已被删除
沙发
发表于 2015-1-20 12:47:37 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
若相依 该用户已被删除
板凳
发表于 2015-1-29 07:10:06 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小魔女 该用户已被删除
地板
发表于 2015-2-5 23:57:11 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
莫相离 该用户已被删除
5#
发表于 2015-2-14 09:32:18 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-4 05:23:06 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
简单生活 该用户已被删除
7#
发表于 2015-3-11 17:31:03 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
8#
发表于 2015-3-19 03:47:49 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
小妖女 该用户已被删除
9#
发表于 2015-3-27 05:15:38 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 13:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表