利用java反射机制实现自动调用类的简单方法

 更新时间:2016年08月15日 10:50:44   投稿:jingxian  
下面小编就为大家带来一篇利用java反射机制实现自动调用类的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1. 新建TestServlet类

package com.yanek.test;

import java.io.IOException;
import java.lang.reflect.Method;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 // 获取类的全路径以及名称
 String className = request.getParameter("className");
 // 获取方法名
 String methodName = request.getParameter("method");
 try {
  // 获取class文件
  Class<?> t_class = Class.forName(className);
  // 获取该类所需求的方法
  Method method = t_class.getDeclaredMethod(methodName,
   HttpServletRequest.class, HttpServletResponse.class);
  method.invoke(t_class.newInstance(), request, response);// 方法的实现
 } catch (Exception e) {
  e.printStackTrace();
 }
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 doGet(request, response);
 }

}

2. 建立需要自动调用的类

package com.yanek.test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test {

 /**
 * @param args
 */
 public static void main(String[] args) {

 System.out.println("hello world !");

 }

 public void test(HttpServletRequest request, HttpServletResponse response) {
 System.out.println("hello");
 System.out.println(request.getParameter("username"));
 }

}

3. web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <servlet>
 <description>Test</description>
 <display-name>Test</display-name>
 <servlet-name>Test</servlet-name>
 <servlet-class>com.yanek.test.TestServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>Test</servlet-name>
 <url-pattern>/Test</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
 <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

4. 启动服务器访问:

http://127.0.0.1:8081/TestPrj/Test?className=com.yanek.test.Test&method=test&username=aspboy

控制台输出:

hello

aspboy

说明: 类com.yanek.test.Test类的 方法 public void test(HttpServletRequest request, HttpServletResponse response) 被执行了.

反射机制是java中的重要功能,在框架设计中大量使用.

测试环境: tomcat6.0

以上这篇利用java反射机制实现自动调用类的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Springcloud实现服务多版本控制的示例代码

    Springcloud实现服务多版本控制的示例代码

    这篇文章主要介绍了Springcloud实现服务多版本控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • SWT JFace 小制作 文本阅读器

    SWT JFace 小制作 文本阅读器

    SWT JFace 小制作 文本阅读器
    2009-06-06
  • RocketMQ消息拉取过程详解

    RocketMQ消息拉取过程详解

    这篇文章主要为大家介绍了RocketMQ消息拉取过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 详解spring boot整合JMS(ActiveMQ实现)

    详解spring boot整合JMS(ActiveMQ实现)

    本篇文章主要介绍了详解spring boot整合JMS(ActiveMQ实现),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Spring Boot快速过滤出一次请求的所有日志

    Spring Boot快速过滤出一次请求的所有日志

    这篇文章主要介绍了Spring Boot快速过滤出一次请求的所有日志,本文讲述了如何使用MDC工具来快速过滤一次请求的所有日志,并通过装饰器模式使得MDC工具在异步线程里也能生效,需要的朋友可以参考下
    2022-11-11
  • java数据结构基础:栈

    java数据结构基础:栈

    这篇文章主要介绍了Java的数据解构基础,希望对广大的程序爱好者有所帮助,同时祝大家有一个好成绩,需要的朋友可以参考下,希望能给你带来帮助
    2021-07-07
  • Java current并发包超详细分析

    Java current并发包超详细分析

    current并发包、在JDK1.5之前Java并没有提供线程安全的一些工具类去操作多线程,需要开发人员自行编写实现线程安全,但仍然无法完全避免低性能、死锁、资源管理等问题。在JDK1.5时新增了java.util.current并发包,其中提供了许多供我们使用的并发编程工具类
    2023-02-02
  • Spring Boot集成Shiro并利用MongoDB做Session存储的方法详解

    Spring Boot集成Shiro并利用MongoDB做Session存储的方法详解

    这篇文章主要给大家介绍了关于Spring Boot集成Shiro并利用MongoDB做Session存储的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。
    2017-12-12
  • Java利用trueLicense实现项目离线证书授权操作步骤

    Java利用trueLicense实现项目离线证书授权操作步骤

    文章介绍了如何使用trueLicense实现离线授权控制,包括生成公私钥、创建证书校验模块、生成证书模块和测试模块,通过这种方式,可以控制用户使用的项目模块、授权周期、使用的设备和服务器,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Java使用Thread创建多线程并启动操作示例

    Java使用Thread创建多线程并启动操作示例

    这篇文章主要介绍了Java使用Thread创建多线程并启动操作,结合实例形式分析了Java基于Thread类的多线程定义与启动简单操作技巧,需要的朋友可以参考下
    2018-06-06

最新评论