servlet处理http响应
设置相应内容的类型,MIME类型
什么是MIME类型:
告诉浏览器,服务器发送回去的数据类型是什么,客户端启动相应的应用程序处理相应内容
response.setContentType("text/html")
通过相应头设置MIME类型
response.setHeader("Content-Type","text/html;charset=utf-8")
charset=utf-8表示浏览器在解析内容,采用utf-8,类似于<meta charset=utf-8>
自动刷新功能
response.setHeader("refresh","2;index.jsp"); 两秒以后跳转到index
控制数据无法缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache")
设置过期时间
response.setHeader("Expires",System.currentTimeMillis()*24*3600*1000)
设置消息体
Tomcat默认响应客户端解析的时候编码集是ISO8859-1
PrintWriter out = response.getWriter( );
1、out.print()
2、out.write()
print和write的区别
共同点:两者都不会刷新页面,只在原来的页面上写数据。两个方法都是重写了Writer类的write方法。
不同点:print可以将各种不同的数据转换为字符串输出。write只能操作字符,字符数组,字符串。
输出中文到浏览器
设置内容在传输的过程中编码格式为utf-8
设置相应编码集
response.setContentType("text/html;charset=utf-8")
//response.setHeader("Content-Type","text/html;charset=utf-8")
response.setCharacterEncoding("utf-8");
OutputStream out = response.getOutputStream(); //获取输出流对象
将字符串转换为字节数组,再传输(以二进制的方式传输)
设置响应头控制浏览器打开下载框,操作图片中文名字显示也要
通过字符流操作二进制的文件,有可能出现内容的丢失。
请求重定向
1、response.sendRedirect("index.jsp");
2、 response.setStatus(302);
response.setHeader("location","index.jsp");
总结
1、重定向的状态码是302,表示资源被移走,重新请求新的资源
2、重定向是客户端发起的两次请求
3、调用sendRedirect方法,可以不用设置状态码
注意:
请求如果是从页面发送过来,就必须添加工程名
不管是js提交,还是超链接,重定向,都要加上项目名
在请求派发里边,斜杠就表示当前工程,请求派发默认调用dopost方法