`

Struts 的工作原理

 
阅读更多

Struts1的流程
  服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
  以登陆为例:第一次进login.jsp会先实例化Form、把默认值赋给表单元素。
  输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到 action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的excute方法。

 

Struts2的流程
(省略服务器启动部分)
1.当用户在页面上进行操作时,生成了*.action的请求传给struts.xml(MVC中的V)
2.服务器根据这个配置文件中所定义的action名称,寻找匹配的处理方法:如果没有定义method,则直接调用的是class里面的类的execute方法,如果定义了method,则是调用的class类里的method中所指明的方法(MVC中的C)
3.在method中进行处理,在这里有可能采用若干高深莫测的方法,但都属于较为底层的工作,比如访问数据库等等(MVC中的M)
4.方法处理完后(可能有一串的处理方法,但终究有一个方法是最终进行的),return了一个字符串,比如success、error等,并将这个字符串送回给struts.xml,struts.xml在前面action标签内部定义的若干个result中,找到name属性与返回字符传相同的,然后根据type的类型,向指定页面进行跳转。(MVC中的C)
5.跳转的页面接受到了请求,生成页面在浏览器里进行显示。(MVC中的V)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics