WebServlet3.0注解的使用

1.监听器的注解 @WebListener 作用于Listener上

2.过滤器的使用:@WebFilter(urlPatterns=”/AFilter”)

3.删除web.xml
在Servlet类上添加@WebServlet(urlPatterns=”AServlet”)

总结:
注解的好处,配置信息少!
注解的缺点,不方便修改!

4.异步:
1.什么是异步处理
原来,在服务器没有结束响应之前,浏览器是看不到响应内容的。只有在响应结束时,浏览器才会显示出结果!
现在异步处理的作用:在服务器开始响应后,浏览器就可以看到响应的内容了,不用等待服务器响应结束!
2.实现异步的步骤
得到AsyncContext,他是异步上下文对象。
AsyncContext ac=request.startAsync(request,response);
给上下文一个Runnable对象,启动它。(给上下文一个任务,让它完成)
aContext.start(new Runnable() {
public void run() {

                println("现在马上开始",response);
                sleep(2000);
                for(char c='A';c<'Z';c++) {
                    println(c+"",response);
                    sleep(100);
                }
                //通知服务器结束了
            aContext.complete();
        }
    });



@WebServlet(urlPatterns="/AServlet",asyncSupported=true)
response.setContentType("text/html;charset=utf-8;");

IE如果不能正常输出,表示响应体大小不足512B,可以添加字段
aContext.complete(); //通知服务器执行结束了

5.上传功能
上传对表单的要求

method=”post”
enctype=”multipart/form-data”,他的默认值是:application/x-www.-form-urlencoded

上传Servlet的要求
request.getParamerter()bu不能再用
request.getinputStream()使用它来获取整个表单的数据!
commons-fileupload
创建工厂
解析器
使用解析器来解析request对象,得到list

Serrvlet3.0 对上传提供了支持。
表单不变
在servlet中不需要再使用commons-fileload 而是使用servlet3.0提供的上传组件接口

上传的步骤:
使用request.getPart(“字段名”),得到Part实例;
Part:
String getContentType(): 获取上传文件的MIME类型
String getName(); 获取表单项的名称,不是文件名称
String getHead(String header) ; 获取指定头的值
long getSize(); 获取上传文件的大小
InputStream getInputStream();获取上传文件的内容
void write(String fileName) ; 把上传文件保存到指定路径上
默认Servlet是不支持上传的,需要给Servlet添加一个注解@MultipartConfig ,这个属性可以让其支持注解

这里记得加上注解。
@WebServlet(“/BServlet”)
@MultipartConfig
public class BServlet extends HttpServlet {
以下为get方法中的代码,注意添加
request.setCharacterEncoding(“UTF-8”);
String userName =request.getParameter(“username”);
/*
* 获取文件表单字段。对应的Part对象
* */
Part part =request.getPart(“resume”);
/*
* 从Part中获取需要的数据
* */
//获取上传文件的MIME类型
System.out.println(part.getContentType());
//获取上传文件的字节数
System.out.println(part.getSize());
//获取文件字段名称
System.out.println(part.getName());
//获取头,这个头中包含上传文件的名称
part.getHeader(“Content-Disposition”);
//保存上传文件
part.write(“C:/xxxxx.jgp”);

前端页面不在编写,只需写一个含有file属性的input。和一个支持上传的form表单

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值