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不共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值