Gson(解析json)
作用:在servlet层中解析json
1:导入jar包
gson-2.2.4.jar
例如:Gson gson = new Gson();
// JsonArray : []
// JsonObject: {}
return gson.fromJson(responseData, JsonObject.class)
.getAsJsonObject("alibaba_aliqin_fc_sms_num_send_response")
.getAsJsonObject("result")
.get("success")
.getAsBoolean();
Poi(excel导入导出)
作用:实现excel批量导入与导出
POI: Point Of Interest 信息点
-- http://poi.apache.org
下载 poi-bin-3.14.zip
POI框架:
工作簿 --> HSSFWorkbook
工作单 --> HSSFSheet
行 --> HSSFRow
列 --> HSSFCell
拷贝jar: poi-3.14-20160307.jar
主要方法:
一、写Excel:
第一步:创建工作簿。
HSSFWorkbook workbook = new HSSFWorkbook();
第二步:通过工作簿创建工作单
HSSFSheet sheet = workbook.createSheet(java.lang.String sheetname)
第三步:通过工作单循环创建行.
for (int i = 0; i < 10; i++){
HSSFRow row = sheet.createRow(i);
第四步:通过行循环创建列
for (int j = 0; j < 10; j++){
HSSFCell cell = row.createCell(j);
cell.setCellValue(java.lang.String value)
}
}
第五步:把工作簿写入Excel文件.
workbook.write(java.io.OutputStream stream);
第六步:关闭工作簿
workbook.close();
二、读Excel:
第一步:通过指定的Excel文件创建工作簿。
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("poi.xls"));
第二步:通过工作簿获取工作单
HSSFSheet sheet = workbook.getSheetAt("工作单的索引号");
第三步:通过工作单循环获取行.
Iterator<Row> rows = sheet.rowIterator();
第四步:通过行循环获取列.
Iterator<Cell> cells = row.cellIterator();
获取列中的内容:
cell.getXxxCellValue()
第五步:关闭工作簿
workbook.close();
短信(sms)
集成(阿里大鱼)
1:短信接口
-- 阿里大于.
http://www.alidayu.com/
用支付宝账号登录.
a. 应用管理.
-- 应用列表 (创建新的应用). APP证书
AppKey : 23416775
App Secret: d1f5fe5d17e72164e49e541bb7bc7f70
-- SDK下载(java).
sdk-java-2016-06-07.zip
taobao-sdk-java-auto_1455552377940-20160607.jar
b. 配置管理(配置短信模版).
-- 验证码短信模版 (验证码)
配置短信签名:
--- 添加新的签名.
配置短信模版:
-- 添加新的短信模版.
模板ID: SMS_11480310
模板内容: 验证码${number},您正进行身份验证,打死不告诉别人!
-- 普通的短信模版(找回密码)
c. 开发短信发送工具类.
http://api.alidayu.com/
拷贝: taobao-sdk-java-auto_1455552377940-20160607.jar
2. gson(google) : 操作json的框架.
-- gson-2.2.4.jar
Zxing(生成二维码)
-- zxing框架(google).
生成二维码就会得到一个请求URL.
-- 拷贝jar:
zxing-core-3.1.0.jar
zxing-javase-3.1.0.jar
a. MatrixToImageWriter (写二维码的类).
b. BitMatrix(二维码字节转换类)
/** 定义Map集合封装二维码需要全局配置信息 */
Map<EncodeHintType, Object> hints = new HashMap<>();
/** 设置二维码图片中内容编码 */
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
/**
* 创建二维码字节转换对象
* 第一个参数:二维码图片中的内容
* 第二个参数:二维码的格式器
* 第三个参数:二维码的宽度
* 第四个参数:二维码的高度
* 第五个参数:二维码的全局配置信息
*/
BitMatrix matrix = new MultiFormatWriter().encode(url,
BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints);
/** 向浏览器输出二维码 */
MatrixToImageWriter.writeToStream(matrix, "png", response.getOutputStream());
pinyin4j(汉字转拼音)
拷贝pinyin4j.jar( pinyin for java)
/**
* 把汉字转化成拼音的方法
* @param str 汉字
* @return 拼音
*/
public static String toPinyin(String str){
String res = "";
for (int i = 0 ; i < str.length(); i++){
char temp = str.charAt(i);
String[] arr = PinyinHelper.toHanyuPinyinStringArray(temp); //jar方法
res += arr[0];
}
return res.replaceAll("\\d+", "");
}
Javamail(发送邮箱)
Spring集成javamail
1:导入jar包:
mail.jar、activation.jar
2:在spring中配置javamail
<!-- 配置发送邮箱信息 -->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:defaultEncoding="utf-8"
p:host="smtp.163.com"
p:username="maofa001"
p:password="dj2663037">
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
<bean id="emailSender" class="cn.itcast.oa.core.common.email.impl.EmailSenderImpl"
p:from="maofa001@163.com"
p:javaMailSender-ref="javaMailSender"/>
3:写一个工具实现发送
/** 注入Spring的邮件发送接口 */
private JavaMailSender javaMailSender;
private String from;
/**
* 发送邮件方法
* @param to 收件人
* @param subject 邮件的主题
* @param msg 邮件消息体
* @param html 是否为html格式的邮件: true : html格式 false: 文本格式
* @return true : 发送成功 false: 发送失败
*/
/** 创建邮件消息体对象 */
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
/** 创建邮件消息体帮助对象 */
MimeMessageHelper = new MimeMessageHelper(mimeMessage);
/** 设置邮件收件人 */
.setTo(to);
/** 设置邮件发送人 */
.setFrom(from);
/** 设置邮件的主题 */
.setSubject(subject);
/** 设置邮件中的内容 */
.setText(msg, html);
/** 发送邮件 */
javaMailSender.send(mimeMessage);
- com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题
在使用Android Studio 这个IDE时,出现com.android.tools.build:gradle:X.XX.XX:gradle.jar 插件无法下载问题 可能的原因就是网速不好或者依 ...
- maven2应用之jar插件使用介绍
[转载声明] 转载时必须标注:本文来源于铁木箱子的博客http://www.mzone.cc [本文地址] 本文永久地址是:http://www.mzone.cc/article/236.html 有 ...
- 2017.5.1 使用fat jar插件来打包有引用外部jar包的项目
如果在程序开发时用到了第三方提供的API.jar包或者其他附属资源.在导出并生成项目的jar文件时,必须将第三方的文件一并导出,否则无法正确运行. 可以使用fat jar插件,下载地址:http:// ...
- Eclipse下使用Fat Jar插件对源代码进行打包
这两天需要对一个项目进行打包,并在服务器上部署成后台服务模式进行执行,原来使用eclipse进行打包很难用,配置文件容易出错,生成的jar不能正常运行.后来发现Fat Jar Eclipse Plug ...
- maven copy jar 插件
插件比较特殊 eclipse下的 首先声明插件 <pluginManagement> <plugin> <groupId>org.apache.maven.plu ...
- 08-jmeter-plugins-manager.jar插件安装
1.安装第三方插件:jmeter-plugins-manager 2.将此jar包下载好后放到jmeter的安装目录lib/ext文件夹内, 3.然后运行jmeter,选择菜单“选项”可见插件入口 4 ...
- Eclipse 在线安装fat jar插件
在线安装步骤: eclipse菜单栏 help >software updates >Search for new features to install>new update si ...
- jar文件内lib引用的jar插件修改后更新
打包的java服务在第三方jar进行修改后,要更新线上的jar包时,直接替换原有lib引用的jar文件,会造成服务起不来, 可在本地clean install之后,用线上的classes文件夹替换本地 ...
- commons-fileupload-1.2.1.jar 插件上传与下载
1:首先在页面上写个文本域: <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
随机推荐
- ar的主流算法
基于无标志AR:代表作是PTAM/M,Mixare,将是AR未来的发展方向 跟踪技术可以大致分成两大类,一类是基于特征的跟踪(Feature Based Tracking),比如通过跟踪从输入图像中抽 ...
- CMDB三大绝招,助我站稳运维之巅
上一篇(内功篇)介绍了建设CMDB的内功心法,接下来和各位交流下建设CMDB的招式.内功是根基.是基础,决定了武学修为境界的高低,招式也许就是明心见性之后的修行.修为指一个人的修养.素质.道德.涵养. ...
- Disruptor的伪共享解决方案
1.术语 术语 英文单词 描述 内存屏障 Memory Barriers 是一组处理器指令,用于实现对内存操作的顺序限制. In the Java Memory Model a volatile fi ...
- android 错误收集
2. is not translated in Eclipse > Preference > Android > Lint Error Checking的Correctness: M ...
- python 类 __module__ __class__
__module__ 和 __class__ __module__ 表示当前操作的对象在那个模块 __class__ 表示当前操作的对象的类是什么 创建一个目录lib 在day7 目录下创 ...
- ArcEngine和GDAL读写栅格数据机制对比(一)
最近应用AE开发插值和栅格转等值线的程序,涉及到栅格读写的有关内容.联想到ArcGIS利用了GDAL的某些东西,从AE的OMD中也发现RasterDataset和RasterBand这些命名和GDAL ...
- 【原创】PHPstorm本地修改同步保存到远程服务器
PHPstorm设置本地修改的代码同步保存到远程服务器: 设置里面搜索“Deployment”,选择+号,然后选择SFTP: 填写远程主机的信息: 然后选择Mappings,填写本地代码路径和远程主机 ...
- Nginx 403 forbidden原因及故障模拟重现(转载)
这篇文章是转载过来的一篇文章,觉得不错,因此做个记录. 访问Nginx出现状态码为403 forbidden原因及故障模拟 1) nginx配置文件里不配置默认首页参数或者首页文件在站点目录下没有 i ...
- PAT 1046 Shortest Distance[环形][比较]
1046 Shortest Distance(20 分) The task is really simple: given N exits on a highway which forms a sim ...
- Kd-tree的学习
一.普通kd-tree 1.在选择划分维度的时候,不能简单的每一个维度轮流划分.还有一种更合适的是利用数据的方差来划分,哪个维度的方差大,就选择哪一个维度划分.理由解释如下: 最简单的方法就是轮着来, ...