weixin_42365484
2010-05-11 16:11
浏览 568
已采纳

怎样用spring aop 拦截servlet

附件中的小例子可以用spring aop拦截普通类的方法,但是不能拦截servlet,可能是因为servlet是由web容器实例化而不是有spring容器实例化。请问怎样可以实现spring aop拦截servlet?或者怎样用spring实例化servlet?谢谢!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

8条回答 默认 最新

  • jiangyongyuan 2010-05-23 14:18
    最佳回答

    这里的理解显然是没有弄清servlet开发中的一些理解
    [quote]
    这样确实可以解决,应该还要更好的方案吧,spring可以实例化struts2的antion,肯定是可以实例化servlet的

    还是感谢mginobili[/quote]

    struct的action、spring mvc等是通过自定义Servlet实现的,如struct的ActionServlet,spring mvc的DispatcherServlet。
    他们都是在servlet规范之上构建的。

    spring如何在servlet中启动,是通过配置listener启动spring容器。spring容器再去管理spring的bean.

    spring为何能管理action,因为action是简历在spring容器之中。

    以上三点可以看到。无论是action,还是spring bean,都是在servlet规范之上整合的。

    servlet的由servlet容器管理,tomcat,jetty等,如果你想通过spring实例化servlet,那么就需要在spring中操作tomcat,jetty实例化servlet的代码。

    是否可行没有操作过。

    不过我们可以看到,spring自己的启动(listener启动)、spring mvc都是通过servlet转到spring之上的bean处理。

    不过你的想法可以换一下,servlet转发到spring bean,通过aop处理。网络上很多spring gwt整合的例子。见:
    http://jiangyongyuan.iteye.com/blog/143455

    评论
    解决 无用
    打赏 举报
查看更多回答(7条)

相关推荐 更多相似问题