「java设置下载响应头」javaweb文件下载响应头

博主:adminadmin 2022-12-19 07:36:05 999

本篇文章给大家谈谈java设置下载响应头,以及javaweb文件下载响应头对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java下载问题,怎样让IE下载该文件,而不是打开该文件?

//·设置响应消息头,告诉浏览器当前响应是一个下载文件

response.setContentType( "application/x-msdownload");

//考虑到文件名中可能包含非ASCII码字符,所以应该进行编码后再传输

fileName = URLEncoder. encode(fileName, "UTF-8");

//告诉浏览器,当前响应数据要求用户干预保存到文件中,以及文件名是什么

response.setHeader( "Content-Disposition", "attachment;filename=" +fileName);

javaweb如何实现请求和响应

先来看一个流程图:

服务器处理请求的流程:

(1)服务器每次收到请求时,都会为这个请求开辟一个新的线程。

(2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!

(3)服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。

由流程图可以看出,在JavaWeb的请求与响应中,最重要的两个参数为request以及response,这两参数在Servlet的service( )方法中。

1、response概念:

response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。

response对象的功能分为以下四种:

(1)设置响应头信息

(2)发送状态码

(3)设置响应正文

(4)重定向

2、response响应正文

response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:

(1)PrintWriter out = response.getWriter():获取字符流;

(2)ServletOutputStream out = response.getOutputStream():获取字节流;

当然,如果响应正文内容为字符,那么使用response.getWriter(),如果响应内容是字节,例如下载时,那么可以使用response.getOutputStream()。

注意,在一个请求中,不能同时使用这两个流!也就是说,要么你使用repsonse.getWriter(),要么使用response.getOutputStream(),但不能同时使用这两个流。不然会抛出illegalStateException异常。

javaweb下载的时候为什么要设置响应头

响应头是告诉浏览器如何处理响应的,对于html,浏览器会解析并显示出页面,对于下载的内容,浏览器会弹出下载框,如果没有正确的设置响应头,可能会造成浏览器的不正确行为(例如下载html文件或者将要下载的文件显示在页面上等)

java设置下载响应头的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaweb文件下载响应头、java设置下载响应头的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-19,除非注明,否则均为首码项目网原创文章,转载请注明出处。