作用:
接收客户端的请求数据
组成部分:
请求行
请求头
请求体
1 操作请求行
格式:
请求方式 请求的路径 协议/版本 GET /day15/ HTTP/1.1
常用方法:
重要的方法
(掌握)String getMethod():获取请求方式
(掌握)String getContextPath():获取当前项目的项目名 /day15
(掌握)String getRemoteAddr():获取请求者的ip地址
(了解)String getProtocol():获取请求协议和版本
2 操作请求头
格式:
key:value(value可以为多个值)
常用的方法:
(掌握)String getHeader(String key):获取单一的请求头的值
(了解)Enumeration getHeaders(String name) :获取指定头的所有值
常见的请求头:
(掌握)user-agent:获取浏览器的内核信息
(掌握)referer:获取网页来源(若地址是直接在地址栏上敲的 返回的null)
3 操作请求体(操作请求参数)
存放的是post请求的请求参数
请求体中例如:username=tom&password=123&hobby=eat&hobby=sleep
get方式没有请求体
地址栏中例如:http://localhost:8080/day15/form1.html?username=zhansan&password=123&hobby=eat&hobby=sleep
常用的方法(掌握):
(掌握)String getParameter(String name)---获取的是单一
(掌握)String[] getParameterValues(String name)--获取的是多个数据,返回的是数组
(掌握)Map<String,String[]> getParameterMap();
注意:请求参数的中文乱码 (掌握)
解决的方式:
方式1:通用的方法 针对于get和post请求
new String(数据.getBytes("iso8859-1"),"utf-8"); ---以后超链接后面加中文参数
方式2:只针对于post请求
request.setCharacterEncoding("utf-8"); ----表单(post)用它
通过 URLEncoder的encode(string s,String charset); 通过指定的编码方式编码
通过 URLDecoder的decode(string s,String charset); 通过指定的编码方式解码
步骤分析:
1.修改register.htm
给表单添加action属性 method属性
给每一个子标签添加name属性
2.表单提交到 RegistServlet
将数据封装成user对象
调用service方法
5.servlet调用service,service调用dao完成注册操作