Struts详解之-ActionServlet

Share

      由于最近见到的关于struts、hibernate等的基础问题很少受新人关注,所以,写了这些东西,还是希望能打好底子,以后会陆续的写些其他的各方面开发中会用到的东西。好,入正题。

ActionServlet类 简介
ActionServlet是Struts中最核心的部分,我们从这里开始。它相当于中央控制器,我们来看看他是怎么样实现核心Control的。它是通过org.apache.struts.action.ActionServlet来实现的,所有的请求通过它进行中转。

ActionServlet的工作原理
ActionServlet它负责接受所有的request,并且产生相对应的response到请求的页面。但是它怎么知道对应呢?这里就存在一个map文件(我习惯这么叫它)Struts-config.xml,它包括了resource文件、如何到达下一个页面、下面一个页面是什么、页面的校验规则、怎么样显示错误信息(如ActionMessage的使用)的定义。

一般来说,它(ActionServlet)通常是处于待命状态,一旦容器(j2ee的容器,入tomcat,jboss,glassfish等等)接受到请求,它对应的doget和dopost将会处理对应的get和post请求,这里需要注意的是,外部的浏览器不能直接调用这些do××××请求,只能是由容器控制。

ActionServlet收到请求之后,它将会调用RequestProccessor对象来处理httprequest请求的消息。如checkerrors等。下一步,它根据浏览器的请求路径、struts-config.xml文件中对应的请求路径和Action Bean的对应关系来调用对应的Action Bean的excute方法,action bean处理完成之后,调用业务模型,调用完成之后,将含有返回下一个页面返回信息的ActionForward对象传给ActionServlet,然后由actionservlet转换到下一个页面返回给浏览器。工作原理如图所示:

ActionServlet调用jsp的过程如下:

ActionServlet的代码结构如下:

配置ActionServlet

Actionservlet是在web.xml文件中配置的,可以看出,他的配置和一般的servlet没有什么区别。



  
    
    action
    org.apache.struts.action.ActionServlet
    
    
      config      /WEB-INF/struts-config.xml    

    
      debug      3    

    
      detail      3    

    0
  

    
  
    action
    *.do
  


[/java]