Servlet容器(Tomcat)解析请求数据,封装为request对象,并创建request对象传递到service方法中
Request
请求数据分三部分:请求行、请求头、请求体
不同请求方式对应不同的获取请求参数的方法
GET请求方式的请求参数在请求行中:
request的方法: String getQueryString()
POST请求方式的请求参数在请求体中:
request的方法:
ServletInputStream getInputStream(); // 获取字节输入流
BufferReader getReader(); //获取字符输入流
通用的获取请求参数的方法
通用的获取请求参数方式的内部,判断了一下request的请求方式类型,用不同的获取请求参数的方法生成字符串,再对字符串进行解析。
Map<String,String[]> getParameterMap(); //获取所有参数Map集合
String[] getParameterValues(String name); //根据名称获取参数值(数组)
String getParameter(String name); //根据名称获取参数值(单个)
Request解析请求参数的字符串,并将请求参数中的键和值放入Map集合中存储
特别的,当由多个键相同,对应的不同值会合并成为String数组类型作为新的值存储
有了通用的请求参数的访问方式, 也就统一了HttpServlet自定义子类的doGet(req,resp)和doPost(req,resp)方法,原先HttpServlet中根据请求方式不同(GET\POST),调用不同方法doGet(req,resp)和doPost(req,resp),可以采用以下形式
doGet(req,resp){...}
doPost(req,resp){doGet(req,resp);}
请求方式中文乱码解决方案(Tomcat7)
分为
POST
GET
乱码原因是编码解码标准不一致导致的,
解决方案有空写吧
请求转发
服务器内部转发
有空写吧
Responce
响应数据分为三部分:响应行、响应头、响应体
设置响应数据的方法
重定向
response的sendRedirect(location)方法,负责设置响应码302和设置响应头location,完成重定向