为什么别人的网页有登录拦截而你没有,这就教你学会它(上)

简介: 1.简介2.自定义拦截器

1.简介


SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。


拦截器和过滤器的区别在于拦截器使AOP思想的具体应用


  • 过滤器


  • servlet规范中的一部分,任何java web工程都可以使用
  • url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截
  • 需要重写方法


  • 拦截器


  • SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用
  • 拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的
  • 不需要重写方法


2.自定义拦截器


>Moduleweb💻


>web.xmlapplicationContext.xmlcontroller💻


>💻


@RestController
public class TestController {
    @GetMapping("/t1")
    public String test(){
        System.out.println("TestController-->test()执行了");
        return "ok";
    }
}

添加Artifact中的lib,以及配置Tomcat,启动测试出现,证明Spring配置好了


微信图片_20211231134605.png


>💻


package com.hxl.config;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
    //在请求处理的方法之前执行
    //return true;执行下一个拦截器
    //如果返回false就不执行下一个拦截器
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("------------处理前------------");
        return true;
    }
    //在请求处理方法执行之后执行
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("------------处理后------------");
    }
    //在dispatcherServlet处理后执行,做清理工作.
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("------------清理------------");
    }
}


>applicationContext.xml💻


<!--关于拦截器的配置-->
<mvc:interceptors>
    <mvc:interceptor>
        <!--/** 包括路径及其子路径-->
        <!--/admin/* 拦截的是/admin/add等等这种 , /admin/add/user不会被拦截-->
        <!--/admin/** 拦截的是/admin/下的所有-->
        <mvc:mapping path="/**"/>
        <!--bean配置的就是拦截器-->
        <bean class="com.hxl.config.MyInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>


前面的我们都不动,运行,我们可以看到效果


微信图片_20211231134705.png


那么接下来就用一个实例来体验一下拦截器(登录)


在WEB-INF下的所有页面或者资源,只能通过controller或者servlet进行访问


相关文章
JavaWeb02(Servlet&页面跳转方式&表单提交方式)
JavaWeb02(Servlet&页面跳转方式&表单提交方式)
|
3月前
|
前端开发 Java 开发工具
servlet技术--使用注解模拟用户登录实现页面跳转
该文章介绍了Servlet技术的使用,通过注解方式开发Servlet来模拟用户登录功能,并在登录成功后实现页面跳转,展示用户的用户名和密码。
servlet技术--使用注解模拟用户登录实现页面跳转
|
前端开发 Java 程序员
SpringMVC实现对页面的访问和跳转~
SpringMVC实现对页面的访问和跳转~
|
前端开发 API 数据库
网页实现微信登录
网页实现微信登录
173 0
|
前端开发 安全 JavaScript
使用Servlet+AJAX+AWT实现网站登录时的图片验证码功能
使用Servlet+AJAX+AWT实现网站登录时的图片验证码功能
197 0
使用Servlet+AJAX+AWT实现网站登录时的图片验证码功能
|
前端开发 开发者
登录拦截器实现|学习笔记
快速学习登录拦截器实现
|
前端开发 Java 数据安全/隐私保护
登录拦截器的应用 | 学习笔记
快速学习登录拦截器的应用,介绍了登录拦截器的应用系统机制, 以及在实际应用过程中如何使用。
|
架构师 Java
为什么别人的网页有登录拦截而你没有,这就教你学会它(下)
3. 登录拦截 3.1 先做一个页面 3.2 登录拦截 文末小惊喜
为什么别人的网页有登录拦截而你没有,这就教你学会它(下)