struts2-拦截器的创建方式
一.拦截器的创建方式
1.实现Interceptor接口;
>实现该接口后,需要重写三个方法,分别是init(),intercept(ActionInvocation nvocation),destroy();
>一般来说有生命周期方法的类,生命周期都不会太短,拦截器的生命周期随项目创建而创建,项目结束而摧毁;
>如果不需要进行初始化和结尾处理时,实现该接口就要点没必要了,所以不推荐该方式
2.继承抽象类AbstractInterceptor;
>继承后,需要重写一个方法即可:intercept(ActionInvocation nvocation),该类还是比较体贴的,帮你处理掉了两个生命周期方法;
>可以使用,但是方式三更好点
3.继承MethodFilterInterceptor;
>继承后,需要实现一个方法:doIntercept(ActionInvocation invocation),对要拦截的请求将执行的方法;
>intercept方法很像servlet时的service方法,会对请求进行判断;这里的话intercept封装了对请求是否拦截的代码,若拦截的话会调用doIntercept;依次类推doIntercept()对应doGet和doPost
>功能上:可以定制拦截器需要拦截的方法和不拦截的方法
>doIntercept(ActionInvocation invocation)的参数有一个方法invocation.invoke(),表示放行,执行下一个拦截器
>如果在doIntercept里没有放行方法,直接返回一个字符串的话,流程将流向result类来处理转发或重定向等到指定的页面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~