response响应
response响应
通过response设置响应行
setStatus(int sc) 方法
重定向:
重定向特点:
1.请求服务器两次
2.url地址会变化
response.sendRedirect("/WEB04/Servlet002");方法 //要重定向的地址
通过response设置响应头
serHeader("refresh","时间秒数;url=要跳转的网址")设置定时刷新
response.setHeader("refresh","5;url=https://www.baidu.com");
通过response设置响应体
把文件打印到页面中:
//获取字节输出流
ServletOutputStream out=response.getOutputStream();
//明确数据源
String path=getServletContext().getRealPath("a.jpg");
//创建文件字节输入流
FileInputStream fis=new FileInputStream(path);
//开始复制
int len=0;
byte[] bytes=new byte[1024];
while((len=fis.read(bytes))!=-1){
out.write(bytes,0,len);
}
//关闭资源
fis.close();
解决中文乱码问题:
request.setCharacterEncoding("UTF-8");//设置request的编码
response.setContentType("text/html;charset=UTF-8");//指定浏览器解析页面的编码
解决文件名中文乱码问题:
//通过name获取文件名
String filename=request.getParameter("filename");
//get请求解决中文乱码
filename=new String (filename.getBytes("ISO-8859-1"),"UTF-8");
//获取请求头中的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");
}
其中agent就是请求头User-Agent的值