首页 > 编程知识 正文

javaweb拦截器是什么,java怎么使用过滤器进行拦截

时间:2023-05-05 02:03:03 阅读:37120 作者:3853

package com.panshi.project interceptor.interceptor; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory; importorg.spring framework.stereotype.com ponent; importorg.spring framework.util.string utils; importorg.spring framework.web.servlet.modelandview; importorg.spring framework.web.servlet.handler.handlerinterceptoradapter; import javax.servlet.http.http servlet请求; import javax.servlet.http.http无servlet保罗; 导入javax.servlet.http.http session;

@ componentpublicclassrecordinterceptorextendshandlerinterceptoradapter { privatefinalstaticloggerlogger=logger factory.get

* SpringMVC的拦截器是链式的,可以同时有多个拦截器。

*然后,SpringMVC将按照声明前后的顺序一个接一个地运行。

*此外,所有Interceptor的preHandle方法都是在调用控制器方法之前调用的。

* SpringMVC的这种Interceptor链结构也可以中断,

*该中断方式使preHandle的返回值为false,在preHandle的返回值为false时整个请求结束。 //@ overridepublicbooleanprehandle (httpservletrequestrequest,http servlet response,Object handler ) throwsexceptition

logger.info ('阻止: ' request.getRequestURI ) );

htpsessionsession=request.getsession (; if (! string utils.isempty (session.getattribute (' userid ' ) ),相关验证

*/

返回真;

}else{

response.sendredirect ()/logins ); 返回假;

//return super.pre handle (请求,响应,处理程序);

}/***此方法仅在当前此Interceptor的preHandle方法的返回值为true时执行。

* postHandle用于阻止处理器,在处理器进行处理后(即在控制器的方法调用后)执行。

*但是,dispatcher servlet将在渲染视图之前运行。 也就是说,此方法允许您操作ModelAndView。

*此方法的链结构与常规访问的方向相反。 也就是说,前面声明的Interceptor拦截器将相反地调用方法。

*这类似于Struts2拦截器的运行过程。

只需手动调用Struts2中的intercept方法中的action invocation invoke方法,

*在* Struts2中调用ActionInvocation的invoke方法是调用以下Interceptor或action :

*然后,在Interceptor之前调用的所有内容都写在调用invoke之前,在Interceptor之后调用的所有内容都写在调用invoke方法之后。 //@ overridepublicvoidposthandle (httpservletrequestrequest,HttpServletResponse response,对象处理程序,modelandviewmodder

}/***此方法也仅在当前相应的interceptor pre handle方法的返回值必须为true时执行。

*此方法在整个请求完成后,即DispatcherServlet渲染视图执行。 此方法的主要作用是清理资源。 */@ overridepublicvoidaftercompletion (httpservletrequestrequest,HttpServletResponse response,对象处理程序,exception ense

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。