为什么在 struts 1.3 中我们有两个独立的类来处理请求:
- ActionServlet拦截请求并调用RequestProcessors进程方法进行进一步处理
--RequestProcessor读取XML文件,找到相应的Handler并处理请求
我的问题是为什么这是两个不同的类? 我试图在网上和书上搜索,但没有得到任何答案。
任何人都有任何想法吗?请让我知道
答案 0 :(得分:2)
ActionServlet
基本上会读取您的struts-config.xml
并创建ModuleConfig
。此ModuleConfig
是struts-config.xml
的对象表示形式。 ActionServlet只是将您的HttpServletRequest
和HttpSerlvetResponse
传递给RequestProcessor
。
RequestProcessor
基本上标识了请求中的Action
(通过ModuleConfig
帮助程序)创建ActionMapping
(基于所做的调用)并执行必要的操作检索ActionForward
的操作。从ActionForward
开始,它会将您的请求和响应委托给它,这就是整个Struts工作流程。
基本上,Struts的核心是RequestProcessor
。 ActionServlet
只是初始化Struts,并将请求和响应传递给RequestProcessor
。
答案 1 :(得分:0)
RequestProcessor 类是在Struts控制器环境中进行请求处理的实际位置。
当请求对象首次到达 actionservlet 类时,它会调用底层RequestProcessor类的进程方法。
然后,此流程方法会查看 struts-config.xml 文件,并尝试找到请求附带的操作的名称。一旦它识别出xml文件中的操作,它就会继续请求处理所需的其余步骤。