精华内容
下载资源
问答
  • 本文主要介绍了通过JavaScript,判断客户端类型,实现响应式页面的方法。

    JavaScript 判断客户端类型 实现响应式页面


    在跨平台,各种浏览器,移动设备兼容的时候,经常要根据设备、浏览器做特定调整,所以判断设备和浏览器的工作,我们经常会用到navigator.userAgent.toLowerCase()来进行判断。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
            <script type="text/javascript">
                function browserRedirect() {
                    var sUserAgent = navigator.userAgent.toLowerCase();
                    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
                    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
                    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
                    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
                    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
                    var bIsAndroid = sUserAgent.match(/android/i) == "android";
                    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
                    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
                    if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
                        //跳转移动端页面
                        window.location.href="https://dengxj.blog.csdn.net/";
                    } else {
                        //跳转pc端页面
                        window.location.href="https://dengxj.blog.csdn.net/";
    					//一般放在PC页面前端 因此“跳转pc端页面”代码应当删除,不然就陷入了死循环。
                    }
                }
                browserRedirect(); 
            </script>
        </head>
        <body>
     
        </body>
    </html>
    

    其次就是将代码运用到具体网页中去:

    <!DOCTYPE html>
    <html lang="en" class="no-js">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
        <script type="text/javascript">
            function browserRedirect() {
                var sUserAgent = navigator.userAgent.toLowerCase();
                var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
                var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
                var bIsMidp = sUserAgent.match(/midp/i) == "midp";
                var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
                var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
                var bIsAndroid = sUserAgent.match(/android/i) == "android";
                var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
                var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
                if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
                    //跳转移动端页面
                    window.location.href="login-phone.html";
                } else {
                    //跳转pc端页面
    
                }
            }
            browserRedirect();
        </script>
    
        <title>login</title>
    </head>
    <body>
    网页内容***网页内容***网页内容***网页内容***网页内容***网页内容***网页内容***网页内容***网页内容***网页内容***
    </body>
    </html>
    
    展开全文
  • 一、前端、服务器端和数据库端结构关系?二、向服务器发送一个请求,通过HTTP请求来判断浏览器...) 具体是通过响应的User-Agent:来判断浏览器类型: 1、若Http响应为此种情形: 可以判断出为IE浏览器,后面的 ...

    一、前端、服务器端和数据库端结构关系?


    二、向服务器发送一个请求,通过HTTP请求来判断浏览器类型:

            (这里需要安装一个插件httpwatch,这个插件的主要作用是观察客户端向服务器发送的Http请求,

        而服务器返回给客户端的信息。)

      具体是通过响应的User-Agent:来判断浏览器类型:

        1、若Http响应为此种情形:

          

      可以判断出为IE浏览器,后面的  MSIE 9.0表示为微软IE浏览器9.0版本。

        2、若Http响应为此种情形:

        

        可以判断出为火狐浏览器,后面的Firefox表明浏览器为火狐浏览器;

    三、HTTP响应常见状态码                

        常用的状态码如下:

            200 :请求成功。

            302 :请求重定向。

            304 :请求资源没有改变,访问本地缓存。

            404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。

            500 :服务器内部错误。通常程序抛异常。

        状态信息:状态信息是根据状态码变化而变化的


    展开全文
  • 源码: import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.URL;...import java.net.URLConnection;...import java.util.Ar

    源码:

    import org.springframework.web.multipart.MultipartFile;
    
    import javax.imageio.ImageIO;
    import javax.imageio.ImageReader;
    import javax.imageio.stream.ImageInputStream;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    
    public class ImageUtil {
    
    
        public static void checkImageIsNormal(final MultipartFile imageFile)
                throws Exception {
            if (imageFile == null) {
                throw new IllegalArgumentException("imageFile == null");
            }
            final long imageSize = imageFile.getSize();
            System.out.println("length:" + imageSize);
            if (imageSize > Config.IMG_MAX_SIZE) {
                throw new IllegalArgumentException("图片大小不能超过2M");
            }
            final String fileName = imageFile.getOriginalFilename();
            final String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
            System.out.println("name:" + fileName);
            System.out.println("type:" + suffix);
            final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
            final List<String> imageTypeList = Arrays.asList(imageTypes);
            if (!imageTypeList.contains(suffix.toLowerCase())) {
                throw new IllegalArgumentException("图片格式不支持");
            }
            final BufferedImage bufferedImage = ImageIO.read(imageFile
                    .getInputStream());
            final int width = bufferedImage.getWidth();
            final int height = bufferedImage.getHeight();
            System.out.println("width:" + width + " height:" + height);
            if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
                    || height < Config.IMG_MIN_PIXEL
                    || height > Config.IMG_MAX_PIXEL) {
    
    
                throw new IllegalArgumentException("图片尺寸不符合");
            }
        }
    
    
        public static void checkImageIsNormal(final String imageUrl)
                throws Exception {
            if (imageUrl == null) {
                throw new IllegalArgumentException("imageUrl == null");
            }
            final URL url = new URL(imageUrl);
            final URLConnection uc = url.openConnection();
    
    
            if (uc == null) {
                throw new NullPointerException("网络图片不存在");
            }
            final long imageSize = uc.getContentLength();
            System.out.println("netImage length:" + imageSize);
            if (imageSize > Config.IMG_MAX_SIZE) {
                throw new IllegalArgumentException("图片大小不能超过2M");
            }
    
    
            final ImageInputStream iis = ImageIO.createImageInputStream(uc
                    .getInputStream());
    
    
            final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
            if (!iter.hasNext()) {
                throw new RuntimeException("No readers found!");
            }
            final ImageReader reader = iter.next();
            System.out.println("Net imageType: " + reader.getFormatName());
            final String suffix = reader.getFormatName();
            final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
            final List<String> imageTypeList = Arrays.asList(imageTypes);
            if (!imageTypeList.contains(suffix.toLowerCase())) {
                throw new IllegalArgumentException("图片格式不支持");
            }
    
    
            reader.setInput(iis, true);
            final int width = reader.getWidth(0);
            final int height = reader.getHeight(0);
            System.out.println("width:" + width + " height:" + height);
            if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
                    || height < Config.IMG_MIN_PIXEL
                    || height > Config.IMG_MAX_PIXEL) {
    
    
                throw new IllegalArgumentException("图片尺寸不符合");
            }
        }
    
    
        public static void imageReader() throws Exception, IOException {
            final long start = System.currentTimeMillis();
            final File file = new File("wwj6.jpg");
            final ImageInputStream iis = ImageIO
                    .createImageInputStream(new FileInputStream(file));
    
    
            final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
            if (!iter.hasNext()) {
                throw new RuntimeException("No readers found!");
            }
            final ImageReader reader = iter.next();
            reader.setInput(iis, true);
            final int width = reader.getWidth(0);
            final int height = reader.getHeight(0);
            final long end = System.currentTimeMillis();
            System.out.println("userd:" + (end - start) + "ms");
            System.out.println("width:" + width + " height:" + height);
        }
    
    
        public static void bufferedImage() throws Exception, IOException {
            final long start = System.currentTimeMillis();
            final File file = new File("wwj6.jpg");
            final BufferedImage bufferedImage = ImageIO.read(new FileInputStream(
                    file));
            final int width = bufferedImage.getWidth();
            final int height = bufferedImage.getHeight();
            final long end = System.currentTimeMillis();
            System.out.println("userd:" + (end - start) + "ms");
            System.out.println("width:" + width + " height:" + height);
        }
    
    
        public static void main(final String[] args)  {
    
    
            System.out.println("imageReader:");
            try {
                imageReader();
            } catch (final Exception e) {
                e.printStackTrace();
            }
            System.out.println("bufferedImage:");
            try {
                bufferedImage();
            } catch (final Exception e) {
                e.printStackTrace();
            }
        }
    
    }
    

     

     

     

    展开全文
  • HttpClient获取响应内容类型Content-Type

    千次阅读 2017-02-13 10:20:54
    HttpClient获取响应内容类型Content-Type 响应的网页内容都有类型也就是Content-Type ...通过火狐firebug,我们看响应头信息: ...HttpEntity的getContentType().getValue() 就能获取到响应类型

    HttpClient获取响应内容类型Content-Type


    响应的网页内容都有类型也就是Content-Type

    通过火狐firebug,我们看响应头信息:

    QQ鎴浘20170119175851.jpg


    当然我们可以通过HttpClient接口来获取;


    HttpEntity的getContentType().getValue() 就能获取到响应类型;  

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    package com.open1111.httpclient.chap02;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
     
    public class Demo2 {
     
        public static void main(String[] args) throws Exception{
            CloseableHttpClient httpClient=HttpClients.createDefault(); // 创建httpClient实例
            HttpGet httpGet=new HttpGet("http://www.java1234.com"); // 创建httpget实例
            httpGet.setHeader("User-Agent""Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0"); // 设置请求头消息User-Agent
            CloseableHttpResponse response=httpClient.execute(httpGet); // 执行http get请求
            HttpEntity entity=response.getEntity(); // 获取返回实体
            System.out.println("Content-Type:"+entity.getContentType().getValue());
            //System.out.println("网页内容:"+EntityUtils.toString(entity, "utf-8")); // 获取网页内容
            response.close(); // response关闭
            httpClient.close(); // httpClient关闭
        }
    }

    运行输出:

    Content-Type:text/html


    一般网页是text/html当然有些是带编码的,

    比如请求www.tuicool.com:输出:

    Content-Type:text/html; charset=utf-8


    假如请求js文件,比如 http://www.open1111.com/static/js/jQuery.js

    运行输出:

    Content-Type:application/javascript


    假如请求的是文件,比如 http://central.maven.org/maven2/HTTPClient/HTTPClient/0.3-3/HTTPClient-0.3-3.jar

    运行输出:

    Content-Type:application/java-archive


    当然Content-Type还有一堆,那这东西对于我们爬虫有啥用的,我们再爬取网页的时候 ,可以通过

    Content-Type来提取我们需要爬取的网页或者是爬取的时候,需要过滤掉的一些网页;

    展开全文
  • 通过请求对象(ServletRequest)的setCharacterEncoding(String)方法可以设置请求的编码,其实要彻底解决乱码问题就应该让页面、服务器、请求和响应、Java程序都使用统一的编码,最好的选择当然是UTF-8;通过响应...
  • FlaskRestful响应接口封装及自定义json返回类型 本文主要解决统一响应文本封装及json响应文本类型错误问题,本文基于python3编写
  • 一、背景 服务器软件用Spring boot开发,API调用的响应消息格式为JSON。 ...对端解析先判断消息类型,这是无法按照JSON格式解析的。 三、问题解决 1. 网上流传最广泛的两种说法: 1.1 在类上...
  • flask获取参数类型和请求响应

    千次阅读 2018-05-15 19:53:39
    flask重要的两种请求: ...(1)GET请求的的参数类型: str(默认) int float path uuid # 没规定,默认(str) @blue.route('/hello/&lt;name&gt;/') def hello_mian(name): return 'hello %s' % (na...
  • Laravel判断请求类型

    千次阅读 2018-03-05 14:21:34
    Laravel里面,有时候我们需要区分请求类型以返回不同的结果,直接上代码:dd(request()->method(), $_SERVER['REQUEST_METHOD']);
  • 有业务需要,我们需要动态确定接口返回的数据类型。如果json 、text、xml 等… 如果是固定类型可以采用 @RequestMapping 注解中的 produces 来实现 那如果需要不确定类型,那么就不添加这个属性。controller 的...
  • 2、如果时长连接,那么一个socket(tcp)可能发送和接收多次请求,那么如何判断每次的响应已经接收? 2-1、先读请求头,一直到\r\n\r\n说明请求头结束,然后解析http头,如果Content-Length=x存在,则知道http响应的...
  • 如何判断一个程序没有响应

    千次阅读 2013-12-13 09:52:17
    如何判断一个程序没有响应 一.概述 一些重要的程序,必须让它一直跑着;而且还要时时关心它的状态——不能让它出现死锁现象。当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误。我们首要做的事是,...
  • 上传文件判断出现类型错误

    千次阅读 2018-10-22 20:51:08
    前端页面上传文件,后台出现类型错误问题 图片错误章节 今天做上传文件小练习时,发现上传图片时,Content-Type 可以控制为 image/jpeg,也正是这个地方,一开始以为对于后台来说, jpeg 和 jpg 是两种不同的格式,...
  • mybatis if判断integer类型注意点

    千次阅读 2018-06-05 21:54:19
    今天在写mapper文件时遇到integer类型参数时判断不为空,如下&lt;if test="status != null and status != ''"&gt; SQL。。。&lt;/if&gt;当status=0时,if语句没有执行。究其原因,原来...
  • js判断数据类型是否为字符串

    千次阅读 2018-06-01 10:07:00
    判断数据是否为字符串类型: <script type="text/javascript"> //<![CDATA[ document.write(isString('test'),'<br/>'); document.write(isString(10),'<br/>'); function is.....
  • iOS在进行网络请求的时候的网络状态的响应判断
  • 一、获取不同类型响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 获取文本类型响应内容 r = requests.get('https://www.baidu.com') r.text # 通过文本...
  • SpringBoot 文件上传 通过Content-Type和文件头判断文件类型 一、关于MIME MIME的全称是Multipurpose Internet Mail Extensions,即多用途互联网邮件扩展,尽管读起来有些拗口,但大多数人可能都知道, 这是HTTP协议...
  • 请求头 报文头包含若干个属性 格式为“属性名:属性值”, ... Accept-Encoding: 浏览器发给服务器,声明浏览器支持的编码类型,gzip, deflate Accept-Language: 客户端接受的语言格式,比如 zh-CN Connection:.
  • 本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式 | Reactor快速上手 1.3.3 Spring WebFlux Spring WebFlux是随Spring 5推出的响应式Web框架。 1)服务端技术栈 ...
  • 如何判断请求的类型?GET还是POST? 如何获取请求中的参数? 如何重定向? 如何针对Ajax请求返回JSON串? 如果你的关注点不在以上问题范围内,请路过。 添加过滤器 使用注解@WebFilter,并把它加到一个实现了...
  • (1)什么是响应式编程——响应式Spring的道法术器

    万次阅读 多人点赞 2018-03-06 10:54:22
    本系列其他文章见:《响应式Spring的道法术器》。 响应式编程之道 1.1 什么是响应式编程? 在开始讨论响应式编程(Reactive Programming)之前,先来看一个我们经常使用的一款堪称“响应式典范”的强大的生产...
  • STM32开发 -- 复位类型判断

    千次阅读 2019-02-13 14:16:06
    复位类型的情况有多种,会导致MCU重启。 因此我们有必要确认一下是何种复位导致的。 一、复位类型 想要查看复位类型可以RCC_GetFlagStatus函数 / ** * @brief检查是否设置了指定的RCC标志。 * @param RCC_...
  • 一、获取不同类型响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 获取文本类型响应内容 r = requests.get('https://www.baidu.com') r.text #...
  • iOS 手势操作和事件传递响应

    千次阅读 2018-06-05 17:59:29
    iOS中的事件可以分为3大类型:触摸事件、加速计事件、远程控制事件。 在我们点击屏幕的时候,iphone OS获取到了用户进行了“单击”这一行为,操作系统把包含这些点击事件的信息包装成UITouch和UIEvent形式的实例,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 331,035
精华内容 132,414
关键字:

如何判断响应类型