当前位置: 首页 > news >正文

微商网站制作天河岗顶棠下上社网站建设开发

微商网站制作,天河岗顶棠下上社网站建设开发,陕西网站制作公司,学建站wordpress😀前言 本篇博文是关于拦截器-HandlerInterceptor的使用,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动…

😀前言
本篇博文是关于拦截器-HandlerInterceptor的使用,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • 拦截器-HandlerInterceptor
    • 基本介绍
      • 基本步骤:
    • 拦截器应用实例
      • 需求:
      • 代码实现
    • 注意事项和细节
      • URI 和URL 的区别
        • 举例说明:
    • 😄总结

拦截器-HandlerInterceptor

基本介绍

在Spring Boot 项目中, 拦截器是开发中常用手段,要来做登陆验证、性能检查、日志记录等。

基本步骤:

√ 编写一个拦截器实现HandlerInterceptor 接口
√ 拦截器注册到配置类中(实现WebMvcConfigurer 的addInterceptors)
√ 指定拦截规则

拦截器应用实例

需求:

使用拦截器防止用户非法登录, 如图- 使用拦截器就不需要在每个方法验证了
浏览器输入: http://localhost:8080/manage.html , 如果用户没有登录,则返回登录界面.

image-20230813210700183

代码实现

  1. 创建com/my/usersys/interceptor/LoginInterceptor.javapackage com.
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {// 目标方法执行前被调用.@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//为了让小伙伴看到访问的URIString requestURI = request.getRequestURI();String requestURL = request.getRequestURL().toString();log.info("preHandle拦截到的请求的URI={}", requestURI);log.info("preHandle拦截到的请求的URL={}", requestURL);//进行登录的校验HttpSession session = request.getSession();Object loginAdmin = session.getAttribute("loginAdmin");if (null != loginAdmin) {//说明该用户已经成功登录//放行return true;}//拦截, 重新返回到登录页面request.setAttribute("msg", "你没有登录/请登录~~");request.getRequestDispatcher("/").forward(request, response);return false;}//目标方法执行完成以后调用@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {log.info("postHandle执行了...");}//页面渲染以后调用@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {log.info("afterCompletion执行了...");}
}
  1. 创建com/my/usersys/config/WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {//注册自定义拦截器LoginInterceptorregistry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**") //拦截所有的请求.excludePathPatterns("/","/login","/images/**");//指定要放行的,后面可以根据业务需求,来添加放行的请求路径}
}
  1. 修改com/my/usersys/controller/AdminController.java , 去掉session 验证用户是否登录代码, 并完成测试, 注意看页面和后台日志.
//处理用户的请求到 manage.html@GetMapping("/manage.html")public String mainPage(Model model, HttpSession session) {log.info("进入mainPage()");//可以这里集合-模拟用户数据, 放入到request域中,并显示ArrayList<User> users = new ArrayList<>();users.add(new User(1, "关羽~", "666666", 20, "gy@sohu.com"));users.add(new User(2, "张飞", "666666", 30, "zf@sohu.com"));users.add(new User(3, "赵云", "666666", 22, "zy@sohu.com"));users.add(new User(4, "马超", "666666", 28, "mc@sohu.com"));users.add(new User(5, "黄忠", "666666", 50, "hz@sohu.com"));//放入model的数据默认到request域model.addAttribute("users", users);return "manage"; //这里才是我们的视图解析到 /templates/manage.html}

image-20230813211243822

image-20230813211311424

注意事项和细节

URI 和URL 的区别

URI = Universal Resource Identifier
URL = Universal Resource Locator
Identifier:标识符,Locator:定位器从字面上来看, URI 可以唯一标识一个资源, URL 可以提供找到该资源的路径

举例说明:

String requestURI = request.getRequestURI();
String requestURL = request.getRequestURL().toString();

注册拦截器, 依然可以使用如下方式

public class WebConfig /*implements WebMvcConfigurer*/ {//将我们的拦截器, 注入到容器中//@Override//public void addInterceptors(InterceptorRegistry registry) {////    //注册自定义拦截器LoginInterceptor//    registry.addInterceptor(new LoginInterceptor())//            .addPathPatterns("/**") //拦截所有的请求//            .excludePathPatterns("/","/login","/images/**");//指定要放行的,后面可以根据业务需求,来添加放行的请求路径//}@Beanpublic WebMvcConfigurer webMvcConfigurer() {return new WebMvcConfigurer() {@Overridepublic void addInterceptors(InterceptorRegistry registry) {System.out.println("addInterceptors~~~");//注册拦截器registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/","/login","/images/**");}};}
}

😄总结

  1. URI 可以唯一标识一个资源, URL 可以提供找到该资源的路径。
  2. 拦截所有的请求时要注意哪些资源需要放行,防止无法请求。
  3. 拦截器注册到配置类中(实现WebMvcConfigurer 的addInterceptors),一定要指定拦截规则。

😁热门专栏推荐

Thymeleaf快速入门及其注意事项

Spring Initailizr–快速入门–SpringBoot的选择

带你了解SpringBoot支持的复杂参数–自定义对象参数-自动封装

Rest 优雅的url请求处理风格及注意事项

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

http://www.yayakq.cn/news/852201/

相关文章:

  • 游戏网站seo怎么做得物app公司怎么样
  • 广东省建设交易中心网站apache wordpress配置文件
  • 怎样进入网站的后台百度网站收录链接提交
  • 谁专门做网站安全维护wordpress使用手册
  • 做宠物网站导航应该写什么字酒店网站开发合同
  • 鞍山做网站专业公司公司网站如何制作
  • 重庆一品建设集团有限公司网站做网站开发电脑配置
  • 网站ui设计师专做五金正品的网站
  • 东坑仿做网站做网站需要学什么语言
  • 个人cms网站wordpress 4.9 正式版
  • 宁波企业网站建设wordpress建单页面论坛
  • 新网站建设方案pptwordpress直排主题
  • 网站空间后台公司介绍模板word
  • 网站建设制作好评语衡水做网站建设
  • 昆明 网站搭建北京网站制作百度推广
  • 郑州网站建设套餐做网站公司赚钱吗?
  • php网站开发目的兴宁房产网
  • 深圳做网站的人怎样免费制作网站
  • 免费网站推广网址上海响应式网站建设
  • 怎么做物流网站网站会员等级审核功能怎么做
  • 南京 网站制作公司陕西省建设网官网陕西省建筑市场监督与诚信信息一体化平台
  • 在线做网站图标做外贸有免费的网站吗
  • 网站 谁建设 谁负责ie浏览器官方网址入口
  • 公司如何做网站一般多少钱python基础代码
  • 冠县做网站哪里好游戏开服网
  • 电影资源网站怎么做网络规划设计师是高级工程师吗
  • 建个人网站一般多少钱工具用具使用费是指企业施工生产
  • 内力网站建设网站备案查询工具
  • 报纸做垂直门户网站京东商城网上购物官网
  • 做网站的总结成都住房和城乡建设厅网站首页