1. 响应信息包括:状态行如:HTTP/1.1 200 OK ; 状态码200表示一切正常,404表示所请求资源不存在,500表示服务器内部错误
响应头:名字,值;响应实体;
服务器端的响应被封装在这个对象中,响应信息由response对象传送给web服务器,再由web服务器发送给客户端。
构建响应头信息:response.setHeader("content-type","text/html;charset=gbk");response.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");html可以换成xml,plain(普通文本)。response.addHeader("refresh","3;url=1.jsp")。
构建响应实体:response.getWriter()//输出文本使用 response.getOutputStream()//输出非文本使用(比如图片,视频、.exe,下载等)。上传使用reques.getInputStream()。
2.
请求重定向 | 请求转发 |
既可以定向到服务器内部的,也可以外部的 | 只能转发到服务器内部的 |
2次请求,地址栏改变 | 1次请求,地址栏未变 |
重定向和请求转发语句后面的在服务器端执行的语句均可以执行,为了避免,常在后面加上return语句。如果跳转的资源位于服务器外部,只能用请求重定向,如果跳转的资源位于本web应用,则两种方式都可以,推荐用请求转发(转发由于是服务器内部程序的调用比重定向效率要高)
请求转发,由于多个servlet之间属于同一个请求,共享同一个request对象,所以可以通过request作用域来共享传递一些信息。
请求重定向:不加/是相对于本servlet所在请求的目录,加“/”表示端口号后面的根目录http://localhost:8080/
请求转发:不加/是相对于本servlet,加/表示web应用的根目录http://localhost:8080/one/
3.path"/"
只要是需要通过浏览器发送请求的地方(比如html代码,sendRedirect方法等)“/"一般代表虚拟主机根目录,即相当于端口号之后的“/”
服务器程序内部跳转,“/”一般代表本web应用的根目录,如请求转发。
疑惑:如何重定向到服务器外部的页面:如www.baidu.com
欢迎关注微信公众号:fangunba321