彩信平台实践Word格式.docx
《彩信平台实践Word格式.docx》由会员分享,可在线阅读,更多相关《彩信平台实践Word格式.docx(92页珍藏版)》请在冰点文库上搜索。
3.2.8.1建立好数据库表40
3.2.8.2在制作管理平台页面上,新增addGroup.jsp。
这个页面主要方便用户预定彩信的群发任务。
定时发送某条信息。
41
3.2.8.3增加彩信群发入库过程41
3.2.8.4在MODEL包,建立类MmsGroup.java41
3.2.8.5在包service里面建立类GroupService.JAVA41
3.2.8.6新增addGroupRes.jsp,保存群发任务42
3.2.8.7学习使用JOB处理44
3.2.9查看彩信群发任务44
3.3彩信发送44
3.3.1发送设计思想44
3.3.2库表创建45
3.3.3下行彩信封装类MmsMtInfo.java46
3.3.4彩信发送业务逻辑处理类:
SendMmsServices.java47
3.4彩信的接收56
3.4.1接收类ReceiverService.JAVA56
3.4.2WEB.XML里面进行配置65
4业务处理模块66
4.1.1学习使用存储过程处理业务66
4.1.2业务处理过程参考66
Vishine短信平台(V1.0)
1背景
2概述
3系统结构
3.1新建与配置项目
3.1.1构建自己的项目
1.给自己的平台取一个名称,如我建的工程:
mmsplantform
2.构建一些常用的类包,如:
暂时我就建设了
,包名称都有特殊含义,方便自己记忆。
例如我的com.conf包里面,放置一些我们这个项目的一些配置文件读取类。
Com.imti.servlet包我放置一些初始化的servlet,业务处理servlet。
Com.imti.util包里面放置一些工具类,用于整个项目的。
3.在webRoot下面建立一些文件夹:
。
CSS文件夹放本工程的一些公共css文件。
Img放置一些图片。
JS放置一些JAVASCRIPT文件。
Logs放置一些运行时候的日志文件。
mmsRes放置一些彩信数据包。
Page放置一些JSP
3.1.2配置自己的工程项目的LOG4J
我用的Log4J是spring框架里面已经实现的类。
只要学习怎么使用,变成自己的东西。
方便日后编程,走捷径。
1.在工程的web.xml里面加上如下配置。
<
context-param>
<
param-name>
log4jConfigLocation<
/param-name>
param-value>
/WEB-INF/log4j.xml<
/param-value>
<
/context-param>
webAppRootKey<
MMSROOT<
servlet>
servlet-name>
log4jInitServlet<
/servlet-name>
servlet-class>
org.springframework.web.util.Log4jConfigServlet
/servlet-class>
load-on-startup>
1<
/load-on-startup>
/servlet>
2.LOG4的使用方法
privatestaticfinalLoggerlogger=Logger.getLogger(className.class);
3.1.3配置项目项目过滤器
这样就可以减少由于编码不统一造成乱码麻烦,减少我们项目代码量
1.在WEB.XML里面添加如下代码
filter>
filter-name>
encodingFilter<
/filter-name>
filter-class>
org.springframework.web.filter.CharacterEncodingFilter
/filter-class>
init-param>
<
encoding<
GB2312<
/init-param>
/filter>
!
--配置过滤器,过滤字符集-->
filter-mapping>
url-pattern>
/*<
/url-pattern>
/filter-mapping>
.
3.1.4自己工程配置文件读取类
1.MmsConfigLoad.java类用于读取自己工程的配置文件。
这样,项目里面一些需要灵活配置的东西,就可以放到配置文件里面。
例如:
数据库的连接配置文件,或者一些常用的SQL。
我们工程的配置文件是在WEB-INF目录下面的:
config.properties
packagecom.conf;
importjava.io.BufferedInputStream;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.InputStream;
importjava.util.Enumeration;
importjava.util.Properties;
importorg.apache.log4j.Logger;
publicclassMmsConfigLoad{
privatestaticfinalLoggerlogger=Logger.getLogger(MmsConfigLoad.class);
static//根据key读取value
Propertiesprops;
InputStreamin;
//读取项目的配置文件到Properties
publicMmsConfigLoad(StringfilePath){
props=newProperties();
try{
in=newBufferedInputStream(newFileInputStream(filePath));
props.load(in);
in.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//读取Properties里面的的属性值
publicStringgetValueByKey(Stringkey){
Stringvalue=props.getProperty(key);
returnvalue;
//初始化一些常用
publicvoidinitConfig(){
SysConfig.DB_DRIVER_NAME=getValueByKey("
DB_DRIVER_NAME"
);
logger.info("
DB_DRIVER_NAME:
"
+SysConfig.DB_DRIVER_NAME);
SysConfig.CONNECTION_URL=getValueByKey("
CONNECTION_URL"
CONNECTION_URL:
+SysConfig.CONNECTION_URL);
SysConfig.DB_PASS=getValueByKey("
DB_PASS"
DB_PASS:
+SysConfig.DB_PASS);
SysConfig.DB_USER=getValueByKey("
DB_USER"
DB_USER:
+SysConfig.DB_USER);
SysConfig.VASPID=getValueByKey("
VASPID"
VASPID:
+SysConfig.VASPID);
/*
//读取properties的全部信息
publicstaticvoidreadProperties(StringfilePath){
Propertiesprops=newProperties();
InputStreamin=newBufferedInputStream(newFileInputStream(
filePath));
Enumerationen=props.propertyNames();
while(en.hasMoreElements()){
Stringkey=(String)en.nextElement();
Stringproperty=props.getProperty(key);
System.out.println(key+"
:
+property);
}
*/
}
2.SysConfig.JAVA类,用于保存配置文件里面的一些信息。
/**
*应用参数配置类完成彩信业务配置参数的配置和出始化,供业务逻辑实现过程中调用
*
*@authoryan
publicclassSysConfig{
publicSysConfig(){}
publicstaticStringVASID="
04220"
;
publicstaticStringVASPID="
818020"
publicstaticStringSERVICE_CODE="
01456"
publicstaticStringPROVISION_CMD="
dgtp"
publicstaticStringWEB_ROOT_PATH="
"
//网站的绝对路径
publicstaticStringOP_CODE="
00001"
publicstaticStringMM7_CONFIG_PATH="
publicstaticStringCONN_CONFIG_PATH="
publicstaticStringRESOURCE_PATH="
publicstaticStringSAVERES_PATH;
publicstaticStringSEPARATE="
"
//分隔符号
publicstaticlongSENDSLEEP=50;
//睡眠时间
publicstaticStringDB_DRIVER_NAME="
publicstaticStringCONNECTION_URL="
jdbc:
oracle:
thin:
@192.168.20.3:
1521:
tw"
publicstaticStringDB_USER="
mms"
publicstaticStringDB_PASS="
3.1.5项目初始化启动方法
1.有一些类,必须在项目启动的时候,最先启动。
例如,读取项目的配置文件类。
那么我们就把需要自动启动的类,写在一个初始化的类里面。
在WEB工程里面,最简单的自动启动就是用SERVLET实现了。
我们新建类:
InitServlet.java
packagecom.imti.servlet;
importjava.util.Timer;
importjavax.servlet.ServletContext;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importcom.conf.MmsConfigLoad;
importcom.conf.SysConfig;
importcom.imti.service.SendMmsServices;
*
publicclassInitServletextendsHttpServlet{
privatestaticfinalStringCONTENT_TYPE="
text/html;
charset=GBK"
privatestaticfinalLoggerlogger=Logger.getLogger(InitServlet.class);
publicvoidinit()throwsServletException{
ServletContextcontext=this.getServletConfig().getServletContext();
Stringpath=context.getRealPath("
/"
path=path.replaceAll("
\\\\"
"
//把路径都改成“/”
path:
+path);
//String
//path="
D:
/apache-tomcat-5.5.20/apache-tomcat-5.5.20/webapps/mmsIntac/"
//初始化彩信的路径
Stringmm7ConfigPath=path+"
WEB-INF/mm7Config.xml"
StringconnConfigPath=path+"
WEB-INF/ConnConfig.xml"
newMmsConfigLoad(path+"
WEB-INF/config.properties"
).initConfig();
//读取项目配置文件
SysConfig.WEB_ROOT_PATH=path;
//项目的初始化路径
mm7ConfigPath:
+mm7ConfigPath);
connConfigPath:
+connConfigPath);
SysConfig.MM7_CONFIG_PATH=mm7ConfigPath;
SysConfig.CONN_CONFIG_PATH=connConfigPath;
/*SysConfig.RESOURCE_PATH=path+"
ConfigBundlecf=newConfigBundle();
SysConfig.DB_DRIVER_NAME=cf.getString("
SysConfig.CONNECTION_URL=cf.getString("
SysConfig.DB_USER=cf.getString("
SysConfig.DB_PASS=cf.getString("
*/
//logger.info("
数据库配置初始化成功!
!
+DbUtil.getConn());
Timertimer=newTimer();
timer.schedule(newSendMmsServices(),10*1000,5*1000);
//在10秒后执行此任务,每次间隔5秒.
//newReceiverService().init();
logger.info("
所有初始化完成,发送彩信线程启动"
publicvoiddestory(){
2.在WEB.XML里面进行配置自动启动
initConf<
com.imti.servlet.InitServlet
2<
3.2彩信制作模块
3.2.1制作平台的简单功能图
同学们可以参考截图,到网络上面搜索一些资源,做一个类似的界面功能树形结构.
3.2.2新增彩信模块
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
gb2312"
%>
html>
head>
metahttp-equiv="
Content-Type"
content="
charset=gb2312"
>
styletype="
text/css"
--
@importurl("
../css/im.css"
body{
margin-left:
0px;
margin-top:
margin-right:
margin-bottom:
.style1{
color:
#FF0000
-->
/style>
scriptlanguage="
javascript"
type="
text/javascript"
functionshowPicture()
{
varfile=document.getElementById("
file0"
).value;
vard=/\.[^\.]+$/.exec(file);
//取文件扩展名
varflag=0;
switch(d[0].toLowerCase())
case"
.gif"
:
.bmp"
.jpg"
.png"
flag=1;
break;
if(flag==0)
alert("
只能上传bmp,gif,jpg,png图片文件!
return;
document.getElementById("
img1"
).src=file;
functionadd(){
form1.submit();
/script>
title>
新增彩信MMS<
/title>
/head>
body>
br>
formaction="
addMMSRes.jsp"
method="
post"
enctype="
multipart/form-data"
name="
form1"
tablewidth="
100%"
cellpadding="
1"
cellspacing="
<
trclass="
bg_tr"
<
tdwidth="
16%"
彩信标题
/td>
84%"
align="
left"
<
inputtype="
text"
mmsTile"
/tr>
td>
业务名称
tdalign="
selectname="
busiCode"
<
optionvalue="
130001"
湖南晨报
/option>
130002"
点播业务
/select>