response

常用方法:

·常用响应头

refresh			(自动刷新或跳转)
//设置响应头
response.addHeader("uname","admin")

//设置页面报错
//response.sendError(500);
response.sendError(404,"由于颜值过低,无法访问!")

//自动刷新		3秒钟刷新一次
response.setHeader("refresh","3");

//跳转		3秒后 跳转到百度
response.setHeader("refresh","3;http://www.baidu.com");

·响应数据
getWriter()—>获取字符流(只能响应回字符)
getOutputStream()—>获取字节流(能响应一切数据)
响应回的数据到客户端被浏览器解析。
注意:两者不能同时使用。java.lang.IllegalStateException:getWriter() has already been called for this response

setContentType() 设置数据的响应类型

·响应乱码问题
乱码问题:
服务器响应的数据也会经过网络传输,服务器端有一种编码方式,在客户端也存在一种编码方式,当两端使用的编码方式不同时则出现乱码

乱码情况:
getWriter()的字符乱码
对于getWriter()获取到的字符流,响应中文必定出现乱码,由于服务器端在进行编码时默认会使用ISO-8859-1格式的编码,该编码方式不支持中文
getOutputStream()字符乱码
对于getOutputStream()获取到的字节流,响应中文时,由于本身就是传输的字节,所以此时可能出现乱码,也可能正确显示

解决方案:
同时设置服务端和客户端的编码及响应类型:
response.setContentType(“text/html;charset=utf-8”);

总结:
要想解决响应的乱码,只需要保证使用支持中文的编码格式。并且保证服务器端和客户端使用相同的编码格式即可。

·响应图片

//获取项目在服务器中的真是路径
String realPath = request.getServletContext().getRealPath("/");
//得到图片的存放路径
String filePath = realPath + "/WEB-INF/images/jay.jsp";
//通过路径得到file对象
File fiel = new File(filePath);
//通过路径得到file对象
File file = new File(filePath);
//判断文件是否存在,且是一个标准文件
if(file.exists()&&file.isFile()){
	//设置响应类型
	response.setContentType("image/jepg");
	//得到文件的输入流
	InputStream in = new FileInputStream(file);
	//得到字符输出流
	ServletOutputStream out = response.getOutputStream();

	byte[] bytes = new byte[1024];
	int len = 0;
	while((len=in.read(bytes))!=-1){
		out.write(bytes,0,len);
	}
} else {
	//设置响应类型及编码
	response.setContentType("text.html;charset=UTF-8");\
	response.getWriter().write("<h2>文件不存在!</h2>");
	response.getWriter().close();
}

·重定向
重定向是一种服务器指导,客户端的行为。客户端发出第一个请求,被服务器接收,经过处理服务器进行响应。
与此同时,服务器给客户端一个地址(下次请求的地址response.sendRedirect(“url”)?,当客户端接收到响应后,立刻、马上、自动根据服务器给的地址,进行请求的发送第二个请求,服务器接收请求并作出响应,重定向完成。
request和response不共享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
response.setContentType("image/jpeg");是设置响应的内容类型为JPEG图像。\[1\]这个方法告诉浏览器返回的数据是一个JPEG图像,浏览器会根据这个信息来处理响应的数据。 在引用\[2\]中提到了另一种设置内容类型的方法response.setContentType("image/jpg"),这也是设置响应的内容类型为JPEG图像的方式。 而在引用\[3\]中的代码片段中,response.setHeader("Content-disposition","attachment;filename=2.jpg")是设置响应头中的Content-disposition字段,告诉浏览器以附件的形式下载文件,并指定下载的文件名为2.jpg。 综上所述,response.setContentType("image/jpeg")是设置响应的内容类型为JPEG图像的方法。 #### 引用[.reference_title] - *1* *3* [response.setHeader()的用法](https://blog.csdn.net/qq_41424661/article/details/79908570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [java response文件流下载,后缀名称设置](https://blog.csdn.net/qq_18671415/article/details/120915957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值