HttpServletRequest request方法详解
//1、获取请求参数 //获取参数的单个值,如有多个则只返回第一个 String parameter1 = request.getParameter("demo"); //获取参数数组, String[] parameter2 = request.getParameterValues("demo"); //获取所有参数名值对的java.util.Map<String,String[]> Map<String, String[]> parameterMap = request.getParameterMap(); //获取所有可用参数的名字的枚举 Enumeration<String> parameterNames = request.getParameterNames(); // java.lang.NullPointerException // 第一次调用请求对象的getParameter、getParameterValues、getParameterMap、getParameterNames方法时 // Web容器将判断该请求是否包含post变量,如果包含它将读取请求的InputStream并解析这些变量,InputStream只能被读取一次 // 如果在调用了一个含有post请求的getInputStream或getReader之后,再次尝试获取请求参数时则会触发一个java.lang.NullPointerException // 反之如果在获取了一个含有post变量的请求参数之后再调用getInputStream或getReader也会触发java.lang.NullPointerException // 任何时候在使用含有post变量的请求时,最好使用参数方法,不要使用getInputStream或getReader //2、确定与请求内容相关的信息 //获取请求的MIME(多用途互联网邮件扩展)内容类型 String contentType = request.getContentType(); //获取请求正文的长度 int contentLength = request.getContentLength(); long contentLengthLong = request.getContentLengthLong();//内容长度的超过2GB的请求 //获取请求内容的字符编码 String characterEncoding = request.getCharacterEncoding(); //3、读取请求内容,不要在同一个请求上同时使用下面两种方法,会触发java.lang.NullPointerException //适用于请求参数时二进制格式的 ServletInputStream inputStream = request.getInputStream(); //适用于请求参数是字符编码的 //BufferedReader reader = request.getReader(); //4、获取请求特有信息 //返回客户端完整的URL http://localhost:8080/dyf-pms/helloServlet.action StringBuffer requestURL = request.getRequestURL(); //返回服务器路径部分 /dyf-pms/helloServlet.action String requestURI = request.getRequestURI(); //返回用于匹配Servlet映射的URL部分 /helloServlet.action String servletPath = request.getServletPath(); //返回指定名字的请求头数据 String header = request.getHeader("host"); //返回请求中所有头数据的名字的枚举,遍历所有可用头数据的好方式 Enumeration<String> headerNames = request.getHeaderNames(); //如果指定的一个 头数据不能转化为整数,则抛出异常NumbereFormatException int intHeader = request.getIntHeader(""); //返回一个Unix时间戳(毫秒),如果头数据不能转化为日期,则抛出异常IllegalArgumentException long dateHeader = request.getDateHeader(""); //设置中文字符编码 response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("utf-8"); response.getWriter().write("湘爷你好");