Apache.Tomcat 调用Servlet原理之Class类的反射机制,用orc类解释
有一个兽人类
package com.swift.servlet; public class OrcDemo {
private int hp;
private int mp;
private int atk;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getMp() {
return mp;
}
public void setMp(int mp) {
this.mp = mp;
}
public int getAtk() {
return atk;
}
public void setAtk(int atk) {
this.atk = atk;
} public OrcDemo() {
}
public OrcDemo(int hp, int mp, int atk) {
super();
this.hp = hp;
this.mp = mp;
this.atk = atk;
}
public void orcInfo() {
System.out.println("hp"+hp+"mp"+mp+"atk"+atk);
}
public static void main(String[] args) {
OrcDemo orc=new OrcDemo(3000,2000,500);
orc.orcInfo();
}
}
原本的兽人对象使用方法:
public static void main(String[] args) {
OrcDemo orc=new OrcDemo(3000,2000,500);
orc.orcInfo();
}
使用Class类反射,得到兽人对象全部内容:
Class c=Class.forName("OrcDemo");
OrcDemo od=(OrcDemo)c.newInstance();
od.orcInfo();
apache.tomcat就是使用这种方法调用的Servlet
web.xml配置文件中
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>com.swift.servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo<servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
把上面的<servlet-class>com.swift.servlet.TestServlet</servlet-class>中的com.swift.servlet.TestServlet拿出来使用即可
应用到刚才写的反射代码
Class c=Class.forName("OrcDemo");
OrcDemo od=(OrcDemo)c.newInstance();
od.orcInfo();
变为
Class c=Class.forName("com.swift.servlet.TestServlet"); //ServletDemo sd=(ServletDemo)c.newInstance();/*tomcat就是因为不知道有 ServletDemo这个类,才使用反射方法,这里我们可以用他的父类,多态就可以了*/ HttpServlet hs=c.newInstance(); hs.doGet();
Apache.Tomcat 调用Servlet原理之Class类的反射机制,用orc类解释的更多相关文章
- 浅谈Java反射机制 之 使用类的 属性、方法和构造函数
前面两篇我们总结了Java反射机制如何获取类的字节码,如何获取构造函数,属性和方法, 这篇我们将进一步验证如何使用我们获取到的属性.方法以及构造函数 1.使用 反射 获取到的 属性 import ja ...
- Android利用反射机制为实体类属性赋值
在做android项目时,有时会遇到从网络上获取json类型数据,赋值给实体类,实体类属性少可以一个一个的赋值,如果实体类有很多属性,赋值可能就要耗很长的功夫了,幸好Java给我们提供了反射机制.下面 ...
- 利用Java反射机制对实体类的常用操作工具类ObjectUtil
代码: ObjectUtil类: import java.lang.reflect.Field; import java.math.BigDecimal; import java.text.Simpl ...
- Day14_82_反射机制输出整个类
利用反射机制输出整个类 代码实例 import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class Ref ...
- 【tomcat】servlet原理及其生命周期
1.什么是servlet? Servlet(Servlet Applet),全称Java Servlet,是用Java编写的服务器端程序.而这些Servlet都要实现Servlet这个接口.其主要功能 ...
- JavaSE基础复习---Class类与反射机制
---恢复内容开始--- 目录: 1.java.lang.class类 2.Java中的反射机制 3.运行时与编译时概念 1. java.lang.class类 Java程序在运行时,Java运行时系 ...
- Java Class类及反射机制
java.lang.Class类 声明: public final class Class<T>extends Object implements Serializable, Generi ...
- c#反射机制判断同一个类的两个实例的值是否完全一样
; i < properties1.Length; i++) { string s = properties1[i].DeclaringTyp ...
- JAVA反射机制教程-获取类对象
1. 什么是类对象 类对象,就是用于描述这种类,都有什么属性,什么方法的 2. 获取类对象 获取类对象有3种方式(1). Class.forName(2). Hero.class(3). new He ...
随机推荐
- C# list.toArray list与数组的转换
void Start () { List<int> list = new List<int>(); list.Add(); list.Add(); list.Add(); li ...
- adb root错误信息adbd cannot run as root in production builds问题解决
adb root错误信息adbd cannot run as root in production builds问题解决 一.问题描述 1.输入指令 >adb root adbd cannot ...
- 几种常见的排序算法Java实现总结
public class MySort { final int MAX=20; int num[]=new int[MAX]; { System.out.print("生成的随机数组是:&q ...
- 文件监控只FileSystemWatcher控件
FileSYstemWatcher控件是用来监控一个文件系统或监控文件变化.该控件会通知文件创建.修改.删除的消息,分别通过Created事件.Changed事件和Deleted事件来处理对应的操作 ...
- DataGridView进度条列 C# WinForm
先看看效果,如果感兴趣,继续往下看…… 效果如下图所示: DataGridView里没有Pragress列,但有Image列,有了它我们可以自己绘图来实现进度条.其实实现起来并不困难. 首先在实体类增 ...
- 对数组排序进行"洗牌"(随机排序)
这段代码在这里使用Fisher Yates洗牌算法给一个指定的数组进行洗牌(随机排序). function shuffle(arr) { var i, j, tem ...
- Android自定义控件练手——波浪效果
这一次要绘制出波浪效果,也是小白的我第一次还望轻喷.首先当然是展示效果图啦: 一.首先来说说实现思路. 想到波浪效果,当然我第一反应是用正余弦波来设计啦(也能通过贝塞尔曲线,这里我不提及这个方法但是在 ...
- HttpWebRequest Post请求webapi
1.WebApi设置成Post请求在方法名加特性[HttpPost]或者方法名以Post开头如下截图: 2.使用(服务端要与客户端对应起来)[单一字符串方式]:注意:ContentType = &qu ...
- Google面试准备
本人小弱,面试过了Google的HC,虽然team match还没完成,到最后还有变数.但对自己这段时间的努力,也算一个交代了. 最初是一年半前Google的HR联系到我,然后第一次在电面就挂了.经过 ...
- JavaMail 的简单使用
概述 邮件功能模块在大多数网站中,都是必不可少的功能模块.无论是用户注册还是重置密码,邮件都是比较常用的一个方式.本文主要介绍 JavaMail 的简单使用,方便大家快速开发,供大家参考.完整的 de ...