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 ...
随机推荐
- BuildAssetBundles文件打包
BuildAssetBundles文件打包: public class BuildAssetBundlesTest : Editor { //定义打包文件路径 public static string ...
- [转]关于Jquery的DataTables里TableTools的应用
本文转自:http://147068307.iteye.com/blog/1700516 最近在产品中使用了TableTools这个工具,主要用来实现导出和复制功能. 但是在实际的运用中出现了以下相关 ...
- telnet不能用,提示:-bash: telnet: command not found
1.[root@localhost ~]# telnet bash: telnet: command not found 2. 查询了是否安装Telnet包,结果如下: [root@localhos ...
- No module named Crypto--转
https://blog.csdn.net/lacoucou/article/details/53152122 背景:win10+python 2.7 在python 中使用AES算法时,会报告上述错 ...
- 给主程序签名及第三方dll强签名
给主程序添加签名 添加完成后会自动生成一个*.pfx文件. 给程序添加强签名方法: 本文以Quartz.dll为例,使用vs Tools下的工具命令. 打开命令工具是这个样子, ...
- 转:Oracle优化总结
本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了 ORACLE数据库的优化调整方案. 关键词 ORACLE数据库 环境 ...
- selenium select 标签选中
public static int SetSelectedIndex(this IWebDriver webdriver, string selector, int selectedIndex) { ...
- SSL Labs: Increased Penalty When TLS 1.2 Is Not Supported
https://community.qualys.com/blogs/securitylabs/2015/05/22/ssl-labs-increased-penalty-when-tls-12-is ...
- Torch.no_grad()影响MSE损失
相关描述 https://discuss.pytorch.org/t/torch-no-grad-affecting-outputs-loss/28595/3 今天在训练网络的时候,发现mseloss ...
- MySQL入门很简单: 10 mysql运算符
1. 算术运算符 例子: 将t1表中字段a的值进行加法,减法和乘法 2. 比较运算符 注:LIKE经常和通配符"_"和"%"一起使用,"_" ...