实习进度记录

第一天实习:组件开发初探

我的第一个实习任务,是基于DWR和JDIY等轻量级工具,进行针对某一特定功能的组件的开发。

接到leader下发的项目原型图以及数据库模型,回去后自学了PowerDesigner、Axure8的基本使用,然后基于leader给的rp图对项目每个模块做出进一步的分析、设计,针对每个功能模块涉及到的数据库表、前端交互事件、BO层接口作出初步设计,补充到RP图上。

leader一次下发了六个组件任务,各个任务可以独立开发,又可以组合使用,初步计划是按照耦合度低—>高,逐个攻克。

第二天实习:

任务一:

开始着手短信组件的开发——短信组件主要包括 发生短信、发送验证码、核对验证码、群发短信等功能。

发送短信,使用了第三方平台——中国网建短信接口平台。

所需jar包三个:

实现发送短信的功能很简单:拼接URL,向接口平台提交发送请求即可,url中携带开发者在平台的注册账户名、接口密钥、发送电话号码、短信内容

参数变量 说明
Gbk编码Url http://gbk.sms.webchinese.cn/
Utf-8编码Url http://utf8.sms.webchinese.cn/
Uid 本站用户名(如您无本站用户名请先注册)[免费注册]
Key 注册时填写的接口秘钥(可到用户平台修改接口秘钥)[立刻修改]
如需要加密参数,请把Key变量名改成KeyMD5,
KeyMD5=接口秘钥32位MD5加密,大写。
smsMob 目的手机号码(多个手机号请用半角逗号隔开)
smsText 短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费
短信发送后返回值 说 明
-1 没有该用户账户
-2 接口密钥不正确 [查看密钥]
不是账户登陆密码
-21 MD5接口密钥加密不正确
-3 短信数量不足
-11 该用户被禁用
-14 短信内容出现非法字符
-4 手机号格式不正确
-41 手机号码为空
-42 短信内容为空
-51 短信签名格式不正确
接口签名格式为:【签名内容】
-6 IP限制
大于0 短信发送数量
3.JAVA开发样例
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class SendMsg_webchinese {

public static void main(String[] args)throws Exception
{

HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","验证码:8888")};
post.setRequestBody(data);

client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
System.out.println(result); //打印返回消息状态

post.releaseConnection();

}

}

任务二:

短信发送后,需要在数据库记录。由于是组件,所以不能使用Hibernate/Mybatis等框架,这里选用了JDIY,一款小巧而友好的持久化工具。

JDIY的使用十分简单:下载jar包,导入项目—>修改配置文件jdiy.xml—>在代码中使用。

在代码中使用主要分两步:首先解析配置文件,创建JDIY上下文

//下面的URL对象用于指定jdiy.xml配置文件的位置(相对于class目录):
        URL xmlLocation = Fs.getResource("jdiy.xml");
//指定您的应用程序根路径地址(APP_ROOT),也可以直接写绝对路径,例如:"e:\\myjava\\jdiy-test"
        String rootPath = Fs.getResource("../../").getPath();
        //创建一个JDiy上下文对象:
        JDiyContext jdc = JDiyContext.newInstance(xmlLocation, rootPath);

然后,就可以获取dao,创建查询、插入、删除等工作了。JDIY只使用了少量的方法,即实现了大部分数据库操作。

具体操作教程见:http://www.jdiy.org/article.jd?smId=y0gusbjakv

摘抄三:

随机6位数验证码生成:

String code=""+(1 + (int)(Math.random() * ((999999 - 1) + 1)));

摘抄四:

获取当前时间、获取当前时间X分钟后时间:

Calendar calendar = Calendar.getInstance();
String curr=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());//获取当前时间

calendar.add(Calendar.MINUTE, 2);//当前时间加2分钟
String outdate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); //即可得到当前时间2分钟后时间

摘抄五:

单元测试需要3个jar包,测试注解常用@Test,运行时,测试类中@Test方法会按照定义顺序执行。其他@Before等比较少用。

时间: 2024-11-06 03:43:31

实习进度记录的相关文章

Lenovo k860i 移植Android 4.4 cm11进度记录【下篇--实时更新中】

2014.8.24 k860i的cm11的移植在中断了近两三个月之后又开始继续了,进度记录的日志上一篇已经没什么写的了,就完结掉它吧,重新开一篇日志做下篇好了.最近的战况是,在scue同学的努力之下,device部分已经可以通过编译,而且也拿到了官方给的一些源码(目前有没有用还不知道,不过可以编译通过),不过呢,坏消息是scue同学由于工作比较忙,已经全面放弃对k860i的努力. 现在遇到了一些问题,使用官方的源码,编译上cm11,刷入之后会出现开机第二屏黑屏的问题,抓了logcat,发现应该是

本周进度记录

学习内容安排: C(分类) C(内容) S(开始时间) ST(结束时间) I(打断时间) △(净学习时间) 编程 词频统计 9:30 17:30 50 7小时10分 读书 构建之法 8:30 13:30 40 4小时20分 编程 结对项目 8:30 15:00 60 5小时30分 读书 数字图像处理 15:00 17:30 10 2小时20分 视频学习 JAVA 17:00 19:30 10 2小时20分 编程累计: 代码行数 94+102=196 知识点 C,JAVA 粗略的记录大致的学习内容

SQL Server基础操作(此随笔仅作为本人学习进度记录)

create database LtsDatabase \\创建数据库 on ( name=LtsDatabase_data,\\数据库名称 filename='d:\temp\LtsDatabase_data.mbf',\\文件所在位置,扩展名.mdf size=6, \\数据库文件初始化大小 maxsize=12, \\数据库文件最大值可以为多大 filegrowth=10% \\数据库超过现有的尺寸后,数据库增长率 ) log on \\对事物日志的描述 ( name=LtsDatabas

SQL Server基础操作(此随笔仅作为本人学习进度记录三)

统计函数 select * from 教师资料 where 教师薪资>(select AVG(教师薪资) from 教师资料) \\从教师资料表中查出所有高于平均薪资的人员. use LtsDatabase alter table 网站职员表 \\修改此表 add 奖金 money \\增加奖金字段 更新奖金字段 use LtsDatabase update 网站职员表 set 奖金=500 \\更新网站职员表所有奖金更新至500元 计算每个员工的总收入是多少 use LtsDatabase s

SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)

存储过程 存储过程分为系统存储过程和自定义存储过程 存储过程通过将处理数据的程序从客户端应用程序移动到服务器,存储过程是放在服务器上的,通过客户端下达指令调用存储过程的时候, 这个过程是在服务器上发生的,自然就不会占用网络的带宽就会降低网络流量.存储过程就是一组为了完成特定功能的T-SQL语句.就是一组语句随时随地拿出来调用. 经过编译后,它存储在SQLserver服务器端的数据库中,换句话说这个T-SQL语句不是普通的T-SQL语句,是经过编译的,存储在服务器中,它是有名称的,根据名称调用存储

SQL Server基础操作(此随笔仅作为本人学习进度记录九!--游标)

游标就是存储结果集,将从指定表中查询出符合条件的记录,组成了结果集,然后把它存到游标当中,如果要显示游标中的哪一条记录 游标(游动的标识) !!!!非常重要的知识点,比较难理解 !!!游标提供了对表中的数据检索的一种方式,一种灵活操作手段,只是检索表中数据的一种方式. 在操作的时候也可以把游标看做是一个数据库对象.就好像视图一样. 它也是依赖于T-sql语句来进行查询,把查询出来符合条件的记录,不是一下全部显示出来,可以一条记录一条记录的把它显示出来. 它每次只提取一条记录,每次只显示一条记录.

SQL Server基础操作(此随笔仅作为本人学习进度记录十 !--触发器)

触发器(同游标一样比较难理解,特殊的存储过程) 触发器是一种存储过程,只不过是一种特殊类型的存储过程,它的特殊性就在于根据某种特殊的情况下触发的, 存储过程的执行需要手动调用,而触发器作为一个存储过程它的执行,不是我们调用的,而是我们进行某些操作之后来触发它的, 它的原理相似于其它语言的事件句柄, 可以调用存储过程 它的主要作用就是用于实现由主键或外部键所不能保证的,复杂的参照完整性或数据一致性. 触发器还有以下几个功能: 1.可响应数据库的更新,触发器的操作可以通过调用一个或多个存储过程甚至可

实习面试记录

2019年10月份开始,由于大四已经没有课,只是每天自习难免会无聊厌烦,希望将学到的知识用于实践,并提前体验一下工作,我们便开始投简历寻找与本专业相关的实习.丰富履历的同时也为毕业旅行储蓄一些资金~ 首先来说小橙子 面试公司:某财富公司,负责资产管理和财富管理: 面试岗位:数据分析师,负责股票期权期货等金融产品的走势分析,定价模型分析等 岗位要求:熟悉数值分析算法,面向对象编程语言,熟练的编程能力,算法创新能力 面试过程:面试+笔试一起,共计半小时左右: 1.针对简历询问其中面试官感兴趣的地方,

2020年寒假第5次学习进度记录

当日学习内容:阅读<梦断代码>.视频学习前台技术(HTML(JSP)+CSS) 1. <梦断代码>阅读近况 今天,我阅读了第9章“方法”和第10章“工程师和艺术家”. 在第9章“方法”中IBM执行强制进度纪律的成功基于两条原则:(1)计划是强制性的(2)计划必须符合现实情况 ----“从底向上”,依据那些负责按计划执行的程序员的经验和知识而来,而不是“从顶至下”,靠管理者拍脑袋或对市场的期望而来.CMM这个沉重的软件开发成熟度模型在国内完全变了味,曾看着一个软件公司为了通过CMM4