使用Servlet接受服务器端请求信息
请求行、请求头、空行、消息行
HttpServletRequest对象主要用于获取 由客户端发送过来的请求头、参数、文件、数据
GET/POST提交方法
默认为GET
如果要指定用POST提交方法:method=‘POST’
区别
GET
提交数据类型
文本
提交数据长度
不超过255个字符
提交数据可见性
作为URL地址的一部分显示在浏览器地址栏
提交数据缓存
缓存在浏览器URL历史状态中
POST
提交数据类型
文本、二进制文本
提交数据长度
没有限制
提交数据可见性
作为请求的消息体,不可见
提交数据缓存
不会被浏览器缓存
何时使用
请求一个静态页面或图形文件时使用GET方法,因为仅仅需要发送文件名
发送大数据的时候,使用POST方法
上传文件时,使用POST方法
发送保密信息的时候使用POST方法
超链接使用的GET
GET意义在于:下载网页相关的信息(资源的查找)
POST意义在于:数据的传输
获得HTTP协议请求行
getMethod():获取HTTP的请求方法
getRequestURI():获取请求的URI资源
getRequestURL():获取请求的URL,包含协议名、服务器名或IP、 端口号和请求资源但不包括查询字符串参数
getQueryString():获取请求URL后面的查询字符串
请求参数值对GET有效,如果是POST返回NULL
getProtocol():获取HTTP的协议名和版本号
getContextPath():获取请求URI资源的上下文路径
getServletPath():获取Servlet的映射路径
获得HTTP协议请求头
getHeader()
获得请求消息体
getParameter():获取单个表单数据,如果有多个数据,只能获得第一个
getParameterValues():获取多个表单数据,返回的是一个String类型的数组
请求转发和请求范围
请求转发
RequestDispatcher dispatcher = request.getRequestDispatcher("转发")
得到内部转发对象,在服务器内部进行资源调用, 可以把request中封装的属性取出来
dispatcher.forward(request,response)
转到另一个servlet,只发送一次请求,本身的servlet内容不执行
dispatcher.include(request,response)
包含另一个servlet的内容
请求转发与重定向的区别
重定向让客户端浏览器来完成(发出两次请求,第二次请求时, request中德书局消失,不能把request中封装的属性取出来), 请求转发是在服务器端做工作(发送一次请求,可以把request中封装的属性取出来)