javaweb_实践问题汇总
y41992910
紧跟时代潮流,努力进步,走在前列
展开
-
spring roo创建表
运行过程解析:参考: http://www.ibm.com/developerworks/cn/opensource/os-springroo1/ 创建应用程序: 1. 打开操作系统命令行 shell。 2. 使用 mkdir 命令创建一个名为 conference 的目录。clean.batrmdir /s /q srcrmdir /s /q targetdel pom.xml转原创 2016-12-21 15:19:56 · 532 阅读 · 0 评论 -
SpringBoot整合Aspect实现AOP和注解方式的日志和编程
aop,注解,原创 2023-02-23 18:38:05 · 366 阅读 · 0 评论 -
多选多的一种通用处理逻辑
多选多原创 2023-02-10 11:19:57 · 588 阅读 · 0 评论 -
socket链接检测超时时间过短导致的问题
超时时间原创 2022-09-06 21:10:02 · 979 阅读 · 0 评论 -
Gson().toJson对于特殊字符的转义&等的转义处理
gson原创 2022-09-06 15:48:38 · 2307 阅读 · 0 评论 -
ConcurrentHashMap1.8 - 扩容详解
简介 ConcurrenHashMap 在扩容过程中主要使用 sizeCtl 和 transferIndex 这两个属性来协调多线程之间的并发操作,并且在扩容过程中大部分数据依旧可以做到访问不阻塞,具体是如何实现的,请继续 。 说明:该源码来自于 jdk_1.8.0_162 版本 。 特别说明:不想看源码可直接跳到后面直接看...转载 2022-04-10 11:53:47 · 6280 阅读 · 6 评论 -
证书过期导致的错误:net::ERR_CERT_DATE_INVALID
证书过期导致的错误:net::ERR_CERT_DATE_INVALID最近在谷歌浏览器上,访问一个后端的时候,http的status直接是falied,提示信息是:ERR_CERT_DATE_INVALID最终定位出来,是服务器端的证书过期了,导致HTTPS协议,在建立链接的时候就报错了....原创 2022-01-08 21:36:50 · 6511 阅读 · 0 评论 -
解析excel
package com.hgh;import com.monitorjbl.xlsx.StreamingReader;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import java.io.FileInputS原创 2021-12-07 22:43:40 · 240 阅读 · 0 评论 -
解决POI的XSSFWorkbook导入大excel的内存消耗过大问题
方式1:使用SXSSFWorkbook ,经过测试,这个情况无效,因为本质上SXSSFWorkbook 也是通过XSSFWorkbook来的,他可以解决写出excel的场景,但是解决不了我们这种用户上传且读取excel中的内容的场景 XSSFWorkbook XSSFWorkbook = new XSSFWorkbook(fileInputStream); System.gc(); SXSSFWorkbook SXSSFWorkbook = new SXSS原创 2021-11-28 19:59:03 · 11903 阅读 · 0 评论 -
记一次查询条件:取时间小于等于当前时间的数据引起的问题
最近系统上有个需求,要找某个时间之前的最新的数据数据A在时间B修改了一次,值为1;在时间C又修改了一次,值为2.有一个表记录了最新的值,有另外一个表记录了每次修改的时间,和每次修改后的值.结果表和过程表.我们这个需求就只能去过程表中取数据.查询条件是修改时间小于等于用户所选时间,默认为当前时间.而随着时间的推移,数据量越来越多,小于等于当前时间的数据也越来越多,最后的就OOM了.最终分析了用户的修改习惯,修改了SQL为小于等于当前时间,大于等于当前时间-一个月....原创 2020-08-26 21:10:18 · 1659 阅读 · 0 评论 -
分析请求的链路上的所有节点
最近遇到了一个问题.客户端发起的请求参数,到了应用程序,却有些参数改变了.由此分析客户端发起请求,经过了哪些节点,可能是有些节点对请求入参做了处理.分析过程客户端->ngix->网关->应用A->应用B->最终应用等.最终定位为网关和应用A,都对请求入参做了SQL注入处理,导致了到最终应用的时候,请求入参发生了改变....原创 2020-05-30 21:38:27 · 544 阅读 · 0 评论 -
mybatis和SQL嵌套子查询的坑
最近碰到了一个生产问题.经过分析,发现一次请求调用,执行了很多次的SQL查询.是因为在mybatis中用了嵌套查询的写法,照成了该问题.原因是返回的数据要求格式如下class A{XXX a1xxxx a2List list}开发人员就先查询出满足的a1和a2记录,然后为了省事,在mybatis中写返回值的resutlMap的时候,就用了嵌套查询</>这...原创 2020-03-25 21:50:49 · 3490 阅读 · 0 评论 -
StopWatch计时器
有时候,我们需要分析一段的代码中,各个步骤所用时间和所占比例,就可以适用StopWatch来实现(有s[pring的,google的)package com.hgh.springcloud.admin.test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.util.St...原创 2020-01-11 14:16:29 · 228 阅读 · 0 评论 -
Servlet
javax.servlet.Servletpublic interface Servlet {//根据配置初始化,例如在web.xml文件中的写的servlet内容配置信息public void init(ServletConfig config) throws ServletException;//获取配置信息public ServletConfig getServletConfi...原创 2019-12-19 20:25:47 · 141 阅读 · 0 评论 -
控件打包和注册问题
手动注册控件要先将控件赋值到目录下,然后执行如下命令来进行注册Regsvr32 c:\Windows\SysWOW64\LicRegClient.ocx要注意控件是否签名的问题和IE浏览器安全设置的问题,控件是否成功加载和启用看:设置->管理加载项->选择不同的条件进行筛选 自动注册控件. 1,首先用命令将文件打包成xxx.cab的包,然后在项目中引用这些cab包 类似于: <!--原创 2016-12-22 15:38:05 · 870 阅读 · 0 评论 -
签章开发和授权
总结:这种类似的第三方开发或者是基于控件的开发,其实是比较简单的,让别人给个deamo和(接口文档),然后参考别人的范例,把别人给的deamo改一改(修改一下方法,加一下方法的参数等即可),主要是要有deamo和文档,然后知道别人哪个方法有什么作用,然后再结合自己系统的设计,把别人的功能并入自己的系统即可制章 电子签章 1,根据setMoban方法选择印章模版,进行不同的显示 <td>印章原创 2016-12-22 16:43:28 · 806 阅读 · 0 评论 -
1.一个配置项要引用其他的多个配置项的时候的处理
1.例如产品配置;需要关联很多的其他配置项:ra,cert,key等等。 这个时候只需要关联他们的id主键即可; 但是当修改为不关联的时候,是传递为”“,null,或者是0比较好呢(id是从1开始),其实考虑是传递null比较好一点,这样就不用再做判断了()还需要判断是否大于零才确定有配置有关联; 不过实际中也有用0来传递:请选择。 如果是value=”“会传递一个什么样的值呢?结论:当不是原创 2016-12-18 21:05:40 · 375 阅读 · 0 评论 -
java.net.MalformedURLException: no protocol
电子发票出现 java.net.MalformedURLException: no protocol: spbm/services/DZFPService at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown S原创 2016-12-19 11:26:48 · 1307 阅读 · 1 评论 -
根据后台配置项,动态的在页面先控制显示内容
根据后台配置项,动态的在页面先控制显示内容:即,后台配置有改项,页面上才会显示该项. 比如:营业执照,授权书等等1.创建实名认证配置项#set( $items = {"0":"营业执照","1":"组织机构代码","2":"税务登记证","3":"授权书","4":"法定代表人/经营者","5":"代理人"})2.后台根据产品配置来回显对应的实名认证项Certification certifica原创 2016-12-19 14:55:55 · 1140 阅读 · 0 评论 -
使用RestTemplate进行测试
使用RestTemplate进行测试 结论:1.当需要访问url的时候,注意要将服务启动(就算测试代码写在同一个服务中也要启动服务)2.当使用到springmvc的时候,也要把springmvc的配置文件加入到启动中.测试情况1, 因为makecertcontroller是new出来的,不是由spring生成的,所以会出现sqlsession为null的情况 解决措施: new出来的m原创 2016-12-19 16:20:52 · 9432 阅读 · 1 评论 -
联合查询中要注意要有索引
联合查询中要注意要有索引(在数据量大的时候),不然数率会很慢原创 2016-12-28 16:24:23 · 792 阅读 · 0 评论 -
价格优惠开发记录
1.优惠策略的多样性2.管理员修改订单价格和数量的问题3.客户端回显的时候,页面的价格单价的计算问题(之前是订单总价/订单数量),解决方案:那个订单显示里和申请的时候显示的一样4.字段属性修改和添加的问题() OK5.要先判断客户是否已经优惠过了 (如果是用户+企业的形式来判断可以优惠的策略,则会出现问题)6.考虑用户多次重复购买的时候,页面的优惠策略问题(即:要不要给他优惠),考虑是在回传页面原创 2017-01-06 13:39:00 · 417 阅读 · 0 评论 -
Input 只能输入数字,数字和字母等的正则表达式
JS只能输入数字,数字和字母等的正则表达式 JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) 2.只能输入数字,能输小数点. 3.数字和小数点方法二 4.只能输入字母和汉字转载 2017-02-17 10:54:13 · 23555 阅读 · 0 评论 -
classpath路径
1、src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。2、WEB-INF/classes目录存放src目录Java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资源的入口。3、引用classpath路径下的文件,只需在文件名前加classpath:<param-va转载 2017-02-18 22:32:26 · 419 阅读 · 0 评论 -
java中如何在循环中准确删除集合中的某个元素,并且不引起错误
最好的方式:iterator // 系统配置的应用集合 List<ApplicationInfo> applicationInfos = new ArrayList<ApplicationInfo>(); // 移除已经存在了的应用集合 Iterator<ApplicationInfo> iterator = applicationInf原创 2017-03-21 08:59:34 · 420 阅读 · 0 评论 -
javaweb编程经验
如果页面需要引用后台返回的值,那么,要确认后台确实在引用的地方之前,已经返回改值了. 比如制证中的签章授权.需要引用makeSealServer.account,那么,就必须要在方法被调用之前返回,其实最好是在刚进入页面的时候就返回该值,免得调用的时候,后台没有返回该值,使得方法调用出错对于在后台中,需要引用某个的对象的属性或者方法的时候,必须要确保该对象不是Null,对于不能确保不是null的,一原创 2017-03-22 11:17:44 · 330 阅读 · 0 评论 -
java线程池和消息阻塞队列
重点关注线程池的实现以及七个主要内容: 二.深入剖析线程池实现原理 在上一节我们从宏观上介绍了ThreadPoolExecutor,下面我们来深入解析一下线程池的具体实现原理,将从下面几个方面讲解: 1.线程池状态 2.任务的执行 3.线程池中的线程初始化 4.任务缓存队列及排队策略 在前面我们多次提到了任务缓存队列,即workQueue,它用来存放等待执行的任务。 wo转载 2017-03-14 20:38:38 · 1112 阅读 · 0 评论 -
javaweb_轻量级的多机同步资源解决方案
新建一个线程类,在线程中获取配置属性文件:包含小集群中所有的主机地址,还可以配置秘钥对;通过过滤器,过滤掉本机的地址(也可以不过滤,本机有修改的时候,直接发通知,本机也进行修改),在线程中遍历地址集合,调用httpclient工具类,进行数据发送:可以封装一个param,包含要调用的bean名称,方法名称,参数集合,秘钥对,本机随机数等编写接收访问的对象和方法,利用反射获取要执行的对象和方法名原创 2017-03-14 20:45:02 · 816 阅读 · 0 评论 -
ehcache和spring
重点:配置ehcache配置文件,并配置好缓存策略:主要有在内存中的最大数量,在硬盘中的最大数目,是否在关闭服务器之前将缓存写入本地磁盘.最大空闲缓存数,缓存最大存活时间,缓存数据是否永久有效,数据过期策略(三选一)等待在spring配置文件中引入ehcache的工厂Bean和管理bean,并注册缓存注解驱动:注意注解的使用,和value,key的设置策略<?xml version="1.0原创 2017-03-16 21:35:05 · 272 阅读 · 0 评论 -
eclipse远程调试Tomcat方法
主要是; 1.修改tomcat在catalina.bat或者.sh中,添加 linux CATALINA_OPTS=”-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n”(不要换行,要在同一行)windows Set “CATALINA_OPTS=-Xdebug -Xrunjdwp:transpor翻译 2017-05-27 10:32:56 · 306 阅读 · 0 评论 -
在页面上显示后台回传的PDF文件
直接在页面上预览PDF,而不是下载,要下载的话,加上attachment;即可 InputStream proxyIn = null; proxyIn = new FileInputStream(file); response.reset(); String filename = "协议书.pdf"; filena原创 2017-06-13 14:06:58 · 7824 阅读 · 1 评论 -
动态配置信息需要提供一个重新缓存的按钮
最近做了一个对接第三方接口的功能,需要推送信息到第三方给定的地址,开始做的时候,是只在系统初始化的时候,从数据库中加载,并缓存起来,然后就不再加载了。并且有一个信息的端口和协议是在代码中写死了的,导致了想修改的时候,既要修改代码,又要重新启动系统。修改思路: 1。数据库中配置一个完整的信息,例如: http://write.blog.csdn.net/8080/xxxx/xxxx 然后对这个数原创 2017-09-29 22:17:04 · 204 阅读 · 0 评论 -
测试系统没问题,正式系统就有问题的解决思路
在项目,有时候会碰到在测试系统中测试什么问题都没有,但是一上了正式系统,就有问题了情况。 以本人目前碰到过的情况来分析,可能的原因有以下:(主要是找测试系统和正式系统的差异化,可能你觉得两者没有差异化,可事实上它就是存在的,就是你的预生产系统跟正式还是有些你意想不到的差别)1。首选要抓住问题点在哪里,尽可能的缩小可能的范围,找好正式系统和测试系统之间的差异化:某段代码,某个数据库表,某个数据库字段原创 2017-10-17 21:25:57 · 5581 阅读 · 0 评论 -
去除URL中带有的jsessionid
url中有Jsessionid生成的原因: jsessionid是标明session的id的(有点废话。。。),它是存在于cookie中的,一般情况下不会出现在url中,服务器会从客户端的cookie中取出来,但是如果客户端禁用了cookie的话,就要重写url了,显式的将jsessionid重写到Url中,方便服务器来通过这个找到session的id。如果客户端请求的cookie中不包含JSES原创 2017-10-31 10:27:42 · 12758 阅读 · 0 评论 -
java.io.FileNotFoundException:文件扩展名称隐藏了
java.io.FileNotFoundException: D:\ukeyimg\911101088020176135\1499224768165bl26.jpg (系统找不到指定的文件。)原因: 因为自己给文件命名的时候,复制了:1499224768165bl26.jpg,而文件是隐藏了扩展名的,也就是说,实际的文件名是:1499224768165bl26.jpg.jpg,所以就找不到文件了原创 2017-11-02 10:58:48 · 328 阅读 · 0 评论 -
关于java用restTemplate做web请求测试的时候,如果断点打在restTemplate发起请求的那一行,请求就一直卡在那里的问题
最近用restTemplate做rest接口的测试。但是发现如果断点打在restTemplate.xxxx所在的那一行,就会出现程序一直停留在那一行,也不会报错,但是如果关闭程序,就会报错了的问题。经过测试后发现,只要断点不打在restTemplate.xxxx所在的那一行。在经过restTemplate.xxxx那一行的时候,不要按f6或者f5,直接点F8跳过,这样在rest接口所在方法就能收到请原创 2017-11-02 14:34:04 · 1081 阅读 · 0 评论 -
https协议发送请求体太大,导致了404(tomcat设置的是http端口和请求体大小)
最近在实际中碰到了一个情况,明明tomcat已经设置了请求体大小是10M,但是2M的数据都无法发送过去。但是同样的数据,用restTemplate来组装发送就可以发送成功。用抓包工具,重新点击发送数据,只要数据超过2M,就会报错(走的是负载均衡的,https协议), 但是如果直接用ip向服务器发送(数据量大于2M),就可以成功(走的是http协议,虽然请求一些设置为了https,但是用抓包工具看,原创 2017-11-10 20:29:26 · 8681 阅读 · 0 评论 -
如何防止session过期
1.服务端设置session的有效期比较长,但是这是个比较模糊的概念,无法确定到底要多长 <session-config> <session-timeout>60</session-timeout> </session-config>2.在web端,或者客户端的主框架上,嵌入一个定时器,定时的到服务端去刷新session function keepAlive()原创 2017-11-06 10:53:43 · 3630 阅读 · 0 评论 -
eclipse用maven构建javaweb工程
1.创建maven工程,勾选create a simple….输入组织名称和项目名称,以及选择打包方式 3.生成的目录结构如下,可以发现,有些目录结构是不需要的,而且webapp下面没有web.xml文件 4.选择编码方式为UTF-8 5.在project facets中,去勾选Dynamic Web Model,并选择java的版本 6.进行上一步之后,目录结构如下7.重新勾选Dynami原创 2017-11-29 13:51:51 · 540 阅读 · 0 评论 -
sessionid超时后,重定向302到某个页面
最近项目上出现了用户登录超时之后,被跳转到了后台管理员登录页面的问题,查看发现是登录超时之后,被302到了后台管理员登录页面 也就是说,在某个地方指定了sessionid失效之后,重定向到了某个页面,查询配置发现如下配置 <session-management invalid-session-url="/login" session-fixation-protection="newSession原创 2017-12-04 16:29:46 · 2486 阅读 · 0 评论