大概是这样的,一个系统中,都有唯一的一个ActionServlet配置,在web.xml中,然后对于所有的*.do 请求,都由这个ActionServlet来接收。ActionServlet在初始化的时候,已经根据struts-config.xml配置文件的信息,创建了相关的内部对象,用于存放这些信息。当ActionServlet接受到请求的时候,它就把这个请求和它在初始化的时候创建的内部对象的信息进行比较,如果找到匹配的配置信息,则返回该配置信息类的一个对象(这里就是你的问题的答案)。如果找不到匹配的信息,则返回异常。

解决方案 »

  1.   

    如果你发送请求,那么actionServlet根据请求,和这些“内部对象”的内容进行比较,比如说,如果请求,和内部对象的某个path属性匹配,那么ActionServlet将根据这个配置信息的全部内容,构造出一个action,返回给用户。如果找不到匹配的,那么返回异常!
    其实我这里说的“内部对象”,很不专业,但是你可以把他理解成一个数据库,的形式。它的内部存放了struts-config.xml的信息。
    他的形式可以是这样:                   内部对象
    -------------------------------------------------
    path               input            form            scope      ....
    addUser            addUser.jsp      UserForm        request   ....
    deleteUser         deleteUser.jsp   ......                ..........................
    如果你的添加用户的页面的form 的action属性值为:addUser.do那么web.xml中,会把一切以.do结尾的请求,交由actionServlet来处理,结果找到一个path=addUser,而且可以读取其相关信息。那么actionServlet就根据这些信息,构造一个action 并返回给用户。然后,actionServlet根据你的请求,在“内部”对象中,进行匹配,