JavaWeb
kevin_zhuzj
做的了Java开发工程师也管的了项目。
展开
-
四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
一:token 简介 二:timestamp 简介 三:sign 简介 四:防止重复提交 五:使用流程 六:示例代码 七:ThreadLocal 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自..转载 2020-11-11 08:47:17 · 247 阅读 · 0 评论 -
10w行级别数据的Excel导入优化记录
需求说明项目中有一个 Excel 导入的需求:缴费记录导入由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取、校对、转换之后产生欠费数据、票据、票据详情并存储到数据库中。在我接手之前可能由于之前导入的数据量并不多没有对效率有过高的追求。但是到了 4.0 版本,我预估导入时Excel 行数会是 10w+ 级别,而往数据库插入的数据量是大于 3n 的,也就是说 10w 行的 Excel,则至少向数据库插入 30w 行数据。因此优化原来的导入代码是势在必行的。转载 2020-07-27 08:24:14 · 136 阅读 · 0 评论 -
tomcat+nginx,出现https链接无法访问http链接的CSS及JS
在使用tomcat+nginx时,如果是nginx代理https请求,可能会出现页面可以访问,但是无法加载js和css,这是由于nginx代理https,而nginx和tomcat之间是http,会报:The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure…让tomcat知道nginx发来的是http还是https。默认情况下,nginx得到的https的访问会以http的方式发给负载的tomcat。一、如转载 2020-06-24 08:54:12 · 1459 阅读 · 0 评论 -
接口测试工具postman测试文件下载接口
官方文档有说明:If your API endpoint returns an image, Postman will detect and render it automatically. For binary response types, you should select “Send and download” which will let you save the response t...转载 2020-03-26 16:43:02 · 6510 阅读 · 0 评论 -
开源地图组件Leaflet.js中物品定位精度不准确的问题
自己做的定位导航系统中目前存在如下问题:首页中有网络基准站和拖拉机,现在需要通过在列表中点击查找位置并在首页中自动导航到这个位置,采用leaflet.js API方法中的panTo()发现不能准确定位该基准站和拖拉机的位置(基准站和拖拉机不能居中显示)调研了leaflet.js API中的其他方法之后发现可以采取 flyTo()方法,该方法可以把地图飞到中心点,可以同时设置物体经纬度中...原创 2019-11-13 09:05:57 · 1050 阅读 · 1 评论 -
一个不错的权限管理模块设计案例
我们比较常见的就是基于角色的访问控制,用户通过角色与权限进行关联。简单地说,一个用户拥有多个角色,一个角色拥有多个权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间、角色与权限之间,通常都是多对多的关系。如下图:基于这个,得先了解角色到底是什么?我们可以理解它为一定数量的权限的集合,是一个权限的载体。例如:一个论坛的“管理员”、“版主”,它们都是角色。但是...转载 2019-11-12 08:45:49 · 453 阅读 · 0 评论 -
Spring整合Ehcache管理缓存
前言Ehcache 是一个成熟的缓存框架,你可以直接使用它来管理你的缓存。Spring 提供了对缓存功能的抽象:即允许绑定不同的缓存解决方案(如Ehcache),但本身不直接提供缓存功能的实现。它支持注解方式使用缓存,非常方便。本文先通过Ehcache独立应用的范例来介绍它的基本使用方法,然后再介绍与Spring整合的方法。概述Ehcache是什么?EhCache 是一个纯Java的进程内缓存框架...原创 2018-06-28 11:22:12 · 202 阅读 · 0 评论 -
互联网 API 接口幂等性设计
WEB 资源或 API 方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的。幂等性是分布式系统设计中的一个重要概念,对超时处理、系统恢复等具有重要意义。声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试。例如,在因网络中断等原因导致请求方未能收到请求返回值的情况下,...原创 2018-07-23 14:28:54 · 2937 阅读 · 1 评论 -
关于Linux环境下应用生成图片中出现乱码的问题处理
缘由:测试环境和生产环境系统字符集都是LANG=en_US.utf8,程序在测试环境通过下述方式生成的图片里面的中文可以正常显示,生产环境不行,排查原因为生产环境确认对应的字体,采取后续方法增加字体。1、C:\Windows\Fonts下找到字体文件simsun.ttc,重命名为simsun.ttf;2、上传到主机/usr/share/fonts/zh_CN/3、修改文件权限7554...转载 2018-10-25 13:02:46 · 435 阅读 · 0 评论 -
阿里云免费 SSL 证书到期后更新证书操作步骤
今天早上我发现我的网站不能正常的通过 https 访问了,被谷歌浏览器拦截,提示隐私设置错误。然后我们 Safari 浏览器进行访问,提示此链接非私人连接,同样的被拦截了。然后我根据谷歌浏览器的提示信息,发现是我的 https 安全证书已在昨天过期。于是我就紧急进行证书升级,本文是我的升级操作过程,分享给大家,方便大家参考操作。谷歌浏览器的提示信息如下:“此服务器无法证明它是 www.xttb...转载 2018-11-21 15:53:18 · 28357 阅读 · 2 评论 -
JWT(Json Web Token)框架 jjwt 教程
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。和 Cookie-Session 的模式不同,JSON Web Token(JWT)使用 Token 替换了 SessionId 的资源访问和状态的保持。基于JWT的Token认证的方式有很多优点,本文将介绍 JJWT 的相关用法。jwt是什么?JWTs是JSON对象...转载 2018-11-21 15:57:38 · 3326 阅读 · 0 评论 -
p6spy使用
前言 p6spy是一个开源项目,通常使用它来跟踪数据库操作,查看程序运行过程中执行的sql语句。示例添加依赖<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.7.0</ver...转载 2019-02-20 09:23:06 · 534 阅读 · 0 评论 -
Springboot配置使用ssl,使用https
SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持。SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身份验证...转载 2019-02-20 10:54:41 · 460 阅读 · 0 评论 -
通向架构师的道路(第一天)之Apache整合Tomcat
一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由:ü Web Serverü App Serverü DB Server三大部分组成,其中:² Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80转载 2018-01-25 13:27:43 · 159 阅读 · 0 评论 -
chrome浏览器 配置开机启动全屏
1、下载安装chrome浏览器。2、建立一个chrome浏览器的快键方式,右键打开属性,如下图:3、将目标选项卡的值修改为:"C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --k转载 2017-10-30 19:24:46 · 8277 阅读 · 0 评论 -
开启tomcat远程debug
TOMCAT开放远程调方法1、 WIN系统,在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 Linux系统,在catalina.sh里:原创 2016-10-28 11:06:38 · 261 阅读 · 0 评论 -
Tomcat下访问项目不需要输入项目名称的配置方法
在conf目录下, 修改 server.xml 文件, 在Host标签中,加入子标签l其中path =“” 表明依 Host的 path为相对目录。转载 2016-11-18 09:09:31 · 3671 阅读 · 0 评论 -
utf8 和 UTF-8 在使用中的区别
在使用中常常遇到utf-8和utf8,现在终于弄明白他们的使用不同之处了,现在来和大家分享一下,下面我们看一下utf8 和 UTF-8 有什么区别 “UTF-8”是标准写法,php在Windows下边英文不区分大小写,所以也可以写成“utf-8”。“UTF-8”也可以把中间的“-”省略,写成“UTF8”。一般程序都能识别,但也有例外(如下文),为了严格一点,最好用标准的大写“UTF-8”。转载 2016-12-23 10:19:18 · 435 阅读 · 0 评论 -
Java在不同环境下获取当前路径的方法
Java在不同环境下获取当前路径的方法 关键字: java在不同环境下获取当前路径的方法 1. 在Servlet/Filter等Servlet web环境中,只要获得javax.servlet.ServletContext类型,则可以通过 getRealPath("...") 获得路径。相对路径中最顶层目录可通过参数“"/"”获取。 request.getSession().getSe转载 2016-12-30 11:12:33 · 410 阅读 · 0 评论 -
URL的参数中一定要避免的非法字符
在URL中的参数中不能有空格、双字节字符(如汉字),否则会破坏URL中参数含义的准确性,成为非法的URL,访问该URL后会报:Server returned HTTP response code: 505 for URL错误!解决方法(以参数中含有空格为例):空格的unicode为%20,将参数中的所有空格都替换为%20即可。转载 2016-12-30 11:13:31 · 8238 阅读 · 0 评论 -
80端口占用异常解决方法java.net.BindException: Address already in use: JVM_Bind:80(或8080)
1:Tomcat(或其他Web容器)启动时控制台报错如下示: 2007-8-2 15:20:43 org.apache.coyote.http11.Http11Protocol init 严重: Error initializing endpoint Java.NET.BindException: Address already in use: JVM_Bind:8080 20转载 2016-12-30 11:14:13 · 564 阅读 · 0 评论 -
记一次tomcat启动时的问题:Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突
严重: StandardServer.await: create[8005]: java.net.BindException: Cannot assign requested address: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(P原创 2017-03-01 13:59:19 · 355 阅读 · 0 评论 -
解决maven中jar包无法下载
原因:下载下来的jar包由于网络问题不完整,这样会导致后续的下载也不能继续。方法:删除C:\Users\Administrator\.m2\repository目录下所有后缀名是.lastUpdated的文件进入eclipse,右键项目,运行maven ->Update Dependences等下载完所有的jar之后,如果项目还有错误,就右键项目,运行Maven->update原创 2016-08-31 17:44:18 · 17106 阅读 · 1 评论 -
tomcat的maxThreads、acceptCount(最大线程数、最大排队数)
tomcat 的Connector配置如下其中最后两个参数意义如下: maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100这两个值如何起作用,请看下面三种情况情况1:接受一个请求,此时tomcat起动的线程数没有到达maxThr转载 2017-08-04 00:25:54 · 835 阅读 · 0 评论 -
HTTP返回码总结
HTTP返回码总结HTTP协议状态码表示的意思主要分为五类,大体是:1×× 保留 2×× 表示请求成功地接收 3×× 为完成请求客户需进一步细化请求 4×× 客户错误 5×× 服务器错误100 Continue指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。客户端应该继转载 2017-09-14 13:12:50 · 226 阅读 · 0 评论 -
项目管理模式之如何去除SVN标记
当项目不需要SVN标志的时候,我们一般怎么办哪??可能很多人设置Windows显示隐藏文件,然后将项目中的所有.svn文件删除,这种方法是既费劲儿又蛋疼的方法。 下面,从网上找了个非常简单的方法,重新编辑后当为我自己的原创,希望原作者不要怪罪。 第一步:建立一个名字叫做remove-svn-folders.reg的文本(先建立txt文件,然后粘贴内容后再修改文件名字),转载 2017-09-14 13:13:39 · 667 阅读 · 0 评论 -
webservice客户端不生成JAXBElement类型
webservice用MyEclipse根据wsdl自动生成代码经常遇到JAXBElement类型,使用起来特别不方便,故网上找了个不生成JAXBElement类型的方法 1.将页面中wsdl另存成文件形式到桌面,例如地址:C:\Users\Administrator\Desktop\WorkflowService.wsdl 2.新建一个名为simple-binding.xjb的文转载 2017-09-15 18:01:58 · 1933 阅读 · 0 评论 -
ios端与android端数据返回的问题
今天开发写接口的时候遇到了与android与ios端联调,在返回数据格式的时候遇到一点问题。参考的数据返回格式:1、json字符串样式data = "{\"accountName\":\"18912356130\",\"address\":\"123123\",\"createdTime\":\"2016-09-20 01:40:09\",\"password\":\"e10adc39原创 2016-09-20 15:24:23 · 1283 阅读 · 0 评论