附件中的小例子可以用spring aop拦截普通类的方法,但是不能拦截servlet,可能是因为servlet是由web容器实例化而不是有spring容器实例化。请问怎样可以实现spring aop拦截servlet?或者怎样用spring实例化servlet?谢谢!
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
weixin_42365484
2010-05-11 16:11浏览 568
怎样用spring aop 拦截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条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2010-05-11 16:11回答 8 已采纳 这里的理解显然是没有弄清servlet开发中的一些理解 [quote] 这样确实可以解决,应该还要更好的方案吧,spring可以实例化struts2的antion,肯定是可以实例化servlet的
- 2011-06-21 12:02回答 2 已采纳 没有struts的拦截器可以是所有action都会被拦截的,
- 2008-12-16 11:11回答 4 已采纳 [code="java"] myfilter com.lank.filter.MyFilter myfilter /*
- 2021-03-04 11:26回答 1 已采纳 看错误日志应该是在 SysLogAspect.java 的第 70 行出的问题。 应该是这段代码 : String content = JSON.toJSON(logArgs).toStrin
- 2020-07-17 21:47回答 1 已采纳 0 formal unbound in pointcut提示可能是注解和方法参数个数和名字没有对应上,即pointCut跟recordSystemLog参数类型及个数保持一致试试。
- 2019-10-15 09:42回答 2 已采纳 jar 包冲突,仔细看看你的spring版本.
- 2010-03-23 17:08回答 4 已采纳 那就得你自己写代码实现 在 public void before(Method method, Object[] args, Object target) throws Throwable {
- 2022-03-30 17:40回答 5 已采纳 跟顺序没关系,这个跟提交的方式有关,以及你是文件类型和普通属性混合类型。 使用上传对象从请求对象中解析出提交的所有表单元素 List<FileItem> lstForms=upload.p
- 2019-10-11 09:30回答 4 已采纳 jar 包冲突了,我这边更新spring版本之后就欧克了。
- 2022-05-18 11:04回答 5 已采纳 需要传的是clientid吧。loadClientByClientId(JdbcClientDetailsService.java:122)这行代码看下。
- 没有解决我的问题, 去提问