- 博客(14)
- 收藏
- 关注
原创 服务器乱码专栏问题一:String.getBytes()获取值乱码
本文建议阅读时长:15mins 前记:最近笔者工作比较繁忙,导致本来应该有很多博客需要填坑,一直也没有静下心来好好整理下,今天蹭着夜深人静加之阵阵柔和的轻音乐正好先写上一篇,也算是为自己乱码专栏开个头,当然本专栏主要解决Tomcat服务器以及一些国产中间件再应用使用过程中的乱码情况的总结和原理解释,该篇作为乱码专栏的第一篇。 回归正题:先说一下今天的出错场景,业务在前端传递String对象到后台,后台在将获取String对象将其转化为byte数组,存入数据库的一个...
2021-08-24 02:36:33 1857
原创 记一次Css样式var()函数替换失败的排查过程和原因分析(服务器GZIP压缩导致出错)
前几天客户现场国产服务器部署应用时,出现了和weblogic服务器表现不一致的地方,案列很简单:就是样式在加载过程中使用了css的var() 函数。而导致后面css样式加载失败失败,var定义的值没有被替换的情况。先说下css var()函数正常使用,以下面的demo为例:查看图1可以看出,background-color已成功替换为具体的颜色。(其中:root 选择器匹配文档根元素。在 HTML 中,根元素始终是 html 元素。所以var(--primart-color)会在加载时被替换成对应的#.
2021-06-08 20:35:49 2236
原创 getResource()获取资源的那些事
前几天笔者写了一篇关于getResourceAsStream()的文章,今天正好结合前几天遇到的一个getResource(" ")获取在tomcat7 和8的差异上展开阐述下我的见解,以及对于jdk原生的getResource()获取资源的方法进行说明。首先:我们先看jdk中对于getResource()方法的实现。对于看到前面getResourceAsStream()的人,应该明白jdk中获取存在多种方式,1:通过class.getResourceAsStream()获取;2:通过classload
2021-04-21 11:06:45 1863
原创 Tomcat ClassLoader详解
记得前几天写getResourceAsStream()提到后面有时间整理下tomcat的ClassLoader的加载结构。今天有闲暇,笔者就来聊聊我认为的tomcat ClassLoader。首先提到classloader,笔者首先想到的树的概念,每一层classloader都讲究着寻根方式,一般而言一个类加载到jvm虚拟机的过程,...
2021-04-09 19:02:59 2162 2
原创 应用getResourceAsStream()获取为null的问题。
笔者最近在一次上线过程中,遇到服务器迁移部署失败的问题,根据定位是jar中A.class.getClassloader().getResourceAsStream("/request.xml")。一开始笔者没把这个当回事,觉得是正常的。在应用中该request.xml在jar中的根目录下,而类也在该jar中,总所周知tomcat的应用是有webappclassloader去加载,于是去复现该问题时相对虚拟路径在tomcat8之前都是null值,导致了应用的资源获取失败。至于为什么tomcat8前
2021-03-31 15:14:52 7639
原创 树的实现及二叉树的遍历
Java面向对象的特性,方便我们在生活中将任何一个事务都抽象成对象来处理,茶余饭后调侃最多的就是给自己new girlFriend(18,beautiful, tall, slim)等等特性,而且还可以自己创造一个generatorFactory(GirlFriend friend)工厂,批量创建多个。总之这些都是说明了Java面向对象的灵活方便性;其实这也是Java面向对象的特征来决定的:封装、继承、多态; 树,常见的数据结构,我们先来看下对于树的定义:树(Tree)是...
2021-03-30 16:32:36 163
原创 tomcat远程调式及idea远程调试和条件断点的方案
对于项目的远程调式,在工作中经常性的遇到。因此了解远程调式(Remote debugging)是非常必要的。以tomcat为例,window下启动tomcat:一、配置环境变量:CATALINA_HOME=F:\file\apache-tomcat-8.5.32Path=%CATALINA_HOME%\bin;%CATALINA_home%\lib即可进入bin目录下 修改st...
2019-03-19 20:18:21 703 1
原创 java实现只能有一个相同用户登录的功能
需求:使用相同用户名登录系统,确保同名用户登录顶掉之前用户登录或者返回登录的功能。实现效果图:java实现:首先1.web.xml中配置监听器<listener><listener-class>com.bes.enterprise.console.viewer.system.action.userHttpListener</listener-class...
2019-03-12 19:52:49 3659
原创 jsp自定义tag标签
首先定义use.tag,存放目录在/WEB-INF/tags/use.tag;<%@ tag body-content="empty" trimDirectiveWhitespaces="true" pageEncoding="UTF-8"%><%@ attribute name="username" required="true" rtexprvalue=&
2019-03-12 19:09:10 901 1
原创 maven编译内存溢出(java.lang.OutOfMemoryError)
笔者今天在maven编译产品的时候,遇到了坑爹的内存溢出(OutOfMemoryError)问题。环境: jdk1.7、maven3.0.4问题原因:maven编译产品的过程中:根据打出的错误堆栈看出:编译过程中出现了oom,具体如下图:查看错误堆栈明显看出:oom由于永久代内存溢出导致,而永久代在jdk8中被移除,因此jdk中不在需要配置-XX:PermSize和-XX:MaxP...
2019-03-07 20:26:53 6817
原创 list、数组转化实现
今天码代码时遇到一个问题:String[] -->list在String[]数组转化为list集合的时候,由于jdk本身提供了Array.asList(String[] strs);就直接拿List<String> list = Arrays.asList(strs);如果需要对转化后list集合进行set()、add()、remove()时,需要注意:在遍历操作...
2019-01-22 13:56:37 5583
原创 Tomcat实现http2的配置
Tomcat apr模式访问: (因为Jdk8不支持对ALPN(application Layer Protocol Negotiation)协议,因此使用jdk8自带的keytool无法实现对HTTP2协议证书的配置!)实现http2配置要么Jdk10的环境下配置相关证书可以实现对Http2的实现或者通过openssl实现证书结合apr的方式进行相应的配置。本例子,将通过配置Apr实现对htt...
2018-09-04 00:02:14 7157
原创 如何启动两个Tomcat
Tomcat的启动需要JDK的支持;首先在环境变量(我的电脑右击/属性/高级系统设置/环境变量)中配置好JDK在系统变量中 新建JAVA_HOME=F:/java (JDK所在的bin目录的上一级);JRE_HOME=F:/java/jre 配置同上;以及配置CATALINA_HOME=F:/file/apache-tomcat-8.5.32 ;依次在path下编辑添加%JAVA_HO...
2018-07-31 14:50:48 1403
原创 ssm实现分页
model层private Integer currPage;private int totalSize;private int totalPage;private int minnumber;private int maxnumber;private List data;public int page_size=5;public void i
2017-09-20 21:29:01 272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人