java注解接收上传文件,JavaWeb基础知识day17——注解&Servlet3.0实现文件上传

注解

注解:

jdk5之后提供了一个特性,和类 接口同级

格式:

@interface 注解名{}

作用:

编译期检查

替代配置文件

定义注解(元注解:注解上的注解)

分析代码(用到反射)

java中3个注解(理解)

@Override:声明该方法是从父类上继承过来的,执行编译期的检查

@SuppressWarnings:抑制警告 值有好多,只需要知道一个 all  抑制所有的警告

@Deprecated:声明 该方法不赞成使用

注解的本质是一个接口,通过jdk自带的javap命令反编译class字节码文件得出【javap xxx.class】。

枚举的本质是一个被阉割的类,通过jdk自带的javap命令反编译class字节码文件得出【javap xxx.class】。该枚举定义的常量是本身对象,且构造私有化,用public static final 修饰对外提供访问。

自定义注解(理解)

注解属性:

注解本质就是一个接口,接口中可以有常量和抽象方法

抽象方法在注解中就称之为注解属性

注解属性类型:

基本类型

String

Class

Annotation

Enum:枚举

以上类型对应的一维数组

注意:

一旦注解有属性了,使用注解的时候必须赋值,(除非这个注解属性有默认值)

赋值的格式:

@注解名(属性名=属性值)

若注解类型为数组,且只有一个值的时候,可以有两种写法

方式1:

属性名 = { 值 }

方式2:

属性名=属性值

若属性名为value的时候,且只需要为这个value属性赋值的时候,value可以省略

元注解:(理解)

定义在注解上的注解

@Retention  规定注解保留到什么阶段  值为RetentionPolicy的三个枚举值

SOURCE:只在代码中保留,在字节码文件中就删除了

CLASS:在代码和字节码文件中保留

RUNTIME:所有阶段都保留

例如://注解在运行时保留

@Retention(RetentionPolicy.RUNTIME)

@Target 规定注解作用在什么上面     值为ElementType的枚举值

TYPE:作用在类 接口 等上面

METHOD:作用方法上面

FIELD:作用字段上面

例如://注解只能作用在方法上

@Target(ElementType.METHOD)

856997b76e7d2210517f7ac6fa0219aa.png

9e864cacde048b7147597bfddcfb62f9.png

Servlet3.0文件上传

servlet3.0

3.0支持注解开发,没有web.xml这个文件了

内嵌了文件上传功能

/

例如:

创建servlet

在类上面添加 @WebServlet(urlPatterns={ "/demo2", "/demo21" },loadOnStartup=2)

创建listener

在类上添加 @WebListener

创建filter

在类上添加 @WebFilter(urlPatterns="/*")

/

文件上传

浏览器端的要求:

表单的提交方法必须是post

必须有一个文件上传组件  

必须设置表单的enctype=multipart/form-data

服务器端的要求:

servlet3.0中

需要在servlet中添加注解

@MultipartConfig

接受普通上传组件 (除了文件上传组件):request.getParameter(name属性的值)

接受文件上传组件 Part part=request.getPart(name属性的值);

getName():获取的name的属性值

获取文件名:

String s = part.getHeader("Content-Disposition"):获取头信息 然后截取

String filename=s.substring(s.indexOf("filename=")+10,s.length()-1);

//获取文件流

part.getInputStream();

//删除临时文件

part.delete()

//

上传注意的问题:

名字重复 随机名称

在数据库中提供两个字段,

一个字段用来存放文件的真实名称  1.jpg

另一个字段用来存放文件存放路径  g:/sdfasdf.jpg

随机名称:

uuid

时间戳

文件安全

重要的文件存放在 web-inf 或者 meta-inf 或者 服务器创建一个路径

不是很重要的文件 项目下

文件存放目录

方式1:日期

方式2:用户

方式3:文件个数

方式4:随机目录

mkdirs

标签:文件,Servlet3.0,JavaWeb,枚举,day17,javap,注解,上传,属性

来源: https://blog.csdn.net/qq_36326332/article/details/88584797

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值