1 Struts2中的拦截器有什么用,与Spring中的AOP有什么区别和联系

参考答案

Struts2中的拦截器可以批量扩展Action,处理一组Action的通用业务逻辑。

Struts2中的拦截器实际上就是采用AOP思想实现的,只是它只能处理Action的通用逻辑,无法处理其他组件的通用逻辑。而Spring的AOP实现更为灵活,可以实现任意一批组件的通用业务逻辑。

2 Action默认引用哪个拦截器,如果没有默认引用,会导致什么问题

参考答案

Action默认引用一个拦截器栈,叫做defaultStack。这个默认引用不能丢掉,因为里面包含了Struts2框架所必须依赖的一些拦截器,如果丢掉会导致项目报错。因此我们在开发时,如果自己引用了自定义拦截器,要注意不丢掉默认的拦截器栈。

3 Struts2中如何实现文件上传

参考答案

Struts2中提供了上传文件拦截器FileUpload,可以自动进行文件上传。

该拦截器可以将表单中提交的文件暂存到服务器(tomcat)临时路径下,然后将这个文件的引用传递给Action。之后由Action对这个临时文件进行处理,最后该拦截器会清理掉这个临时文件。