为什么在Struts 1.3,ActionServlet和RequestProcessor中有两个用于处理请求的类

时间:2012-06-29 05:54:53

标签: struts-1

为什么在 struts 1.3 中我们有两个独立的类来处理请求:

  

- ActionServlet拦截请求并调用RequestProcessors进程方法进行进一步处理
  --RequestProcessor读取XML文件,找到相应的Handler并处理请求

我的问题是为什么这是两个不同的类? 我试图在网上和书上搜索,但没有得到任何答案。

任何人都有任何想法吗?请让我知道

2 个答案:

答案 0 :(得分:2)

ActionServlet基本上会读取您的struts-config.xml并创建ModuleConfig。此ModuleConfigstruts-config.xml的对象表示形式。 ActionServlet只是将您的HttpServletRequestHttpSerlvetResponse传递给RequestProcessor

RequestProcessor基本上标识了请求中的Action(通过ModuleConfig帮助程序)创建ActionMapping(基于所做的调用)并执行必要的操作检索ActionForward的操作。从ActionForward开始,它会将您的请求和响应委托给它,这就是整个Struts工作流程。

基本上,Struts的核心是RequestProcessorActionServlet只是初始化Struts,并将请求和响应传递给RequestProcessor

答案 1 :(得分:0)

RequestProcessor 类是在Struts控制器环境中进行请求处理的实际位置。

当请求对象首次到达 actionservlet 类时,它会调用底层RequestProcessor类的进程方法。

然后,此流程方法会查看 struts-config.xml 文件,并尝试找到请求附带的操作的名称。一旦它识别出xml文件中的操作,它就会继续请求处理所需的其余步骤。