`
Java_大猫
  • 浏览: 170524 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Struts1.x学习

阅读更多

最近看看了有关struts1的资料文章,于是小弟不才,自己也来个小小的总结,希望和我一样的初学者能通过我的文章学习到一些知识,相互交流

1.struts的工作流程:
  通过web.xml加载org.apache.struts.action.ActionServle,进行struts核心控制器的初始化工作,初始化过程中读取struts-config.xml,加载不同的 ModuleConfig对象。
  比如配置文件中的Action映射定义都保存在ActionConfig集合中。相应地有ControlConfig集合、FormBeanConfig 集合、ForwardConfig集合和MessageResourcesConfig集合等。
  控制器接受到HTTP请求之后,通过ActionConfig,通过path找到相应的action,如果没有相应的action,控制器会直接将请求转发到JSP或者静态页面,否则控制器会通过控制分发转发到相应的action类进行处理。
  在action执行execute方法之前首先会通过actionForm 进行填充,在HTTP提交请求的时候,页面提交所有的属性都会通过form 保存到actionForm中。 这个时候可以通过actionForm 中的validate方法进行格式验证。之后会通过actionMapping 进行控制转发跳转。
   action其实主要是作为一个中间桥梁,作为JSP页面和javabean的中间交换。祈祷一个控制转发作用。

2模块开发:
  在应用struts的时候我们都在运用大量的struts-config.xml在处理我们的action转发,项目模块的不断增加我们可以进行模块化的配置,加载不同的struts-config.xml
 
 <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml, /WEB-INF/struts-config-registration.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

3.ActionServlet:
   作为struts的核心控制器,当初始化后进行,请求之后,会调用其中的
   process方法进行每个方法的调用器:
   
 protected void process(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {

        ModuleUtils.getInstance().selectModule(request, getServletContext());
        ModuleConfig config = getModuleConfig(request);

        RequestProcessor processor = getProcessorForModule(config);
        if (processor == null) {
           processor = getRequestProcessor(config);
        }
        processor.process(request, response);

    }
  


引用与部分内容。http://www.ibm.com/developerworks/cn/java/l-struts1-1/#author
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics