1.1 上次课内容回顾:
Listener :
监听器就是一个JavaBean用来监听其他Bean变化.
事件源:被监听的对象.
监听器:监听的对象.
事件源与监听器的绑定:
事件:事件源改变.通过事件对象获得事件源对象.
Servlet的监听器:
事件源:三个域对象.ServletContext,HttpSession,ServletRequest
三类:
一类:监听三个域对象的创建和销毁的监听器.
二类:监听三个域对象的属性变更监听器.
三类:监听HttpSession中的JavaBean的状态的改变的监听器.
Filter :
过滤器就是对从客服端发送到服务器的请求进行过滤的.
FilterConfig:过滤器配置.
元注解也是一个注解:修饰注解的 注解.
自定义一个注解:
核心运行类:
public class CoreRunner {
public static void main(String[] args) {
// 反射:获得类的字节码对象.Class
Class clazz = AnnotationDemo3.class;
// 获得测试类中的所有的方法:
Method[] methods = clazz.getMethods();
// 遍历数组:
for (Method method : methods) {
// System.out.println(method.getName());
// 判断方法上是否有@MyTest注解:
boolean flag = method.isAnnotationPresent(MyTest.class);
// System.out.println(method.getName()+" "+flag);
if(flag){
// 让这个方法执行:
try {
method.invoke(clazz.newInstance(), null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
1.2.4 总结:
使用注解完成JDBC工具类的编写:(了解)
public class JDBCUtils {
private static String driverClass;
private static String url;
private static String username;
private static String password;@JDBCInfopublic static Connection getConnection() throws Exception{ // 反射: Class clazz = JDBCUtils.class; Method method = clazz.getMethod("getConnection", null); // 获得方法上的注解: JDBCInfo jdbcInfo = method.getAnnotation(JDBCInfo.class); driverClass = jdbcInfo.driverClass(); url = jdbcInfo.url(); username = jdbcInfo.username(); password = jdbcInfo.password(); Class.forName(driverClass); Connection conn = DriverManager.getConnection(url, username, password); return conn;}
}
REQUEST
FORWARD
INCLUDE
ERROR
定义一个类:class
定义一个借口:interface
定义一个枚举:enum
定义一个注解:@interface
自动登录:
网站乱码的解决:
1.2 案例一:使用自定义注解完成@Test注解功能类似的效果:1.2.1 需求
使用Junit是单元测试的工具.在一个类中使用 @Test 对程序中的方法进行测试.
自定义一个注解@MyTest 也将这个注解加在类的方法上. 使这个方法得到执行.
1.2.2 分析:1.2.2.1 技术分析:
Ø 【注解】
程序中有 注释 和注解注释:给开发人员.
注解:给计算机看的.
注解使用:学习框架支持注解开发.
Ø 【JDK提供的注解】
@Override :描述方法的重写.
@SuppressWarnings :压制警告.
@Deprecated :标记过时.
Ø 自定义注解:定义一个类:class
定义一个借口:interface
定义一个枚举:enum
定义一个注解:@interface
FilterChain:过滤器链.
生命周期:服务器启动的时候进行创建,服务器关闭的时候销毁.
过滤器的配置:
获得初始化参数
获得ServletContext
获得过滤器的名称
<url-pattern>的配置
<servlet-name>的配置
<dispatcher>的配置:
定义一个类:class
定义一个借口:interface
定义一个枚举:enum
定义一个注解:@interface
}
带有属性的注解:
@interface MyAnno2{
int a() default 1;
String b();
// 注解属性的类型:基本数据类型,字符串类型String,Class,注解类型,枚举类型,以及以上类型的一维数组.
// Date d();
Class clazz();
MyAnno3 m3(); // 注解
Color c(); // 枚举
String[] arrs();
定义一个类:class
定义一个借口:interface
定义一个枚举:enum
定义一个注解:@interface
br/>@MyTest<br <="" a="">public void demo1(){
System.out.println("demo1执行了...");
}
@MyTest
}定义核心运行类:
在核心运行类中有一个主函数:
获得测试类中的所有的方法.
获得每个方法,查看方法上是否有@MyTest注解.
定义核心运行类:
在核心运行类中有一个主函数:
获得测试类中的所有的方法.
获得每个方法,查看方法上是否有@MyTest注解.<br/" rel="nofollow">
共同学习,写下你的评论
评论加载中...
作者其他优质文章