成都网站创建厂房装修东莞网站建设

pingmian/2026/1/23 20:49:03/文章来源:
成都网站创建,厂房装修东莞网站建设,团购的网站扣佣金分录怎么做,网页模板下载了如何修改使用?项目背景 原有的启动平台公共组件库comm-util的浏览器工具类BrowserUtils是基于UserAgentUtils的#xff0c;但是该项目最后一个版本发布于 2018/01/24#xff0c;之至今日23年底#xff0c;已有5年没有维护更新#xff0c;会造成最新版本的部分浏览器不能正确获取到浏览器…项目背景 原有的启动平台公共组件库comm-util的浏览器工具类BrowserUtils是基于UserAgentUtils的但是该项目最后一个版本发布于 2018/01/24之至今日23年底已有5年没有维护更新会造成最新版本的部分浏览器不能正确获取到浏览器信息。至于为什么停更了获取不到最新浏览器和操作系统信息了呢文末给大家揭晓。以至于公司的项目组团队不得已去寻找其他解决方案做该工具类的优化更新。于是我们来到的项目官网看到了官方公告也提示项目已停止更新官方建议使用Browscap做代替。 开始改造 1、maven依赖替换 替换前 dependencygroupIdeu.bitwalker/groupIdartifactIdUserAgentUtils/artifactIdversion1.21/version /dependency替换后 dependencygroupIdcom.blueconic/groupIdartifactIdbrowscap-java/artifactIdversion1.4.1/version /dependency 说明browscap-java的1.4.1版本实在2023年7月维护的 2、公共方法抽取 原有实现是基于UserAgentUtils的首先从请求头中获取到User-Agent再通过parseUserAgentString()方法获取到UserAgent对象然后在调用对象的getBrowser()方法获取到浏览器对象Browser进而获取到浏览器相关信息。 private static Browser getBrowser(HttpServletRequest request) {return UserAgent.parseUserAgentString(request.getHeader(User-Agent)).getBrowser(); } 现有实现是基于的首先获取到UserAgentParser对象基于对象的parse()方法去解析请求头进而获取Capabilities对象基于Capabilities对象的getValue()方法获取客户端浏览器和客户端操作系统等信息。 private static Capabilities getCapabilities(HttpServletRequest request) {try {UserAgentParser userAgentParser new UserAgentService().loadParser();return userAgentParser.parse(request.getHeader(User-Agent));} catch (Exception e) {throw new RuntimeException(e);} } 3、获取远程客户端系统名称 改造前 public static String getOsName(HttpServletRequest request) {UserAgent userAgent UserAgent.parseUserAgentString(request.getHeader(User-Agent));return userAgent.getOperatingSystem().getName(); } 改造后 public static String getOsName(HttpServletRequest request) {Capabilities capabilities getCapabilities(request);return capabilities.getPlatform(); } 4、获取远程客户端系统版本 public static String getOsVersion(HttpServletRequest request) {Capabilities capabilities getCapabilities(request);return capabilities.getPlatformVersion(); } 改造前并不支持 5、获取远程客户端浏览器名称 改造前 public static String getBrowserName(HttpServletRequest request) {Browser browser getBrowser(request);return browser.getName(); } 改造后 public static String getBrowserName(HttpServletRequest request) {Capabilities capabilities getCapabilities(request);return capabilities.getBrowser(); } 6、获取远程客户端浏览器版本 改造前 public static String getBrowserVersion(HttpServletRequest request) {Browser browser getBrowser(request);Version version browser.getVersion(request.getHeader(User-Agent));return version.getVersion(); } 改造后 public static String getBrowserVersion(HttpServletRequest request) {Capabilities capabilities getCapabilities(request);return capabilities.getBrowserMajorVersion(); } 7、至于其他方法大家自行拓展验证 改造验证 1、浏览器信息准备 2、main方法验证 public static void main(String[] args) {final String userAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36;try {UserAgentParser userAgentParser new UserAgentService().loadParser();Capabilities capabilities userAgentParser.parse(userAgent);System.out.println(系统名称 capabilities.getPlatform() / capabilities.getPlatformVersion());System.out.println(浏览器信息 capabilities.getBrowser() / capabilities.getBrowserMajorVersion());} catch (Exception e) {throw new RuntimeException(e);} } 3、验证结果可以正确识别 结尾彩蛋 为什么原有的工具类不能获取最新的浏览器和操作系统的信息呢跟下源码你就明白了 操作系统信息封装 Windows Android Symbian 浏览器信息的封装 Edge Chrome 项目地址 Giteestartdis-comm: Startdis Comm 即 Startdis 启迪快速开发平台所依赖的公共依赖模块。 Githubhttps://github.com/startdis/startdis-comm Gitlab启迪平台 / Startdis Comm · GitLab 文章转载自点九先生 原文链接https://www.cnblogs.com/dianjiu/p/17880214.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福建省建建设行业信用评分网站网页建设方案怎么写

一、准备工作 kali和靶机都选择NAT模式(kali与靶机同网段) 1.靶场环境 下载链接:https://download.vulnhub.com/dc/DC-7.zip 2.kali的ip 命令:ifconfig 3.靶机的ip 扫描靶机ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 (1&…

网站建设 项目书 框架中铁建设门户网站

01 卡片 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。 小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个&a…

html5 微网站 源码简历模板电子版

"数据二十条"即中共中央、国务院关于构建数据基础制度更好发挥数据要素作用的意见,全文共分为五章二十条。 一、发布 2022年6月22日召开了中央全面深化改革委员会第二十六次会议。审议通过《关于构建数据基础制度更好发挥数据要素作用的意见》。 2022…

网站开发程序用什么好电商开发系统

1.1 1代精彩面板仅支持使用PPI电缆(RS232-PPI和USB-PPI)下载程序,操作步骤如下:使用PPI下载方式,组态电脑需要使用RS232/PPI电缆或USB/PPI电缆与面板相连。订货号分别如下:RS232/PPI电缆:6ES7901-3CB30-0XA0USB/PPI电缆…

可以做链接的网站关于网站项目建设的申请

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞,评论,收藏。 一起努力 目录 1.前言 2.堆排序 2.1降序排序 2.2时间复杂…

建设高端网站公司的目的网站的推广是怎么做的

代码随想录二刷 | 字符串 |重复的子字符串 题目描述解题思路 & 代码实现移动匹配KMP算法 题目描述 459.重复的子字符串 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: tru…

公司做网站要花多少钱平顺网站建设

错误的原因是:缺少servlet-api.jar这个包,将这个包导入项目里面就可以了。1. 我们可以到tomcat的lib目录下面找到这个包,然后在eclipse中,右击项目,2. 选择Java Build Path>Libraries>Add ExternalJARS,找到你计…

做购彩网站是怎么盈利的工作人员回应游客扔免费午餐

115.派大星的烦恼 解压下载文件时一个 bmp 文件,用notepad 打开有没有发现什么 ,提示位图什么的 用Stegsolve.jar 打开 发现很多. 和- 第一时间想到了 电报码 但提示不是电报码,除了这个那就是很像二进制了 0,1 什么的,但这个感觉…

关于网站开发所需的知识优化电池充电什么意思

myeclipse的安装就不说了,百度一下都有很多教程 但是发现现在网上很少有介绍这个软件具体如何使用,哪个组件有何用处并没有太多解释 因此讲解一下myeclipse的使用: 1.工作区【workspace】 1.当myeclipse打开后,大多数会…

文山州中小企业网站建设河北住房和城乡建设厅

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,…

广州番禺网站制作推广建立企业网站的详细步骤

2分钟搭建企业轻量级负载均衡服务器 文章目录1. 修改配置文件2. tomcat启动参数:3. 统一编码格式1. 修改配置文件 打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两个文件 分别在这两个文件内容的末尾添加:…

wordpress toggle 插件给网站做优化怎么做

Spring基础 - SpringMVC请求流程和案例 什么是MVC 用一种业务逻辑、数据、界面显示分离的方法,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理…

江西网站建设价格山西省网站备案

目录 自定义组件的 v-modelv-model简化代码 自定义组件的 v-model 组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件。 <input v-model"parentData"> 等价于&#xff1a; <input :value"parentData"input"parentData …

佛山建设局官方网站漯河网站超市建设

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

网站服务器租用合同wordpress中的template

目录 建议有状压基础再食用&#xff1a;本题的状态转移方程是 dp代码片:参考代码 建议有状压基础再食用&#xff1a; n行m列 等价 n列m行 &#xff0c;因为n比较小&#xff0c;int是32位足够了&#xff0c;我们用比特位统计每一行的状态。 本题的状态转移方程是 dp[h][i][j]…

数据表和网站建设的关系著名的设计网站

随着经济的发展&#xff0c;人们对生活的需求也不再局限于温饱层面&#xff0c;越来越多的人们开始追求文化、艺术的高层次需求&#xff0c;旅游也逐渐成为人们日常放松的一种方式。由于我国人口多、易扎堆等特点&#xff0c;景区的运营监管方式也亟需改革。TSINGSEE青犀智能分…

网站开发人员的岗位职责微网站和微信公共平台的区别

目录 GCD&#xff08;最大公约数&#xff09; 1、欧几里得算法 LCM&#xff08;最小公倍数&#xff09; 一、试题 算法训练 抗击虫群 GCD&#xff08;最大公约数&#xff09; 整数 a 和 b 的最大公约数是指能同时整除 a 和 b 的最大整数&#xff0c;记为 gcd(a,b)-a的因子和…

电商网站设计公司皆选亿企邦dux5.0 WordPress

MQ 延迟队列 1. 前言 延迟队列是我们日常开发过程中&#xff0c;经常接触并需要使用到的一种技术方案。前些时间在开发业务需求时&#xff0c;我也遇到了一个需要使用到延迟消息队列的需求场景&#xff0c;因此我也在网上调研了一系列不同的延迟队列的实现方案&#xff0c;在…

项目管理软件开发案例如何优化搜索引擎的搜索功能

学习笔记-SQL语法系统性学习&#xff0c;关卡式进阶 笔记参考&#xff1a;作者鱼皮 关卡式Sql语句学习体验网站 &#xff0c;网站开源代码 如果想本地体验语法&#xff1a;1.下载大佬开源代码&#xff0c;运行前端项目&#xff08;推荐&#xff09;&#xff1b; 2.或是自己使…