欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > HTML >内容正文

HTML

为啥通过MSIE判断浏览器信息

发布时间:2023/12/31 HTML 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 为啥通过MSIE判断浏览器信息 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

看到这么一段代码:

 

@RequestMapping(value="/download")public ResponseEntity<byte[]> download(HttpServletRequest request,@RequestParam("filename") String filename,@RequestHeader("User-Agent") String userAgent,//这里之所以需要请求头,是因为请求头中包含浏览器信息Model model)throws Exception{// 下载文件路径String path = request.getServletContext().getRealPath("/upload/");System.out.println("path="+path);// 构建FileFile file = new File(path+File.separator+ filename);// ok表示Http协议中的状态 200BodyBuilder builder = ResponseEntity.ok();// 内容长度builder.contentLength(file.length());// application/octet-stream : 二进制流数据(最常见的文件下载)。builder.contentType(MediaType.APPLICATION_OCTET_STREAM);// 使用URLDecoder.decode对文件名进行解码filename = URLEncoder.encode(filename, "UTF-8");// 设置实际的响应文件名,告诉浏览器文件要用于【下载】、【保存】attachment 以附件形式// 不同的浏览器,处理方式不同,要根据浏览器版本进行区别判断if (userAgent.indexOf("MSIE") > 0){// 如果是IE,只需要用UTF-8字符集进行URL编码即可builder.header("Content-Disposition", "attachment; filename=" + filename);}else{// 而FireFox、Chrome等浏览器,则需要说明编码的字符集// 注意filename后面有个*号,在UTF-8后面有两个单引号!builder.header("Content-Disposition", "attachment; filename*=UTF-8''" + filename);}return builder.body(FileUtils.readFileToByteArray(file));}}

 

为啥这个视图函数中包含了User-Agent这种请求头呢?貌似删除后也可以正常运行啊。

这是因为请求头中包含了浏览器信息。

这里的MSIE的意思是:Microsoft Internet Explorer.

 

 

if (userAgent.indexOf("MSIE") > 0)

这句代码的意思是:

判断请求头的浏览器信息中包含IE浏览器的信息。

 

 

 

总结

以上是生活随笔为你收集整理的为啥通过MSIE判断浏览器信息的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。