首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在web.xml中定义的servlets中使用servlets

在web.xml中定义的servlets中使用servlets
EN

Stack Overflow用户
提问于 2010-07-07 01:45:28
回答 2查看 2.5K关注 0票数 2

这可能是一个相对简单的问题,我只是没有找到正确的答案,但我正在尝试使用Spring容器来配置我的IoC。我有一些额外的处理程序(它们是私有数据成员),因此我希望在运行时进行配置。有可能做到这一点吗?

现在,我让web.xml正确地加载了servlet,然而,问题是我不确定如何将这些实例连接到servlet容器,或者将从IoC容器生成的实例连接到servlet容器。

在我的web.xml文件中,我设置了ContextLoaderListener

代码语言:javascript
复制
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

以及为bean上下文配置正确的位置。

代码语言:javascript
复制
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    /WEB-INF/beans.xml
  </param-value>
</context-param>

我还知道beans.xml文件正在被解析,因为当我输入错误的东西时,我得到了几个异常。

有什么想法?有没有更好的方法来做这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-07 01:58:30

我认为大多数想要做你想做的事情的人都会使用Spring MVC框架。在这种情况下,是一个Spring类,您只需实现“控制器”(而不是实际的servlet)。

也就是说,完全有可能做你想要做的事情。看看FrameworkServlet (你可以扩展它)或者DelegatingFilterPorxy (你可以用这个类写一个'DelegatingSevletProxy‘作为例子)。

票数 3
EN

Stack Overflow用户

发布于 2010-07-07 02:08:02

您应该将您的逻辑移出servlet,以便它们只是一个简单的包装器,用于获取对Spring应用程序上下文的引用,从上下文实例化一个bean,向其传递HTTP请求、会话和任何其他所需的内容,并告诉bean执行此工作。

考虑到您不能在servlet容器外部实例化servlet,因此它不能进行单元测试。IoC容器无法实例化它。它不会从IoC或DI中受益。

如果可以,请使用Spring MVC;您可能希望将servlet中的逻辑移动到控制器类中。

否则,看看org.springframework.web.context.ContextLoaderListener;,你可以看到Spring是如何引导自己的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3188798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档