分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JSP-response(HttpServletResponse)

发布时间:2023-09-06 01:46责任编辑:沈小雨关键词:暂无标签

1 HttpServletResponse概述

2 Response 运行过程

 3 通过抓包工具抓取Http响应

4 响应行

 5 设置响应头

set  和add的区别

 6 重定向

需要完成分析‘

6 设置响应体

6.1 设置文本和乱码

 ???????//设置response查询的码表 ???????//response.setCharacterEncoding("UTF-8"); ???????????????//通过一个头 Content-Type 告知客户端使用何种码表 ???????//response.setHeader("Content-Type", "text/html;charset=UTF-8"); ???????????????response.setContentType("text/html;charset=UTF-8"); ???????????????PrintWriter writer = response.getWriter(); ???????//writer.write("hello response!!!"); ???????writer.write("你好");

 6.2 设置字节

 6.3 文件下载

 ???//获得要下载的文件的名称 ???????String filename = request.getParameter("filename");//a.flv ???????//要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型 ???????response.setContentType(this.getServletContext().getMimeType(filename)); ???????//告诉客户端该文件不是直接解析 而是以附件形式打开(下载) ???????response.setHeader("Content-Disposition", "attachment;filename="+filename); ???????//获取文件的绝对路径 ???????String path = this.getServletContext().getRealPath("download/"+filename); ???????//获得该文件的输入流 ???????InputStream in = new FileInputStream(path); ???????//获得输出流---通过response获得的输出流 用于向客户端写内容 ???????ServletOutputStream out = response.getOutputStream(); ???????//文件拷贝的模板代码 ???????int len = 0; ???????byte[] buffer = new byte[1024]; ???????while((len=in.read(buffer))>0){ ???????????out.write(buffer, 0, len); ???????} ???????in.close(); ???????//out.close();

6.4 文件下载(中文)

 ???????//*******文件名称是中文的下载******* ???????//获得要下载的文件的名称 ???????String filename = request.getParameter("filename");//????.jpg ???????//解决获得中文参数的乱码----下节课讲 ???????filename = new String(filename.getBytes("ISO8859-1"),"UTF-8");//美女.jpg ???????????????//获得请求头中的User-Agent ???????String agent = request.getHeader("User-Agent"); ???????//根据不同浏览器进行不同的编码 ???????String filenameEncoder = ""; ???????if (agent.contains("MSIE")) { ???????????// IE浏览器 ???????????filenameEncoder = URLEncoder.encode(filename, "utf-8"); ???????????filenameEncoder = filenameEncoder.replace("+", " "); ???????} else if (agent.contains("Firefox")) { ???????????// 火狐浏览器 ???????????BASE64Encoder base64Encoder = new BASE64Encoder(); ???????????filenameEncoder = "=?utf-8?B?" ???????????????????+ base64Encoder.encode(filename.getBytes("utf-8")) + "?="; ???????} else { ???????????// 其它浏览器 ???????????filenameEncoder = URLEncoder.encode(filename, "utf-8"); ???????????????????????} ???????//要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型 ???????response.setContentType(this.getServletContext().getMimeType(filename)); ???????//告诉客户端该文件不是直接解析 而是以附件形式打开(下载)----filename="+filename 客户端默认对名字进行解码 ???????response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder); ???????//获取文件的绝对路径 ???????String path = this.getServletContext().getRealPath("download/"+filename); ???????//获得该文件的输入流 ???????InputStream in = new FileInputStream(path); ???????//获得输出流---通过response获得的输出流 用于向客户端写内容 ???????ServletOutputStream out = response.getOutputStream(); ???????//文件拷贝的模板代码 ???????int len = 0; ???????byte[] buffer = new byte[1024]; ???????while((len=in.read(buffer))>0){ ???????????out.write(buffer, 0, len); ???????} ???????in.close(); ???????//out.close();

7 response细节 

JSP-response(HttpServletResponse)

原文地址:https://www.cnblogs.com/liu-wang/p/8594153.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved