第一种

   public R Http(HttpServletRequest request) {

              //获取所有的请求参数
         Enumeration paraNames=request.getParameterNames();
         for(Enumeration e=paraNames;e.hasMoreElements();){
               String thisName=e.nextElement().toString();
               String thisValue=request.getParameter(thisName);
               System.out.println("param的key:"+thisName+"--------------param的value:"+thisValue);
 }
             
         //获取所有的头部参数
         Enumeration headerNames=request.getHeaderNames();
         for(Enumeration e=headerNames;e.hasMoreElements();){
           String thisName=e.nextElement().toString();
           String thisValue=request.getHeader(thisName);
             System.out.println("header的key:"+thisName+"--------------header的value:"+thisValue);
 }
                //获取所有的头部参数
                 Enumeration headerNames = request.getHeaderNames();
                 while (headerNames.hasMoreElements()) {
                 String name = headerNames.nextElement();
                 //根据名称获取请求头的值
                 String value = request.getHeader(name);
                 String substring = value.substring(0);
                 System.out.println(substring);
         //获取请求方式
         System.out.println(req.getMethod());
         //获取项目名称
         System.out.println(req.getContextPath());
         //获取完整请求路径
         System.out.println(req.getRequestURL());
         //获取除了域名外的请求数据
         System.out.println(req.getRequestURI());
         //获取请求参数
         System.out.println(req.getQueryString());
         System.out.println("----------------------------------------------------------");
         //获取请求头
         String header = req.getHeader("user-Agent");
         System.out.println(header);
         header = header.toLowerCase();
         //根据请求头数据判断浏览器类型
         if(header.contains("chrome")){
             System.out.println("您的访问浏览器为谷歌浏览器");
         }else if(header.contains("msie")){
             System.out.println("您的访问浏览器为IE浏览器");
         }else if(header.contains("firefox")){
             System.out.println("您的访问浏览器为火狐浏览器");
         }else{
             System.out.println("您的访问浏览器为其它浏览器");
         }
         System.out.println("----------------------------------------------------------");
         //获取所有的消息头名称
         Enumeration headerNames = req.getHeaderNames();
         //获取获取的消息头名称,获取对应的值,并输出
         while(headerNames.hasMoreElements()){
             String nextElement = headerNames.nextElement();
             System.out.println(nextElement+":"+req.getHeader(nextElement));
         }
         System.out.println("----------------------------------------------------------");
         //根据名称获取此重名的所有数据
         Enumeration headers = req.getHeaders("accept");
         while (headers.hasMoreElements()) {
             String string = (String) headers.nextElement();
             System.out.println(string);
         }

  第二种:

  :for循环数组是否是最后一个比如res.data

   public void doGet(HttpServletRequest request, HttpServletResponse response)

             throws ServletException, IOException {
         /**
          * 获取头信息
          */
         String headValue = request.getHeader("Accept-Encoding");//获取单个请求头name对应的value值
         System.out.println(headValue);
         System.out.println("--------------");
         Enumeration e =  request.getHeaders("Accept-Encoding");//获取多个同名请求头对应的一组value值,因此返回枚举类型数据
         /**
          * 将数据遍历出来
          */
         while(e.hasMoreElements()){
             //遍历枚举中存储的每一个元素
             String value = (String)e.nextElement();
             System.out.println(value);//将值输出
         }
         System.out.println("----------------");
         /**
          * 获取所有请求头信息
          */
         Enumeration er = request.getHeaderNames();//获取请求头的所有name值
         while(er.hasMoreElements()){
             String name    =(String) er.nextElement();
             String value = request.getHeader(name);
             System.out.println(name+"="+value);
         }

  for循环数组是否是最后一个

   #定义一个变量

 var categoryId = ""
  #循环
 for (var i = 0; i < res.[data][4].length; i++){
  #不是最后一个
        if (res.data.length - i != 1){
               categoryId = categoryId + res.data[i].dept + ","
     #是最后一个
     }else{
               categoryId = categoryId + res.data[i].dept
         }

  比如res.data.length的长度是5,i从0开始加,当i=4时,这时就循环5次了,判断res.data.length的长度减去i等于1 的就是最后一个了

  判断集合是否是最后一个

    //listUser 是User的实体的集合

 for(User user : listUser){        
     if(listUser.size - 1 == listUser.indexOf(user)){
     //TODO
     //如果上面的等式成立就说明遍历到的user就是list的最后一个元素
       }
  }

  :for循环数组是否是最后一个比如res.data

  Java后端返回Long类型数据与前端展示不一致(精度丢失)

  原因

  :for循环数组是否是最后一个比如res.data

  Java中Long类型可以表示的最大值是2 ^63-1js获取请求头信息js获取请求头信息,而JS的基础类型Number可以表示的最大值是 2 ^53。所以后端返回的数据大于Number能表示的最大值时无法正确解析,出现精度丢失的问题。

  解决方案

  1、将返回给前端的Long类型数据改为String;

  2、在Long类型字段加上注解 @JsonFormat(shape = Shape.STRING)。

TAGS:js获取请求头信息 webapi 获取请求头 js 获取请求头 data
!如链接失效请在下方留言。本站所有资源均来源于网络,版权属于原作者!仅供学习参考,本站不对您的使用负任何责任。如果有侵权之处请第一时间联系我们删除,敬请谅解!