其实Action就是Servlet了,在Struts中用Action替换了Servlet

解决方案 »

  1.   

    Struts框架只允许在一个应用中配置一个ActionServlet,即在应用程序的生命周期中,仅创建一个ActionServlet类的实例,该实例同时对应多个用户请求。
    在web.xml中可以配置多个servlet,如下:
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>//唯一的一个ActionServlet
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>//对应的struts配置文件目录
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>  
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>//对所有以do结尾的请求路径均映射到相关的Action来处理(根据Struts配置文件来确定)
      </servlet-mapping>//其他的servlet
    <servlet>
            <servlet-name>dwr-invoker</servlet-name>
            <display-name>DWR Servlet</display-name>
            <description>Direct Web Remoter Servlet</description>
            <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>//处理这个请求的servlet类
            <init-param>
                <param-name>debug</param-name>
                <param-value>true</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>dwr-invoker</servlet-name>
            <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>
     
    在struts-config.xml中可以配置多个action来映射多个请求(一一对应),如下
     <action-mappings >
        <action
          attribute="logonForm"
          name="logonForm"//与本操作关联的ActionForm Bean的名称,该名称必须与<form-bean>中定义的名称相同
          path="/logon"//请求路径
          scope="request"
          type="cn.lingqi.struts.action.LogonAction">//处理请求的action
          <forward name="success" path="/main.jsp" />//跳转路径
        </action>
        <action
          attribute="newsForm"
          name="newsForm"
          path="/newsOption"
          scope="request"
          type="cn.lingqi.struts.action.NewsOptionAction">
          <forward name="typeNews" path="/news.jsp" />
          <forward name="addSuccess" path="/newsOption.do?method=list" />
          <forward name="modifyMe" path="/modify_news.jsp" />
          <forward name="addFailure" path="/add_news.html" />
        </action>
      </action-mappings>
    ...................
    呵呵 发表一下自己的愚见。