我是Java Enterprise和Spring的新手,但我对标准Java有很好的掌握。我正在查看一个现有的Web应用程序项目。该项目使用Tomcat/Spring/Hibernate,我了解这是相当常见的组合。它还使用DWR进行远程方法调用。我发现有些难以分离各个组件的职责:Tomcat负责什么,Spring负责什么,请求如何从一个组件传递到另一个组件,以及Spring中的主要组件如何拼装在一起。我已经阅读了大量关于Spring的文档,特别是有关bean和bean工厂的内容,并仍在继续阅读。欢迎提供任何建议,但我将提供一些具体的问题。
问题1:web.xml文件在哪里(何时使用/调用以及从哪里调用)?
代码示例1:
<servlet>
<servlet-name>qrst</servlet-name>
<display-name>qrst Servlet</display-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
上面的代码片段是做什么的(或者说会引起什么事情)?在我的 web 应用程序中,qrst.jsp 在某个时刻被使用;是 DispatcherServlet 使用 servlet 名称调用 qrst.jsp 吗?否则,servlet 名称的意义是什么?什么是启动时加载?
代码示例 2:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/someLocation/some-servlet.xml
</param-value>
</context-param>
能否提供相关链接或解释上述代码的含义?从查看XML文件可以发现它包含了bean定义,我知道什么是bean以及它们如何使用,但我想了解更多细节。
代码示例3:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR</display-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>classes</param-name>
<param-value>
somepackage.someclass
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
根据我对beans的了解,我相信这些init-param元素只是在servlet的Java类中设置的参数。servlet名称的重要性是什么?启动时负载又如何呢?Web应用程序以某种方式“知道”何时发生AJAX(dwr)调用,而不是在首次加载Web应用程序时(在首次加载时,它应该使用qrst.jsp)。它是如何知道这一点的?它是如何决定将请求路由到DWR而不是qrst.jsp的?它在哪里执行此操作?
谢谢。