【乐视电视源码输出】【vue购物系统源码】【lol源码免费领取】actionservlt源码

时间:2024-12-22 22:42:51 来源:pion源码分析 编辑:源码编辑器中文版源码

1.谁能介绍一下struts中的action?
2.action与servlet的源码乐视电视源码输出区别

actionservlt源码

谁能介绍一下struts中的action?

       struts的控制器有:ActionServlet,RequestProcessor,还有就是具体的Action

       struts最重要的类ActionServlet继承于HttpServlet。

       æ‰€ä»¥è¯´æ‰€è°“çš„struts不过是一个servlet.

       é¦–先看一个web配置文件谈谈Struts的启动。

       è¿™ä¸ªé…ç½®æ–‡ä»¶å‘Šè¯‰æˆ‘

       æ‰€è°“ActionServlet就是一个servlet。在这里名字叫作action.

       ä»»ä½•ä»¥.do结束的URL都去会访问这个叫做action的servlet.

       è¿™ä¸ªå«action的servlet在服务器装载的时候会以最高优先级被初始化。

       åˆå§‹åŒ–æ—¶struts-config.xml等init-param信息会被封装到一个ServletConfig中

       å¹¶è°ƒç”¨è¿™ä¸ªservlet的init方法。具体strtus的init方法的内容比较复杂这里省略。

       è‡³æ­¤Struts启动初始化工作完成。

       çŽ°åœ¨å…·ä½“谈谈struts响应一个请求的过程(也就是servlet.service)

       ä¸€èˆ¬struts入门的时候都知道struts框架3个重要的类。

       ActionServlet,Action,ActionForm.

       ä½†å…¶å®žæœ‰ä¸€ä¸ªé‡è¦çš„类被忽视了就是RequestProcessor。

       å®ƒé€æ˜Žçš„协调了ActionServlet,Aciton和ActionForm.

       å½“ActionServlet接受一个请求时ActionServlet会调用超类方法service()

       service接着会调用doGet,doPost。

       ActionServlet的doGet,doPost都会调用RequestProcessor的process()处理请求。

       ä½†æ˜¯process内部很复杂会调用N个processXXXX(也都是RequestProcessor的方法).

       å…¶å®žè¿™ä¹Ÿå°±æ˜¯æ‰€è°“Struts处理请求的过程了。

       å…ˆè°ˆä¸‹æ–¹æ³•çš„调用次序

       1.processMultipart()

       2.processPath()

       3.processLocale()

       4.processContent()

       5.processNoCache()

       6.processPreprocess()

       7.processMapping()

       8.processRoles()

       9.processActionForm()

       .processPopulate()

       .processValidate()

       .processForward()

       .processInclude()

       .processActionCreate()

       .processActionPerform()

       .processActionForward()

       ä»Šå¤©å…ˆè°ˆä¸€äº›ç®€å•çš„顺序流程7->9->->->->->

       processMapping 判断是否存在指点定的ActionMap

       processActionForm 寻找或创建一个ActionForm,并保存

       processPopulate 调用ActionForm.reset然后将表单数据放入ActionForm

       processValidate 调用ActionForm.validate验证表单

       processActionCreate 创建或寻找一个Action

       processActionPerform 执行Action的execute方法

       processActionForward 根据Action.execut()的返回对象ActionForword重定向

action与servlet的区别

       其实就是一个玩意儿!

       只不过action是那些MVC框架的控制层的叫法.

       --

       当然,这个回答是笼统了点,但是其实就那回事.

       那些MVC框架用Servlet(struts1)或者Filter(struts2)来封装了HttpServletRequest和HttpServletResponse对象,在自己的Action类中实现控制层.从对象本身来说,确实不是一个东西,但是从设计分层(架构)上看,这对于使用框架的开发者来说,这难道不是一样的道理?就是控制层!

       action是业务层?那要看你这个工程项目的规模了.要是小网站,那可以把service都写在action里面.但从这个角度来说,是把service层合并到控制层去了.

copyright © 2016 powered by 皮皮网   sitemap