如何利用反射简化servlet操作

迷之月夜 迷之月夜     2022-10-02     694

关键词:

一、反射的实现

  新建类BaseServlet,继承HttpServlet(不需要在web.xml文件中配置

  1、在doPost()方法中处理请求乱码,并调用doGet()方法

    //处理post请求乱码,只需要在getParamter方法第一次调用前,设置request的编码
      request.setCharacterEncoding("utf-8");

      调用doGet()

  2、doGet()中:

    //获取用户传递的请求参数
      String methodName = request.getParameter("method");
    //通过方法名获取到方法的对象
      //获取当前类的Class对象
        Class cla = this.getClass();
      //获取cla的方法(Method对象)
        //getDeclaredMethod需要两个参数,方法名和参数名
        //因为在java需要通过方法名和参数列表来确定一个方法
      try {
        //获取方法对象
          Method method = cla.getDeclaredMethod(methodName, HttpServletRequest.class , HttpServletResponse.class);
        //设置方法的访问权限
          method.setAccessible(true);     //该方法可以取消Java的权限控制检查,就可以调用类的私有属性和方法
        //调用方法
        //invoke用于调用一个方法,第一个参数时要调用方法的对象,剩下是调用方法需要的参数
          method.invoke(this, request , response);         //方法调用,传递调用对象及参数
      } catch (Exception e) {
        e.printStackTrace();
      }

 二、反射的应用

  1、新建的Servlet继承BaseServlet类,不需要重写doGet和doPost方法,直接写不同的处理方法,注意方法名要与methodName的值相匹配

  2、执行流程:

      页面提交表单到对应Servlet

      该Servlet由于继承了BaseServlet类,会调用父类的doGet或doPost方法,

      通过页面获取的参数,调用该Servlet对应名称的方法

利用java反射机制来实现一个servlet处理多种请求

如果我们想在一个servlet中处理多种请求(比如新闻的添加、删除),简单的可以在jsp提交表单的action路径中添加一个键值对,然后再servlet中接收后根据不同的值来调用不同的方法。jsp端1<formaction="newsServlet?method=add"method="post"&g... 查看详情

jdbc操作mysql:利用反射封装(代码片段)

...好像有一个问题,数据库中的表名和字段中带有下划线该如何解决呢实践操作工具类:获取connection对象publicclassJDBCUtil publicstaticConnectiongetConnection() try Class.forName("com.mysql.cj.jdbc.Driver") 查看详情

利用反射计芯片进行非接触式液位测量

...量液位。本文提供了一个经验设计实例,说明反射计装置如何简化设计。         &n 查看详情

gin利用go的反射原理进行路由注册(代码片段)

...创不易,未经允许,请勿转载。文章目录一、Gin如何进行路由注册?二、利用Go的反射简化路由注册系统:windows10go版本:1.13.15一、Gin如何进行路由注册?gin框架进行路由注册方法很简单,如下代码所... 查看详情

gin利用go的反射原理进行路由注册(代码片段)

...创不易,未经允许,请勿转载。文章目录一、Gin如何进行路由注册?二、利用Go的反射简化路由注册系统:windows10go版本:1.13.15一、Gin如何进行路由注册?gin框架进行路由注册方法很简单,如下代码所... 查看详情

利用反射动态操作数组

java语言中,数组对象并不是从某个类实例化出来的,而是JVM动态创建的.对数组对象使用如下操作,可看到数组对应的Class对象.通过RTTI(Run-TimeTypeInformation)可直接检查数组的运行时类型,以及它的签名.下方的“[L”就是int[]/Integer[]的运... 查看详情

通用型的servlet(简化servlet的个数)(代码片段)

...产生动态页面于是就有请求,而每一个请求就对应了一个Servlet,这个时候,如果页面如果数量较多,那么我们所编写的Servlet也是很多的,于是就出现了通用的Servlet.      这么举个例子吧:     一个学... 查看详情

注解与反射(代码片段)

...许多的注解,通过反射读取注解的值,来简化操作.? 比如利用反射读取注解的值,通过值拼成SQL语句,就可以动态地生成表,或者其他高级的功能.什么是注解(Annotation)Annotation的作用:可以被其他程序(比如:编译器等)读取Annotation在... 查看详情

springmvc是如何逐步简化servlet的编程的

Servlet和JSP是开发javaWeb应用程序的两种基本技术,SpringMVC是Spring框架中用于Web应用程序开发的一个模块,能够清晰的了解到从Servlet到SpringMVC开发技术之间逐步简化的过程对于深刻理解SpringMVC在Web应用程序开发中的作用具有很大的... 查看详情

利用反射实现通用的excel导入导出

如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出实例代码如下:1.创建一个Book类,并编写set和get方法1packagecom.bean;23publicclassBook{4privateintid;5privateStringname;6privateStringtype;7//publicinta;89... 查看详情

利用过滤器和反射技术对string类型的入参进行统一trim(代码片段)

...行trim操作呢?于是就有了这篇文章。原理过滤器+重写HttpServletRequestWrapper类,将修改后的参数列表写回request中。代码示例第一步编写参数过滤器packagecom.xx.controller.filter;importorg.springframework.web.filter.OncePerRequestFilter;importjavax.servlet.... 查看详情

springmvc

...要职责就是处理前端HTTP请求。SpringMVC本质可以认为是对servlet的封装,简化了我们serlvet的开发2.工作流程:开发过程:请求处理流程:九大组件:3.请求参数绑定,说白了SpringMVC是如何接受参数的:原生servlet接收一个整型参数:S... 查看详情

c#用dynamic一行代码实现反射操作(代码片段)

...编译时默认dynamic对象支持你想要的任何特性。dynamic简化反射实现使用dynamic来简化反射实现是一种比较常见的编程技巧,它可以减少代码的复杂性并提高可读性。下面是一个使用dynamic来简化反射实现的示例://定义一个类publiccla... 查看详情

javaweb中的servletrequest,servletresponse的使用,及简化servlet方法

首先说一下ServletRequest,ServletResponse类的使用方法:publicvoidservice(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ /* *如何在Servlet中获取请求信息: *(1):Servlet的servlet()方法用于应答请 查看详情

Jetty 和其他容器如何在遵守 Servlet 规范的同时利用 NIO?

】Jetty和其他容器如何在遵守Servlet规范的同时利用NIO?【英文标题】:HowdoJettyandothercontainersleverageNIOwhilestickingtotheServletspecification?【发布时间】:2014-10-0110:32:41【问题描述】:我是NIO的新手,我正在尝试弄清楚Jetty如何利用NIO。... 查看详情

如何理解java中的反射机制,为什么利用反射可以写开源框架?

当诸君在使用idea或者eclipse/vscode等代码编辑器时,有没有想过当你在字符串后面或者一个类实例后输入.的时候后面跟随出来的字符串方法以及类内方法调用是怎样给出提示的?Theansweris反射.反射的具体介绍程序可以访问,检测和修... 查看详情

如何利用缓存机制实现java类反射性能提升30倍

一次性能提高30倍的JAVA类反射性能优化实践。文章来源:宜信技术学院&宜信支付结算团队技术分享第4期-支付结算部支付研发团队高级工程师陶红《JAVA类反射技术&优化》分享者:宜信支付结算部支付研发团队高级工程师... 查看详情

java之spring学习之前的一个小demo

...下传统的model2开发模式;为了简化流程,这里省略了利用servlet来获取前台数据。采用直接new出来的对象来交给程序处理,然后执行对数据库的操作以及显示(控制台显示,哈哈)。用到了:Hibernate、反射、Junit。先来一张项目目... 查看详情