Rumah > Java > javaTutorial > Cara menggunakan pemintas SpringMVC Java

Cara menggunakan pemintas SpringMVC Java

WBOY
Lepaskan: 2023-05-13 14:55:06
ke hadapan
1402 orang telah melayarinya

Peranan pemintas

Pemintas Spring MVC adalah serupa dengan penapis dalam pembangunan Servlet, yang digunakan untuk pra-memproses dan selepas memproses pemproses. Pemintas disambungkan ke dalam rantaian dalam susunan tertentu Rantai ini dipanggil Rantai Pemintas. Apabila kaedah atau medan yang dipintas diakses, pemintas dalam rantaian pemintas akan dipanggil mengikut susunan yang telah ditakrifkan sebelum ini. Pemintas juga merupakan pelaksanaan khusus idea AOP.

Perbezaan antara pemintas dan penapis

区别 过滤器(Filter) 拦截器(Intercepter)
使用范围 是 servlet 规范中的一部分,任何                  Java Web 工程都可以使用 是 SpringMVC 框架自己的,只有使用了                  SpringMVC 框架的工程才能用
拦截范围 在 url-pattern 中配置了/*之后,                  可以对所有要访问的资源拦截 中配置了/**之                  后,也可以多所有资源进行拦截,但是可以通                  过标签                  排除不需要拦截的资源

Permulaan pantas pemintas

Sesuaikan langkah pemintas:

① Cipta kelas pemintas untuk melaksanakan antara muka HandlerInterceptor

public class MyHandlerInterceptor1 implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        System.out.println("preHandle running...");
        return true;
    }
    public void postHandle(HttpServletRequest request, HttpServletResponse 
        response, Object handler, ModelAndView modelAndView) {
        System.out.println("postHandle running...");
    }
    public void afterCompletion(HttpServletRequest request, HttpServletResponse 
        response, Object handler, Exception ex) {
        System.out.println("afterCompletion running...");
    } 
}
Salin selepas log masuk

② Konfigurasikan pemintas

<!--配置拦截器--> 
<interceptors>
 <interceptor>
  <mapping></mapping>
  <bean></bean>
 </interceptor>
</interceptors>
Salin selepas log masuk

③ Uji kesan pemintas pemintas (tulis kaedah sasaran)

@RequestMapping("/quick23") 
@ResponseBody
public ModelAndView quickMethod23() throws IOException, ParseException {
    System.out.println("目标方法执行....");
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("name","modelname");
    modelAndView.setViewName("index");
    return modelAndView;
}
Salin selepas log masuk

(lawati URL)

http://localhost:8080/project/quick23

Hasil cetakan konsol

Cara menggunakan pemintas SpringMVC Java

Kendalian berbilang pemintas

Langkah Sama seperti di atas, semasa menulis operasi MyHandlerInterceptor2, cuma uji urutan pelaksanaan.

Penerangan kaedah pemintas

方法名 说明
preHandle() 方法将在请求处理之前进行调用,该方法的返回值是布尔值Boolean类型的,                 当它返回为false 时,表示请求结束,后续的Interceptor 和Controller 都不会                 再执行;当返回值为true 时就会继续调用下一个Interceptor 的preHandle 方                 法
postHandle() 该方法是在当前请求进行处理之后被调用,前提是preHandle 方法的返回值为                 true 时才能被调用,且它会在DispatcherServlet 进行视图返回渲染之前被调                 用,所以我们可以在这个方法中对Controller 处理之后的ModelAndView 对象                 进行操作
afterCompletion() 该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图                 之后执行,前提是preHandle 方法的返回值为true 时才能被调用

Atas ialah kandungan terperinci Cara menggunakan pemintas SpringMVC Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan