为什么在开发中要使用枚举. 获取注解里面的属性值:注解保留到运行时候,获取注解对象
getAnnotation(注解对象的class
1. 注解和注释的区别: 注释:给程序员看的. 注解:给虚拟机看的(让虚拟机看到程序中的注解,
注解代表程序的一些特殊功能)
2.JDK中提供了三个注解:
1.@override :描述子类重写父类的方法; (JDK6.0版本上,可以应用在实现上)
2.@suppresswarnings("all") : 压制所有警告.属性名就是value;
3.@Deprecated : 描述方法过时.
3.自定以注解 : @interface 注解名{ 注解的属性:int a() default 2;} 日期类型对于注解无效,只有 基本数据类型字符串类型,class类型,注解类型,枚举类型,以上类型的一维数组可以.
如果注解中只有一个value属性名(string value()),可以省略value,直接写值.
4.自定义注解结合反射.
1.定义一个核心的运行类,建立main方法,利用反射获得测试类的class,获得所有方法,
2.遍历每个方法,查看每 个方法有注解,(method.isAnnotationparesent()有注解的执行.
3.默认的自定义的注解存在于源代码阶段,需要延长注解的存在时间,使用元注解:修饰其他注解
@Retention(Runtime);
5.常用的元注解: @Target ({ElementType.Type}): 指定注解的作用位置,
@Retention: 指定注解的保留策略
6.完成文件上传功能: 将本地的文件写到服务器上.四种方式
1.servlet3.0
2.JSPSmartUpLoad : 嵌入到JSP中文件上传. 主要用于Mode1年代的.
3.FileUpload : Apache的文件上传组件.
4.struts2 :底层是fileupload.
7.文件上传的要素: 表单提交的方式必须是post,因为无大小限制.
表单中需要有文件上传的表单元素:: <input type="file" name="upload">必须有name
表单的form中enctype属性的值必须是multipart/form-data.可以获得文件内容.
8.servlet3.0技术: 没有web.xml
注解开发: @webServlet(urlPatterns="路径")
文件上传,
异步请求功能.
9.原理: request.getInputstream(). 将输入流转出string.然后切割字符串得到文件名和文件内容
10. 代码实现: 1.提交到一个servlet中.在servlet中加注解@Multipartconfig.作用是:可以使用
servlet3.0中的新方法.
2.接受普通数据文件描述getparameter(), 3.新的方法: request.getpart("upload");
4.获得文件名, part.getHeader("content-Disposition").lastIndexof("filename=\" ");
5.获得文件内容 .getInputstream();
11.文件上传问题:文件名重名.利用UUID.
一个目录下存放的文件过多,按目录分离算法分:
使用唯一文件名.hashcode();得到int类型, 然后 &0xf; 得到1级目录.
然后>>>4,右移四位.
13.servlet3.0 异步请求: 注解上面加上asyncsupported=true;