首页 > 其他分享 >Servlet17 - mvc优化 - reflect

Servlet17 - mvc优化 - reflect

时间:2023-01-20 11:56:14浏览次数:37  
标签:case break request method reflect mvc operate response Servlet17

mvc优化 - reflect

将所有 Servlet 方法放在一个 FruitServlet 中,通常项目会有许多 Servlet 方法,会导致 FruitServlet 非常庞大,判断 operate 参数的语法非常长,维护困难

  • switch(operate){
        case "index":
            index(request, response);
            break;
        case "add":
            add(request, response);
            break;
        case "delete":
            delete(request, response);
            break;
        case "edit":
            edit(request, response);
            break;
        case "update":
            update(request, response);
            break;
        default:
            throw new RuntimeException("operate值非法!");
    }
    

通过反射,获取类的所有方法,使用迭代器找到与 operate 值同名的方法,直接调用

通过反射实现调用 operate 方法,当添加新 Servlet 方法时,判断 operate 值的语句不用更改

  • Method[] methods = this.getClass().getMethods();
    for(Method method : methods) {
        if (operate.equals(method.getName())) {
            try {
                method.invoke(this, request, response);
                return;
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }
    throw new RuntimeException("operate值非法!");
    

标签:case,break,request,method,reflect,mvc,operate,response,Servlet17
From: https://www.cnblogs.com/Ashen-/p/17062629.html

相关文章

  • Servlet16 - mvc优化
    mvc优化一个项目通常有许多xxServlet类,比如AddServlet、DelServlet、EditServlet、IndexServlet、UpdateServlet等等,这些类中实现的方法有许多相同的对象,相同的参数......
  • ASP.NET Core 实战-13.MVC 和 Razor Pages 过滤器管道
    了解过滤器以及何时使用它们在本节中,您将了解有关过滤器管道的所有信息。您将看到它在典型请求的生命周期中的位置、MVC和Razor页面之间的区别以及过滤器与中间件的区......
  • 学习笔记——SpringMVC处理响应数据;SpringMVC处理请求域响应乱码问题
    2023-01-20一、SpringMVC处理响应数据1、处理响应数据方式一(1)语法:使用ModelAndView对象作为返回值类型,处理响应数据(2)底层实现原理①数据共享到request域②跳转路径方......
  • 学习笔记——@PathVariable注解基本使用;@PathVariable注解属性;REST风格CRUD概述;实现PU
    2023-01-19一、@PathVariable注解基本使用1、获取URL中占位符2、占位符语法:{}3、实例代码:@RequestMapping("testPathVariable/{empId}")publicStringtestPath......
  • SpringMVC异常处理
    简介系统中异常包括:编译时异常和运行时异常RuntimeException;编译异常就是检查异常,需要捕获;运行时异常可以捕获也可以不捕获。 异常处理思路在springmvc中,异常处理的......
  • 学习笔记——SpringMVC简介;SpringMVC处理请求原理简图;SpringMVC搭建框架
    2023-01-19一、SpringMVC简介1、SpringMVC是Spring子框架2、SpringMVC是Spring为“控制层”提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架。3、SpringMV......
  • 浅谈InnoDB存储引擎的MVCC机制
    文章目录​​一、数据库事务隔离级别​​​​1、事务原则​​​​2、4种隔离级别​​​​3、会出现的3种问题​​​​二、MVCC概念​​​​1、基本结构​​​​2、字段介绍......
  • Spring MVC Tiles示例
    Spring提供了与apachetile框架的集成支持。因此,我们可以借助SpringTile支持简单地管理SpringMVC应用程序的布局。SpringMVC支持Tiles的优势SpringMVCTiles示例1、......
  • Spring MVC自定义验证
    SpringMVC框架允许我们执行自定义验证。在这种情况下,我们声明自己的注释。我们可以根据自己的业务逻辑执行验证。SpringMVC自定义验证示例在此示例中,我们同时使用预......
  • Spring MVC编号验证
    在SpringMVC验证中,我们可以在数字范围内验证用户的输入。以下注释用于实现数字验证:@Min注解-必须传递带有@Min批注的整数值。用户输入必须等于或大于此值。@Max注解......