一个请求在Struts2框架中的处理大概分为以下几个步骤:
客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.action”就是提起一个(HttpServletRequest)请求。
请求被提交到一系列(主要是三层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)。注意这里是有顺序的,先ActionContextCleanUp,再其他过滤器(SiteMesh等)、最后到FilterDispatcher。
FilterDispatcher是控制器的核心,就是mvc中c控制层的核心。
ActionContextCleanUp的作用:
延长act
具体参看http://blog.csdn.net/wxy_G/article/details/1723571
看了博客中使用的freeMarker也不觉得很占优势,这个就不琢磨了~~
FilterDispatcher是控制器的核心:
拦截所有的用户请求,当用户请求到达时,该filter会过滤用户请求,如果以action结尾,转入Struts2框架处理。
Struts2框架获得了*.action请求后,根据*决定调用哪个业务逻辑组件。Struts2中的action定义在Struts.xml中,定义时候包含name,class。
Struts2用于处理用户请求的action实例时,不是用户实现的业务控制器,而是action代理,Struts2框架提供了系列拦截器,将HttpServletRequest请求参数解析,传入action,回调action的excute方法处理请求。
具体source可以参看
http://blog.csdn.net/g_beginner/article/details/6791106
可以看出怎么实现的。
业务控制器:
业务控制组件就是用户实现action类的实例。
模型组件:
通常是指系统的业务逻辑组件。
视图组件:
Struts.xml文件配置action时,不仅需要知道action的name和class,还要为action元素指定系列result子元素,没有指定type的时候默认使用jsp作为视图资源。