
Java
HaHa_Sir
守时,守约,守信!感恩!积少成多,积沙成塔,学无止境,戒骄戒躁!
-
原创 网站实现微信扫码登录+Java+Shiro 框架
网站实现微信扫码登录+Java+Shiro 框架一、准备工作1、注册微信开放平台:https://open.weixin.qq.com/2、创建网站应用 , 设置授权回调域。3、开发者认证 (需要企业资质,费用300元)二、具体实现步骤1、网页页面生成二维码 ---- 使用第二种方式步骤1:在页面中先引入如下JS文件(支持https):http://res.wx.qq.com/connect/zh_CN...2020-12-09 16:03:00112
0
-
原创 Shiro 实现免密码登录策略 微信扫码登录 第三方登录问题
Shiro 实现免密码登录策略 微信扫码登录 第三方登录问题一、情景描述在做微信扫码登录时候,流程是,根据获取的 微信unionId,查找到用户,且用户状态为可用时,即可实现登录;由于使用shiro为安全控制中心,查询出来的用户密码为加密的,且不可逆;所以要做一个Shiro免密登录策略。二、代码实现1、Shiro 登录流程 Subject su...2020-12-09 15:37:56310
0
-
原创 Web安全 文件上传可执行文件漏洞解决方案
Web安全 文件上传可执行文件漏洞解决方案一、问题重现1、一个基于SpringMVC的文件上传,假设上传一个script.jsp的文件,里面写好java代码,文件上传成功后,可以直接访问到 如:,localhost:8080/uploadFiles/script.jsp ,会造成jsp文件执行,从而对系统造成危害。2、script.jsp ,代码如下:<%@ page language="java" contentTyp...2020-10-10 16:17:46171
0
-
原创 微信一物一码二维码包解密Java版 微信二维码包buffer解密Java版
微信一物一码二维码包解密Java版 微信二维码包buffer解密Java版一、前言1、在做微信一物一码解密操作时,关于二维码包解密操作的描述内容十分简单,也没有对应的解密示例,一直纠结着如何实现Java版解密,耽误了不少时间,故而写此文记录下过程。二、获取相关数据1、获取密钥key:申请一物一码通过后,在【微信公众平台】,消息中心可以获取对应的密钥。2、获取二维码加密数据,点击获取 步骤是【2.4 下载二...2020-09-27 10:24:12338
0
-
转载 微信小程序 开放数据校验与解密Java版 Java微信小程序获取用户信息和手机号码解密Java版
微信小程序 开放数据校验与解密Java版 Java微信小程序获取用户信息和手机号码解密Java版一、依赖pom <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-code.2020-09-25 17:30:40318
4
-
原创 SpringMVC中静态获取request对象 Spring中获取 HttpServletRequest对象
SpringMVC中静态获取request对象 Spring中获取 HttpServletRequest对象一、web.xml 中配置Listener<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>二、代码实现1、创建RequestUt...2020-06-23 15:52:35430
2
-
原创 Java WebService获取request对象 WebService获取HttpServletRequest对象
Java WebService获取request对象 WebService获取HttpServletRequest对象一、问题描述在使用WebService时候,遇到需要传递图片的需求,思路是返回服务端的主机名,尝试过静态获取request对象,但在客户端调用时,是无法获取到request的。那么需要通过WebService中来获取request 对象。二、代码实现1、如下:import javax.annotation.Resource;import javax.se...2020-06-23 15:49:53438
2
-
原创 XMLGregorianCalendar类转换为java.util.Date
XMLGregorianCalendar类转换为java.util.Date一、问题描述1、在使用WebService时,服务端中 java.util.Date ,转换到客户端中,变成XMLGregorianCalendar 类( javax.xml.datatype.XMLGregorianCalendar),那么这两个不同包的类型,该怎么转换呢?二、代码实现1、了解XMLGregorianCalendar,从JDK中可以知道,该类主要用于XML中...2020-05-22 14:58:07101
0
-
原创 Apache-CXF整合SpringMVC WebService Apache-CXF整合SpringMVC
Apache-CXF整合SpringMVC WebService Apache-CXF整合SpringMVC一、前言1、最近公司一个项目,突然需要用到WebService,网上找了下,实现的方式很多,这里记录下Apache-CXF和SpringMVC的整合过程。2、SpringMVC 部分配置略, CXF单独也可以在web项目中运行。二、WebService 服务端 代码实现1、依赖pom <!-- https://mvnrepository.com/artif...2020-05-22 14:12:51136
0
-
原创 java 数据导出Excel java POI 导出数据Excel
java 数据导出Excel java POI 导出数据Excel一、说明1、使用Apache poi 实现java中导出excel格式数据。2、依赖pom: <dependency> <groupId>org.apache.poi</groupId> <artifa...2020-03-31 21:38:48933
0
-
原创 java 读取excel数据 poi导入excel 数据 java实现导入excel数据
java 读取excel数据 poi导入excel 数据 java实现导入excel数据一、说明1、在实际开发中,可能有需求需要将excel导入到业务系统中,具体实现可以使用Apache poi 来实现。2、依赖pom如下: <dependency> <groupId>org.apache.poi</gro...2020-03-31 21:07:131085
0
-
原创 java 反射多级调用实现原理 java EL表达式多级调用实现原理
java 反射多级调用实现原理 java EL表达式多级调用实现原理一、发现问题1、在EL表达式中显示数据,使用的是 “对象名.属性名”的格式来实现,若存在对象的多级嵌套,依旧是:"对象名.对象名....xx.属性名",其实后台是反射的原理来实现取值的,那么具体是怎么实现的呢?二、代码理解1、创建一个 Student 学生类,里面有学校School 类...2020-03-30 18:05:27239
0
-
原创 java 实现汉字转拼音,java汉字简体转繁体 java汉字繁体转简体
java 实现汉字转拼音,java汉字简体转繁体 java汉字繁体转简体一、前言java实现汉字转拼音,我的思路是需要一个字符和拼音的映射库。“我”=wo,”们“=men。 幸运的是不小心找到 nlp-lang 包,包含汉字转拼音,简体、繁体互转,等等。 下面来看看。二、示例代码1、依赖 pom.xml<!-- https://mvnreposito...2020-01-14 13:41:39539
0
-
原创 SpringMVC 拦截器使用方法 SpringMVC拦截器执行顺序理解
SpringMVC 拦截器使用方法 SpringMVC拦截器执行顺序理解一、拦截器作用1、Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。二、使用方法1、依赖 spring-webmvc <dependency> <groupId&g...2020-01-09 09:52:03671
0
-
原创 java中Comparable和Comparator的用法和区别 Comparable自然排序 Comparator比较器排序
java中Comparable和Comparator的用法和区别 Comparable自然排序 Comparator比较器排序一、概述Comparable和Comparator在java中都是用于来比较数据大小。实现Comparable接口需要重写compareTo方法,实现Comparator方法需要重写compare方法。 这两个方法返回值都是int类型,根据返回值来判断比较对象...2019-11-03 22:38:151661
2
-
原创 Java实现若干个数计算平均值并保留小数位 java计算平均值 java四舍五入保留小数
Java实现若干个数计算平均值并保留小数位 java计算平均值 java四舍五入保留小数一、需求1、在项目中,要计算若干个指标的平均值,找了一圈,发现JDK中没有提供,于是乎,造一个。2、因若干个指标不确定,这里使用可变参数来表示,易于参数传递。3、因求取平均值后,可能会有若干位小数,需要对小数位进行处理,分别使用 java.math.BigDecimal 和 java.te...2019-11-02 10:24:142242
0
-
原创 java BigDecimal 遇到的坑 BigDecimal 注意点事项 BigDecimal 比较大小
java BigDecimal 遇到的坑 BigDecimal 注意点事项 BigDecimal 比较大小一、遇到问题在使用 java.math包的 BigDecimal类进行高精确度运算时,发现在使用构造方法 new BigDecimal 和 BigDecimal.valueOf 方法创建的 BigDecimal对象,居然不相等的情况,此处容易暗生bug,且难以发现,故记...2019-11-02 10:09:571647
0
-
原创 Eclipse在线安装阿里java开发规约p3c插件安装教程 Eclipse安装p3c
Eclipse在线安装阿里java开发规约p3c插件安装教程一、 下载 终极版java开发手册(官方下载地址,需登录)1、《阿里巴巴Java开发手册》:https://yq.aliyun.com/attachment/download/?id=20232、考试认证地址: https://edu.aliyun.com/certi...2017-10-17 17:04:21553
0
-
原创 (一、)maven下载、安装和配置 for windows
maven安装入门,基础学习。 windows安装,linux安装。2017-10-18 22:51:53318
0
-
原创 (二、)Maven项目,依赖关系理解
(二、)Maven项目,依赖关系理解一、 按照Maven约定构建Maven目录1、创建maven工作空间: F:\MavenProject2、创建项目名称: MvnChild3、按照约定依次创建目录:a. MvnChild/src/main/java/com/mvn/oneb.MvnChild/src/main/resourcec.M2017-10-18 23:01:10633
0
-
原创 SpringMVC 表单标签中 htmlEscape 属性的作用
一、SpringMVC 表单元素标签 如下:htmlEscape="false" class="input-xlarge"/>其中的属性 htmlEscape的作用是? 大致的意思是起转义作用。二、测试如下1、htmlEscape="false" , 输入内容 "2、htmlEscape="true" , 输入内容 "2017-11-22 22:36:2318611
3
-
原创 SpringMVC,ajax实现省市区三级联动
SpringMVC,ajax实现省市区三级联动一、实现思路 1、请求 url:/province , 通过 Model 默认加载省份数据, 2、用change 事件监听province的变换,触发ajax事件,加载城市数据 3、加载区县数据,同理 2 4、数据源以国家统计局数据为基准。 最新县及县以上行政区划代码(截止2016年7月31日) 本人已经整理好202017-12-15 17:02:263122
19
-
转载 java常用7款反编译工具
java常用7款反编译工具今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了。1、2018-01-12 09:30:561190
0
-
原创 java中包装类的比较用法
java中包装类的比较用法一、前言java中 ,包装类是一个对象,也是一个具体的数值。对于对象比较可以用 equals()方法,对于数值的比较可以用 == 进行比较,那么对于包装类该用那种方法比较合适呢?二、实验代码如下 Integer a1=120; Integer b1=120; System.ou2018-01-12 10:14:272294
0
-
原创 解决springMVC文件上传报错: The current request is not a multipart request
解决springMVC文件上传报错: The current request is not a multipart request 一、问题描述在使用springMVC做文件上传时,点击"导入" 时页面报错:org.springframework.web.multipart.MultipartException: The current request is not a m2018-01-22 17:38:4923884
0
-
转载 java对象转json字符串工具Gson简单入门
java对象转json字符串工具Gson简单入门一、下载与安装在使用GSON API工作之前,你需要下载库(jar文件),并将其包含到类路径中。库,连同源代码和Java文档,都可以从http://code.google.com/p/google-gson/downloads/list下载。下载完毕后,添加gson-.jar到类路径。对于那些偏好使用Maven2018-01-23 10:52:33757
0
-
转载 java中pojo对象和json相互转化
java中pojo对象和json相互转化一、 定义以及相关概念POJO,Plain Old Java Object,是一种简单的Java对象,一般就是有一些private属性及其属性getter、setter方法的类。这种对象只能用来装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。JSON,Javascript Object Notation,是一2018-01-15 17:55:266364
0
-
原创 springMVC使用ajax实现文件上传
springMVC使用ajax实现文件上传一、 上传之前的准备配置1、 依赖jar包和 mvc.xml文件配置,参考连接: https://www.cnblogs.com/WJ-163/p/6269409.html2、 两个jar包a. commons-io-2.4.jar b. commons-fileupload-1.3.1.jar 3、一个 sp...2018-01-25 14:18:593462
4
-
原创 关于request.getRealPath("") 方法已过时的解决办法
关于request.getRealPath("") 方法已过时的解决办法一、问题描述1、在写 request.getRealPath("/WEB-INF/classes"); 方法读取Tomcat中文件时,发现 该方法被画上了横线,已过期,不建议使用。 二、替换方法1、request.getSession().getServletContext().getRealPath(File.separ2018-01-18 17:31:254974
0
-
原创 记录一个很好用的截图软件greenShot
记录一个很好用的截图软件greenShot一、GreenShot简介1、 Greenshot 是款免费开源的截图工具,可以对截图进行标注、分享。 2、Greenshot 支持对 IE 浏览器下的网页进行滚屏截图,还可以对截图进行高亮选中区域、模糊、加边框/阴影、边界撕裂等效果 3、安装时可选安装各种分享插件,比如 Dropbox、Flickr、P2018-01-26 17:23:062884
0
-
原创 Spring加载Properties配置文件的四种方式
Spring加载Properties配置文件的四种方式一、通过 context:property-placeholder 标签实现配置文件加载1、用法示例: 在spring.xml配置文件中添加标签 2、在 spring.xml 中使用配置文件属性: ${jdbc.url}" /> ${jdbc.username}" /> ${jdbc.password}" />2018-01-19 14:03:2928461
0
-
原创 springMVC实现文件下载
springMVC实现文件下载一、文件下载原理1、设置 response 响应头2、读取文件 -- InputStream3、写出文件 -- OutputStream4、执行操作5、关闭流 (先开后关)二、实现代码@RequestMapping(value="/downloadFile") public St2018-02-05 11:59:297982
3
-
原创 mybatis中参数为list集合时使用 mybatis in查询
mybatis中参数为list集合时使用 mybatis in查询一、问题描述mybatis sql查询时,若遇到多个条件匹配一个字段, sql 如: select * from user where id in ('23','45','34'), 那么在 mybatis 中该如何实现呢?二、实现思路1、方法一: java中将满足条件的值 lis2018-02-07 11:07:0944823
9
-
原创 mybatis中三大数据库mysql,oracle,sqlserver分别用like查询
mybatis中三大数据库mysql,oracle,sqlserver分别用like查询1、 mysql select * from user where name like concat('%',#{name},'%')2、 oracleselect * from user where name like '%'||#{2018-02-07 13:27:191498
4
-
原创 json和jsonp的区别和联系 springMVC实现jsonp跨域请求
json和jsonp的区别和联系 springMVC实现jsonp跨域请求一、 概念理解1、 json:指的是 JavaScript 对象表示法(JavaScript Object Notation);JSON 是轻量级的文本数据交换格式 ; JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。2、 jsonp:(JSON with Padding) 是 ...2018-02-27 17:15:42572
0
-
原创 mybatis xml文件中用 if 标签判断字符串是否相等
mybatis xml文件中用 if 标签判断字符串是否相等一、方法一:<if test="delFlag == '2'.toString()"> a.del_flag = #{delFlag}</if>二、方法二:<if test=' delFlag == "2" '> a.del_flag = #{delFlag}</if>以上两种 ,都...2018-02-08 17:32:4414701
2
-
原创 java中使用HttpClient实现服务端跨域HttpClient调用其他系统服务
java中使用HttpClient实现服务端跨域HttpClient调用其他系统服务 一、 准备jar包1、httpclient-4.5.3.jar2、httpcore-4.4.8.jar3、commons-logging-1.0.4.jar 二、HttpClient 执行 get 请求 后台代码 /** * @des...2018-02-28 16:58:092623
4
-
原创 FreeMarker 基本用法 FreeMarker和spring整合集成 FreeMarker模板转换为字符串
FreeMarker 基本用法 FreeMarker和spring整合集成FreeMarker模板转换为字符串一、 FreeMarker 简介1、 略。。 自行问我小弟百度。2、官网:https://freemarker.apache.org/二、java中使用FreeMarker1、jar包: freemarker-2.3.20.jar2、 ...2018-03-15 14:14:452511
0
-
原创 spring和redis整合集成步骤
spring和redis整合集成步骤一、准备工作1、 已经安装好redis服务 (windows 版,linux 版都可以)2、 依赖jar: jedis-2.9.0.jar 、 commons-pool2-2.5.0.jar 二、java中操作 (单机版--jedis操作)/** * @description: 单机版--jedis操作 * @param: * * @create...2018-03-02 17:12:161208
0
-
转载 java Web项目javaEE中web.xml文件中配置 contextConfigLocation 方法
java Web项目web.xml文件中配置contextConfigLocation方法 一、 web.xml中 classpath: 和 classpath*: 有什么区别? 1、classpath: 只会到你的项目class路径中查找找文件; 2、classpath*: 不仅包含class路径,还包括jar文件中(class路径)进行查找.二、 用模糊匹配的方式配置多配置文件1、...2018-03-16 15:29:531397
0