彩信平台实践.docx

上传人:小飞机 文档编号:5285342 上传时间:2023-06-22 格式:DOCX 页数:69 大小:121.42KB
返回 下载 相关 举报
彩信平台实践.docx_第1页
第1页 / 共69页
彩信平台实践.docx_第2页
第2页 / 共69页
彩信平台实践.docx_第3页
第3页 / 共69页
彩信平台实践.docx_第4页
第4页 / 共69页
彩信平台实践.docx_第5页
第5页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《彩信平台实践.docx》由会员分享,可在线阅读,更多相关《彩信平台实践.docx(69页珍藏版)》请在三一办公上搜索。

1、彩信项目目录1 背景42 概述43 系统结构43.1 新建与配置项目53.1.1 构建自己的项目53.1.2 配置自己的工程项目的LOG4J53.1.3 配置项目项目过滤器63.1.4 自己工程配置文件读取类73.1.5 项目初始化启动方法103.2 彩信制作模块123.2.1 制作平台的简单功能图123.2.2 新增彩信模块133.2.2.1 创建addMMS.jsp,用于方便用户制作彩信,把用户上传的图片,文本制作为一个简单的彩信,此界面只提供一帧彩信制作功能,请同学们实现 可以制作多帧彩信的功能。AddMMS.JSP代码如下:133.2.2.2 addMMSRes.jsp,用于接收用户制

2、作彩信的资源,并把资源生产为一个完整的彩信,把彩信存的mmsRes的目录下面。163.2.2.3 建立存储彩信的数据库表:203.2.2.4 在 com.imti.model 建立封装彩信的 body 类 MmsBody.java .213.2.2.5 在 com.imti.mode包里面建立彩信封装类,MmsPackage.java.243.2.2.6 在包com.imti.web里面创建类MmsMake.JAVA.用于彩信制作里面,一些彩信制作过程中的业务逻辑处理。263.2.3 查看彩信313.2.3.1 查看彩信记录:viewMMS.jsp313.2.3.2 查看彩信:mmsEdit.

3、jsp343.2.3.3 创建视图,查看一条完整彩信353.2.4 包月用户查看353.2.5 点播用户查看353.2.6 下行彩信测试353.2.6.1 下行彩信页面:mtTest.jsp353.2.6.2 下行测试逻辑处理页面:mtTestRes.jsp383.2.6.3 逻辑处理类:mtService.JAVA393.2.7 下行彩信统计403.2.8 新增彩信群发任务403.2.8.1 建立好数据库表403.2.8.2 在制作管理平台页面上,新增addGroup.jsp。这个页面主要方便用户预定彩信的群发任务。定时发送某条信息。413.2.8.3 增加彩信群发入库过程413.2.8.4

4、 在 MODEL 包,建立类 MmsGroup.java413.2.8.5 在包 service 里面建立类 GroupService.JAVA413.2.8.6 新增 addGroupRes.jsp,保存群发任务423.2.8.7 学习使用JOB处理443.2.9查看彩信群发任务443.3 彩信发送443.3.1 发送设计思想443.3.2 库表创建453.3.3 下行彩信封装类 MmsMtInfo.java463.3.4 彩信发送业务逻辑处理类:SendMmsServices.java473.4 彩信的接收563.4.1 接收类 ReceiverService.JAVA563.4.2 WE

5、B.XML里面进行配置654业务处理模块664.1.1 学习使用存储过程处理业务664.1.2 业务处理过程参考66Vishine 短信平台(V1.0)1背景2概述3系统结构3.1新建与配置项目3.1.1构建自己的项目1.给自己的平台取一个名称,如我建的工程:mmsplantform2.构建一些常用的类包,如:*- a-.B-s-:田-com. confcom. imti. eervlet com. imti. util com. imti.web包名称都有特殊含义,方便自己记忆。例如我的com.conf包里面, 放置一些我们这个项目的一些配置文件读取类。Com.imti.servlet 包我

6、放置一些初始化的servlet,业务处理servlet。Com.imti.util 包里面放置一些工具类,用于整个项目的。3.在webRoot下面建立一些文件夹:国:E-:国:3:国:cssimgMETA-IHF rririiERes E-fa. Pa?e m WEB-IHFCSS文件夹放本工程的一些公共css文件。Img放置一些图片。JS放置一些 JAVASCRIPT文件。Logs放置一些运行时候的日志文件。mmsRes 放置一些彩信数据包。Page放置一些JSP3.1.2配置自己的工程项目的LOG4J我用的Log4J是spring框架里面已经实现的类。只要学习怎么使 用,变成自己的东西。方

7、便日后编程,走捷径。1.在工程的web.xml里面加上如下配置。log4jConfigLocation/WEB-INF/log4j.xmlwebAppRootKeyMMSROOTlog4jInitServletorg.springframework.web.util.Log4jConfigServlet12. LOG4的使用方法private static final Logger logger = Logger.getLogger(className.class);3.1.3配置项目项目过滤器这样就可以减少由于编码不统一造成乱码麻烦,减少我们项目代码量1.在WEB.XML里面添加如下代码en

8、codingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingGB2312encodingFilter/*.3.1.4自己工程配置文件读取类L MmsConfigLoad.java 类用于读取自己工程的配置文件。这样,项目 里面一些需要灵活配置的东西,就可以放到配置文件里面。例如: 数据库的连接配置文件,或者一些常用的SQL。我们工程的配置 文件是在 WEB-INF 目录下面的:config.properties package com.conf;import java.io.BufferedInputStr

9、eam;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.util.Enumeration;import java.util.Properties;import org.apache.log4j.Logger;public class MmsConfigLoad private static final Logger logger Logger.getLogger(MmsConfigLoad.class);static / 根据 k

10、ey 读取 valueProperties props;InputStream in;/读取项目的配置文件到Propertiespublic MmsConfigLoad(String filePath) props = new Properties();try in = new BufferedInputStream(newFileInputStream(filePath);props.load(in);in.close(); catch (Exception e) (/ TODO Auto-generated catch block e.printStackTrace();/读取Proper

11、ties里面的的属性值public String getValueByKey(String key) String value = props.getProperty(key); return value;/初始化一些常用public void initConfig()SysConfig.DB_DRIVER_NAME=getValueByKey(DB_DRIVER_N AME);logger.info(DB_DRIVER_NAME:+SysConfig.DB_DRIVER_NAME);SysConfig.CONNECTION_URL=getValueByKey(CONNECTION URL);

12、logger.info(CONNECTION_URL:+SysConfig.CONNECTION_URL);SysConfig.DB_PASS=getValueByKey(DB_PASS);logger.info(DB_PASS: +SysConfig.DB_PASS);SysConfig.DB_USER=getValueByKey(DB_USER);logger.info(DB_USER: +SysConfig.DB_USER);SysConfig.VASPID=getValueByKey(VASPID);logger.info(VASPID: +SysConfig.VASPID);/*/读

13、取properties的全部信息 public static void readProperties(String filePath) Properties props = new Properties();try InputStream in = new BufferedInputStream(new FileInputStream(filePath);props.load(in);Enumeration en = props.propertyNames();while (en.hasMoreElements() String key = (String) en.nextElement();

14、String property = props.getProperty(key);System.out.println(key + : + property);in.close(); catch (Exception e) e.printStackTrace();*/2. SysConfig.JAVA类,用于保存配置文件里面的一些信息。package com.conf;/*应用参数配置类完成彩信业务配置参数的配置和出始化,供业务逻辑实现过程中调 用* author yan*/public class SysConfig public SysConfig() public static Stri

15、ng VASID = 04220”;public static String VASPID = 818020”;public static String SERVICE_CODE = 01456;public static String PROVISION_CMD = dgtp”;public static String WEB_ROOT_PATH = ;/网站的绝对路径public static String OP_CODE = 00001”;public static String MM7_CONFIG_PATH =;public static String CONN_CONFIG_PAT

16、H = ;public staticStringRESOURCE_PATH=;public staticStringSAVERES_PATH;public staticStringSEPARATE=,;/分隔符号public static long SENDSLEEP=50;/睡眠时间public static String DB_DRIVER_NAME =;publicstaticStringCONNECTION_URL”jdbc:oracle:thin:192.168.20.3:1521:tw”;public static String DB_USER = mms;public stati

17、c String DB_PASS = mms;3.1.5项目初始化启动方法1.有一些类,必须在项目启动的时候,最先启动。例如,读取项目 的配置文件类。那么我们就把需要自动启动的类,写在一个初始 化的类里面。在WEB工程里面,最简单的自动启动就是用SERVLET 实现了。我们新建类:InitServlet.javapackage com.imti.servlet;import java.util.Timer;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.

18、http.HttpServlet;import org.apache.log4j.Logger;import com.conf.MmsConfigLoad;import com.conf.SysConfig;import com.imti.service.SendMmsServices;/* author yan*/public class InitServlet extends HttpServlet private static final String CONTENT_TYPE = text/html;charset=GBK;private static final Logger log

19、ger = Logger.getLogger(InitServlet.class);public void init() throws ServletException ServletContext context = this.getServletConfig().getServletContext();String path = context.getRealPath(7);path=path.replaceAll(,/); /把路径都改成 “/” logger.info(path:+path);/ String/path=D:/apache-tomcat-5.5.20/apache-to

20、mcat-5.5.20/webapps/mmsIntac/;/初始化彩信的路径String mm7ConfigPath = path + WEBTNF/mm7Config.xml; String connConfigPath = path + WEB-INF/ConnConfig.xml”;new MmsConfigLoad(path+WEBTNF/config.properties).initConfig() ;/读取 项目配置文件SysConfig.WEB_ROOT_PATH=path;/项目的初始化路径logger.info(mm7ConfigPath: + mm7ConfigPath)

21、; logger.info(connConfigPath: + connConfigPath);SysConfig.MM7_CONFIG_PATH = mm7ConfigPath;SysConfig.CONN_CONFIG_PATH = connConfigPath;/*SysConfig.RESOURCE_PATH = path + ”;ConfigBundle cf=new ConfigBundle();SysConfig.DB_DRIVER_NAME = cf.getString(DB_DRIVER_NAME);SysConfig.CONNECTION_URL = cf.getStrin

22、g(CONNECTION_URL);SysConfig.DB_USER = cf.getString(DB_USER);SysConfig.DB_PASS = cf.getString(DB_PASS);*/logger.info(数据库配置初始化成功! ! ! ! +DbUtil.getConn();Timer timer = new Timer();timer.schedule(new SendMmsServices(), 10*1000, 5*1000);/在 10 秒后执 行此任务,每次间隔5秒./ new ReceiverService().init();logger.info(所有

23、初始化完成,发送彩信线程启动);public void destory() 2.在WEB.XML里面进行配置自动启动initConfcom.imti.servlet.InitServlet23.2彩信制作模块3.2.1制作平台的简单功能图同学们可以参考截图,到网络上面搜索一些资源,做一个类似的界 面功能树形结构.全开全关到彳IMTI彩.信制作管理平台 -&莪信制作断增彩信-:e)订购用户管理 包月用户查看Lo点播用户查看- 下行彩信管理 下行彩信删试:下行彩信统计 -(与包月用户彩信群发I-L.新增群发任务 查看鲜发任案 房白系统配置管理! 1】.口 ;彩信标题1业宓名称湖南晨报二1.褥信类型

24、related1文本J3.2.2新增彩信模块匹1=13.2.2.1创建addMMS.jsp,用于方便用户制作彩信,把用户上传的图 片,文本制作为一个简单的彩信,此界面只提供一帧彩信制 作功能,请同学们实现可以制作多帧彩信的功能。AddMMS.JSP代码如下: function showPicture()var file=document.getElementById(file0”).value;var d=/.+$/.exec(file); /取文件扩展名var flag=0;switch(d0.toLowerCase(),厂case .gif:case ”.bmp”:case .jpg:ca

25、se .png:flag=l;break;if(flag=0)alert(只能上传 bmp,gif,jpg,png 图片文件!”);return;document.getElementById(img1”).src=file;function add()form1.submit();title新增彩信 MMS 彩信标题业务名称湖南晨报 点播业务 彩信类型related 文本 图片 3.2.2.2addMMSRes.jsp,用于接收用户制作彩信的资源,并把资源生产为一个完整的彩信,把彩信存的mmsRes的目录下面。 (上传附件%int count=0;String filepath=,txtfi

26、lename=,imgfilename=”;boolean success=false;mySmartUpload.initialize(pageContext);/初 始化trymySmartUpload.upload();/ 上传文件mySmartUpload.setMaxFileSize(100*1024);/上传文件的大小 100K设定允许上传的文件(通过扩展名限制),仅允许gif,jpg文件 mySmartUpload.setAllowedFilesList(gif,jpg);设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, /jsp,htm,html扩展名的文件和

27、没有扩展名的文件。mySmartUpload.setDeniedFilesList(exe,bat);创建文件目录/fileDir = makeDir.makeDir(FalgCount.INFOUPFILEPATH);/创建文件目录/imageDir = makeDir.makeDir(FalgCount.INFOUPIMAGEPATH);/逐一提取上传文件信息,同时可保存文件。out.println(彩信:+mySmartUpload.getRequest().getParameter(mmsTile);String dirName=DateUtil.getTimeStamp_rom();

28、/ 目录名称MmsPackage mmsPackage= new MmsPackage();mmsPackage.setTitle(mySmartUpload.getRequest().getParameter(mmsTile);/保 存彩信标题mmsPackage.setBusiCode(mySmartUpload.getRequest().getParameter(busiCode);/ 保存 业务代码mmsPackage.setMmsType(mySmartUpload.getRequest().getParameter(mmsType);/保存 彩信的类Vector Vbody=new

29、 Vector();String smil=n;smil+=n;smil+=nn;smil+=n;smil+=n;smil+=n;smil+=n;smil+=”;/逐一提取上传的彩信附件for (int i=0,j=0;imySmartUpload.getFiles().getCount();i+) smil+=”;txtfilename = /mmsRes/+dirName+n/;/生 成唯一的文件名 Stringcontext=mySmartUpload.getRequest().getParameter(textContent+String.valueOf(i);if(context!=

30、null & !context.equals() txtfilename+=txt+String.valueOf(i)+.txt”; newFileUtil().writeFile(SysConfig.WEB_ROOT_PATH+txtfilename,context); 把文本保存到硬 盘目录MmsBody body = new MmsBody();/把彩信 TXT 附件保存到 BODYbody.setFileName(txt+String.valueOf(i)+.txt);body.setFileType(text/plain);body.setFileUrl(txtfilename);V

31、body.add(body);smil+=; smil+=n;com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i); / 接收当 前文件/保存文件if (!myFile.isMissing() (/若上传的文件存在则继续imgfilename=/mmsRes/+dirName+/img+String.valueOf(i)+.”+myFile.getFileExt();src=img+String.valueOf(i)+.”+myFile.getFileExt()+myFile.saveAs(imgfilena

32、me,mySmartUpload.S冲E_VIRTUAL);smil+=”;smil+=n;/*/MmsBody body = new MmsBody();/把彩信 TXT 附件保存到 BODYbody.setFileName(img+String.valueOf(i)+.”+myFile.getFileExt(); body.setFileType(image/+myFile.getFileExt();body.setFileUrl(imgfilename);Vbody.add(body);/*/out.println(文件名=+ myFile.getFieldName() + );out.

33、println(文件大小=+ myFile.getSize() + );out.println(文件类型=+ myFile.getFileExt() + );smil+=”;smil+=”;String smilfilename=/mmsRes/+dirName+/smil.smil;new FileUtil().writeFile(SysConfig.WEB_ROOT_PATH+smilfilename,smil);/ 把SMIL文本保存到硬盘目录3/*/MmsBody body = new MmsBody();/把彩信 TXT 附件保存到 BODYbody.setFileName(smil

34、.smil);body.setFileType(application/smil);body.setFileUrl(smilfilename);Vbody.add(body);mmsPackage.setBody(Vbody);3力力力力力力力力力力力力力“/*保 存e力力、mmmmu, $ $ $ $ $ $ $ $ $ $ $ $ $ $ $力力力力力力力力, */new MmsMake().saveMMS(mmsPackage);/*/success=true;catch(Exception e)( e.printStackTrace();finally(if(success)(out.print(alert(上 传成功);else(out.print(alert(上 传失败);out.println(count + file(s) uploaded.);%input type=button name=back onclick=window.back()style=cursor:hand class=buttonActive1 value=返回 meta http-equi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号