Servlet---request对象
一.request对象
解释:
服务器接收到浏览器的请求后,会创建一个Request对象,对象中存储了此次请求相关的请求数据.
服务器在调用Servlet时会创建的Request对象座位实参传递给Servlet的方法,比如service方法(或者doGet,doPost方法)
1:获取请求行数据:
//获取请求方式 String method = req.getMethod(); System.out.println(method); //获取请求url StringBuffer url = req.getRequestURL(); System.out.println(url); //获取请求URI String uri = req.getRequestURI(); System.out.println(uri); //获取请求协议 String protocol = req.getScheme(); System.out.println(protocol);
2.获取请求头数据
//获取请求头数据 //获取指定的请求头数据 String value = req.getHeader("User-Agent"); System.out.println(value); //通过枚举类获取所有的请求头数据. //e中包含了请求头中的所有键 Enumeration e = req.getHeaderNames(); while (e.hasMoreElements()){ String key = (String)e.nextElement(); value = req.getHeader(key); System.out.print(key+":"+value); }
3.获取用户数据 (一般默认是英文,传输数据为中文时会乱码)
①根据方法:getParameter("前端网页,键的名称");根据键来获取键值
//获取用.户数据(不管是post还是get数据都是被封存到req中的) //都可以使用getParameter String name = req.getParameter("uname"); String pwd = req.getParameter("pwd"); System.out.println("uname:"+name+"\t"+"pwd:"+pwd);
②获取所有用户数据
//通过枚举类获取所有用户数据 Enumeration e = req.getParameterNames(); while(e.hasMoreElements()){ String key = (String) e.nextElement(); value = req.getParameter(key); System.out.println(key+":"+value); }
③直接获取用户get请求方式提交的数据
方法:req.getQueryString();(直接获取get请求发送的查询信息)
String query = req.getQueryString();
注意:
上述的getParameter("key");不能获取网页中的多选选择结果
可以使用 getParameterValues(); 返回一个字符串数组
需要判断返回的数组是否为null再进行遍历,否则当fav为空时会报空指针异常.
④获取表单中用户多选的数据
//获取单键多值 下例中fav为用户提交的爱好选项. String[] favs = req.getParameterValues("fav"); if(favs!=null){ for(String fav:favs){ System.out.println(fav); } }
注意:如果要获取的请求数据不存在,不会报错,返回值为null.

浙公网安备 33010602011771号