1.http响应状态行常见状态码
200:代表整个请求和相应过程中没有发生错误.
302:当向服务器请求一个资源时,服务器返回302表是让浏览器转向另外一个资源
304:当客户端发出get请求时,服务器判断页面没有更新则返回304状态码.
404:找不到所访问的资源
500:服务器端出现错误
2.sendRedirect方法底层调用的实际上是setStatus(状态码)和setHeader("Location","路径")方法.
3.http响应消息头以及意义
Location:url(让浏览器重新定位到url)
Server:apache tomcat(告诉浏览器服务器使用的是tomcat)
Content-Encoding:gzip(告诉浏览器使用了gzip压缩)
Content-Length:80(告诉浏览器发送80个字节)
Content-Language:zh-cn(支持中文)
Content-Type:text/html;charset=GB2312(内容格式和编码)
Last-Modified: (资源上次更新时间)
Refresh:2;url(过2秒刷新到url)
Content-Disposition:attachment;filename=aaa.zip(告诉浏览器有文件要下载)(servlet会将要下载的文件先读取到内存然后再发送给浏览器.)
Transfer-Encoding:chunked(传输的编码,校验和)
Set-Cookie:(cookie信息,以后分析)
Expires:-1(告诉IE怎么缓存页面)
Catch-Control:no-cache(告诉火狐等浏览器怎么缓存界面)
Pragma:no-cache(告诉其他浏览器怎么缓存页面)
Connection:close/Keep-Alive
Data:
4.<a href="/web/servlet?filename=xx.mp3">点击下载</a>这里传到servlet的参数filename=xx.mp3可以通过request.getParameter("filename");获取.
5.可以通过设置no-cache限制浏览器的缓存
6.也可以限制缓存有效时间response.setDateHeader("Expires", System.currentTimeMillis()+3600*1000);
7.response的getWriter方法向客户机回送字符数据,getOutputStream返回的对象,可以回送字符也可以是二进制数据.
8.如果回送字符应该选择PrintWriter对象,效率高.如果回送字节数据则只能使用OutputStream,需要注意的是这两个对象不能同时使用.
服务器先会把response信息给浏览器,然后服务器会检查response对象流对象,并将其关闭,所以如果同时使用两种流会报错.所以在servlet里面关闭或者不关闭流都可以.