Servlet学习D3 --获取浏览器附加信息

本文介绍了使用Servlet进行文件上传的步骤,包括设置表单提交方式及数据类型,并讲解了如何在Servlet中处理文件上传。此外,还介绍了如何获取客户端浏览器发送的附加信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet学习 --获取浏览器附加信息

一、 文件上传
1,在做文件上传时。需要注意的是,表单的提交方式必须是post的,因为我们需要让表单以字节方式提交,而get只能是字符提交,很显然不适用。

2,需要在form表单中修改请求的头信息。将原来的默认的字符提交修改为字节提交。

修改方式为:在form标签中添加一个属性和值: enctype=”multipart/form-data”

enctype=” multipart/form-data”:该属性表示当前表单为字节格式。服务器接收到该数据包后,发现请求的头部是multipart/form-data时就不会去解析当前的http数据包了。所以,我们也无法使用request.getParameter()去获取表单数据了。

3.在servlet中,如果需要处理表单中的内容。我们需要通过request对象获取通信流,通过对流的对象操作完成相应的表单处理。但是比较麻烦。后期我们会使用apache的专门用于处理文件上传的组件:common-fileupload。欠你们的。
二、 获取浏览器的附加信息
什么是浏览器的附加信息?

所谓的浏览器附加信息其实就是浏览的基本信息。比如:浏览器的品牌,浏览器支持的语言,浏览器支持的文件格式等。

获取方式:

String value = request.getHeader(key);

通过浏览器的附加信息的key获取value

Enumeration enu= request.getHeaderNames();

该方法表示获取附加信息的所有的key返回一个枚举。

Enumeration<String>  enu=  request.getHeaderNames();
      while(enu.hasMoreElements()){
        String key  =enu.nextElement();
      out.println("<tr><td>"+key+"</td><td>"+request.getHeader(key)+"</td><tr/>");
}

三、 给客户端产生一个相应
1.为相应设置编码

response.setContentType(“text/html;charset=utf-8”);

text/html:表示告知浏览器当前返回的相应内容的类型是什么。

charset=utf-8:表示告知浏览器用什么编码格式做相应的数据包的字节到字符的转换。同时用什么编码方式在页面中查看。

2.设置response.setContentType();来改变相应类型

请留意MIME.doc

相应图片

//将需要给客户端相应的图片读进来
      InputStream is = new FileInputStream(new File("f:/2.jpg"));
      byte[] buff = new byte[is.available()];
      is.read(buff);
       
      //在相应之前必须要设置相应类型
      response.setContentType("image/jpeg");
      //把读进来的图片相应给客户端
      OutputStream os = response.getOutputStream();//字节输出流。而getWriter返回的字符输出流
      os.write(buff);
      os.flush();
      is.close();
      os.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值