HttpServletRequest
作用: 1. 获取请求消息数据 2. 完成请求转发 3. 是域对象
获取请求行 GET /uri HTTP/1.1
String getMethod() 获取请求方式
String getQueryString() 获取请求参数
String getContextPath() 获取虚拟目录
String getRemoteAddr() 获取ip地址
获取请求头
String getHeader(String name) (user-agent) String header = request.getHeader("user-agent") ; if(header.contains("MSIE")) { System.out.println("IE浏览器..............."); response.sendRedirect("http://www.baidu.com") ; }else if(header.contains("Chrome")) { System.out.println("谷歌浏览器..............."); response.sendRedirect("http://www.jd.com") ; }else if(header.contains("Firefox")) { System.out.println("火狐浏览器..............."); }else { System.out.println("其它浏览器..............."); }
HttpServletRequest获取请求体
A: 获取请求体数据
* BufferedReader getReader()
* ServletInputStream getInputStream()
Doget: String qs = request.getQueryString(); String line = request.getQueryString() ; // userName=zhangsan&password=123 String[] split = line.split("&") ; for(String data : split) { String[] info = data.split("=") ; System.out.println(request.getMethod() + "----" + info[0] + "---" + info[1]); /* * GET----username---zhangsan GET----password---123 */ } Dopost: BufferedReader reader = request.getReader() ; String line = reader.readLine() ; // userName=zhangsan&password=123 String[] split = line.split("&") ; for(String data : split) { String[] info = data.split("=") ; System.out.println(request.getMethod() + "----" + info[0] + "---" + info[1]); // POST----userName---qq // POST----password---9 }
HttpServletRequest获取请求参数通用的方式
* GET 和 POST 请求通用的获取数据的方式
String getParameter(String name): 根据名称获取对应的请求参数的值 Enumeration getParameterNames(): 获取所有的请求参数的名称 Map<String , String[]> getParameterMap(): 获取所有的请求参数对应的Map集合, 键是请求参数的名称 ,值是请求参数的值 String[] getParameterValues(String name): 根据名称获取对应的请求参数的值对应的数组 String userName = request.getParameter("userName"); System.out.println(request.getMethod()+"----"+userName); System.out.println("------------------"); Enumeration names = request.getParameterNames(); while(names.hasMoreElements()){ String name = (String) names.nextElement(); String value = request.getParameter(name); System.out.println(name+"---"+value); } Map<String,String[]> map = request.getParameterMap(); Set<Entry<String, String[]>> entrySet = map.entrySet(); for (Entry<String, String[]> entry : entrySet) { String key = entry.getKey(); String[] value = entry.getValue(); System.out.println(key + "----" + Arrays.toString(value)); } User user = new User() ; try { BeanUtils.populate(user, map) ; // User [userName=zhangsan, password=888, hobby=[1, 2, 3]] } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } System.out.println(user); }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!