注解&servlet3.0

来源:互联网 发布:淘宝网上有电击枪吗 编辑:程序博客网 时间:2024/06/16 12:20
为什么在开发中要使用枚举.  获取注解里面的属性值:注解保留到运行时候,获取注解对象
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;















































































































原创粉丝点击