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("湘爷你好");
原文地址:https://www.cnblogs.com/dyfbk/p/7847031.html