一.HttpServletRequest的概述
客户端发送给服务器端的数据我们创建Servlet时会覆盖service()方法.service方法中的两个参数之一的request的类型是HttpServletRequest. HttpServletRequest是ServletRequest的子接口
二.运行流程.如图所示
三.Http响应体
Http响应体由相应行,响应头和相依体三部分组成
3.1响应行
响应行由http协议的版本和响应状态码两部分组成 ,状态码由以下:
①1xx---服务器接受客户端的消息但是没有接收完成,接收了但是没有完全接受.
②2xx:成功了 ③:3xx: 重定向. 302(重定向) 304(访问缓存)
④4xx:客户端错误 经典:404(没有对应的资源) 405(请求方式没有对应的doXXX方法)
⑤服务器端错误 经典: 500(服务器内部错误)
3.2 响应头
3.2.1 常用的有以下这些:
①Content-Type---服务器告诉客户端这次响应体数据的格式以及编码格式
②Content-disposition ---服务器告诉客户端用什么格式打开响应体数据
③in-line ---默认值,在当前页面内打开
④attachment;filename=xxx ---以附件形式打开相应体,常用于文件的下载
3.2.2 一些添加和设置的方法
add: addHeader(String n,String v) addIntHeader(String n,int v) addDateHeader(String n,long d)
set: setHeader(String n,String v) setIntHeader(String n,int v) setDateHeader(String n,long d)
3.3响应体
getWriter() 获得字符流,可以将字符串设置到response缓冲区中,之后Tomcat会把缓冲区中的内容组装成Http相应返回给浏览器端
setContentType()方法,首先我们现到web.xml文件中找到相应类型对应的mimetype类型,设置到这里面能够指定浏览器解析页面的编码方式
ServletOutputStream getOutpouStream() 可以获得字节流,注意,如果是定义的类想要字节流输入必须要序列化实现Serializable接口
四.资源跳转
资源跳转的方式有重定向和转发两种
1.重定向:地址栏发生变化,可以访问其他站点(服务器)的资源,是两次请求,不可以用request对象来共享数据
2.转发:地址栏不发生变化,只能访问当下服务器的资源,是一次请求所以可以使用request对象来共享数据
路径:以"/'开头的路径是绝对路径,不是以"/"开头的路径是相对路径
相对路径不可以确定唯一资源,可能会出现找资源跳转后不到的情况,
绝对路径可以确定唯一的资源,不会出现资源跳转后找不到的情况