ActionServlet 是一种特殊的servlet作为struts的controller,它是必须继承servlet的,可以说它是struts专用的servlet;而Action则完完全全是struts的东西,它是struts架构里很关键的一个对象

解决方案 »

  1.   

    PlugIn 插件
    可以无缝隙的和
    spring
    hibernate等流行的宽架结合!
    比如可以将
    action叫给spring处理
      

  2.   

    ActionServlet继承自servlet,由web.xml中的语句
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
     </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    指定,这样,所有.do后缀的请求会统一发送到org.apache.struts.action.ActionServlet去处理。
    而Action跟ActionServlet没有集成关系。只是ActionServelt在处理表单的时候会把表单数据发送给指定的Action,再由Action进行具体的业务处理。
      

  3.   

    PLugIn是插件,用来扩展Struts的功能。
    众所周知,Struts主要优点集中在表现层,一般在开发的时候需要引进其他的插件或框架,这就需要用到PlunIn的功能了。
    PlunIn在struts-config.xml中配置,也给你贴一个具体的例子,这个例子引用的插件是validator,作用是服务器端数据校验
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml" />
        <set-property property="stopOnFirstError" value="true" />
      </plug-in>
      

  4.   

    to:all
    Action与ActionServlet的关系比较明白了
    PlugIn概念还是不清楚,可能我想问的是PlugIn的实现原理,为什么implements PlugIn就可以实现扩展?
      

  5.   

    通过xml配置文件实现,有举可以去研究各种plugIn的源代码