「java设置下载响应头」javaweb文件下载响应头
本篇文章给大家谈谈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设置下载响应头的信息别忘了在本站进行查找喔。
发布于:2022-12-19,除非注明,否则均为
原创文章,转载请注明出处。