Request和Response
Request和Response的介绍
request:获取请求数据
response:设置响应数据
servlet中有一个service方法中包含这两个参数
service(request,response)
//使用request,获取请求数据
String name = request.getParameter("name");//url?name=zhangsan
//使用response,设置响应数据
response.setHeader("content-type","text/html;charset=utf-8");//设置响应头的格式
response.getWriter().write("<h1>"+name+",欢迎您!</h1>");//设置响应体
Request
request的继承体系
ServletRequest:—>Java提供的请求对象根接口
HttpServletRequest:—>Java提供的对Http协议封装的请求对象接口
RequestFacade:—>Tomcat定义类
Tomcat需要解析请求数据,封装为request对象,并且创建request对象到service方法中
使用request对象,查阅javaEE API文档的HttpServletRequest接口
Request获取请求数据
一、Request获取请求数据
User-Agent:获取浏览器的版本信息
二、Request通过通用方式获取请求参数
post方式获取请求参数:BufferedReader getReader()
get方式获取请求参数: String getQueryString()
作用:get请求方式和post请求方式区别主要在于获取请求参数的方式不一样,因此可以提供一种统一获取请求参数的方式,从而统一doGet和doPost方法内的代码
三个通用方式:
//1.获取所有参数的Map集合
Map<String, String[]> map = req.getParameterMap();
for (String key : map.keySet()){
//username=zhangsan
System.out.print(key+" ");
//获取值
String[] values = map.get(key);
for (String value : values) {
System.out.println(value+" ");
}
System.out.println( );
}
//2.根据key获取参数值,数组
String[] hobbies = req.getParameterValues("hobby");
for (String hobby : hobbies) {
System.out.println(hobby);
}
//3. 根据key获取单个参数值(最常用)
String username = req.getParameter("username");
System.out.println(username);
在doPost方法中直接调用doGet方法,由此实现了通用方法
this.doGet(req, res);