struts在web.xml中有这么一段:<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>这样所有的.do结尾的请求都会转给sturts处理。

解决方案 »

  1.   

    是这样的:
    在web.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</param-value>
         </init-param>
         <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
         <servlet-name>action</servlet-name>
         <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    这样,如果你要一个sturts的请求,可以这样写
     动作名.do
    就Ok
      

  2.   

     <url-pattern>*.do </url-pattern>说明你在ie中输入的url后缀名为任意字符.do的通配符
    都交由名字为action的servlet来处理 ,即配置为:
    <servlet-name>action </servlet-name>
    这里的actoin是一个别名而已,实质的处理类为:
    <servlet-class>org.apache.struts.action.ActionServlet </servlet-class> 
    ActionServlet 是struts的核心类,在这个servlet里会进行struts的必要的初始化和模块处理等,具体这个servlet里做了些什么还得查具体资料
      

  3.   

    struts中的以.do为后缀的请求到底是什么?是怎么来的? 
    .do是种习惯,你也可以.a或者.b,只要两个地方配合上,那么.什么都无所谓了
    你的web.xml里有这样一段
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    这有个*.do,你可以给他改成*.abcd
    那么你在想提交表单的时候,相应的也要用.abcd
    如:
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.abcd</url-pattern>
    </servlet-mapping><html:form action="/E.abcd" method="post">
    ----------------------------------------------------struts是怎么将其与.jsp请求联系/区分开来的?       这个问题我没有看明白。。
    我的理解能力太差了吧```
      

  4.   


    .jsp不是提交到struts框架,而是由容器处理!