zoukankan      html  css  js  c++  java
  • 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("湘爷你好");
  • 相关阅读:
    复杂json后端解析出现第二层无数据的问题
    idea启动springboot项目报Error running 'ServiceStarter': Command line is too long. Shorten command line for ServiceStarter or also for Application
    docker强制关闭命令
    scala下实现actor多线程基础
    orcale数据库分配用户
    多线程实现互相通信
    从一份配置清单详解 Nginx 服务器配置
    PostgreSQL CentOS 7 安装配置
    .net core session部分浏览器或移动客户端不可用
    VS2019 远程调试
  • 原文地址:https://www.cnblogs.com/dyfbk/p/7847031.html
Copyright © 2011-2022 走看看