发送短信和通用身份验证和用户注册系统消息提示功能模块,但是实现代码过于复杂。使用JSPGen后,深深发送消息、SMS程序包使复杂的简单非常活跃。

在短信模块:支持两种模式,它们被发送到第三方、地方平台发送,方式(採用本地平台发送时无需进行配置,依据短信发送接口文件重写相应实现类就可以)。

一、基础配置

jspgen-config.xml

在框架基础配置文件里,找到mail节点及sms节点,按例如以下配置:

    <!-- 邮件服务 -->
<mail status="true">
<smtp>
<!-- 发送类型(SMTP MX) -->
<type>SMTP</type>
<server>smtp.163.com</server>
<port>25</port>
<email>jspgen@163.com</email>
<name>JSPGen官网</name>
<username>jspgen</username>
<password>jspgen</password>
<!-- 内容格式(text html url) -->
<format>html</format>
<!-- 内容签名 -->
<sign>JSPGen-让Java(Web)软件开发变得更敏捷! www.JSPGen.com</sign>
</smtp>
</mail> <!-- 短信服务(http) -->
<sms status="true">
<!-- 提交地址及方式(GET POST) -->
<url>发送地址</url>
<method>GET</method>
<charset>UTF-8</charset>
<username>
<key>name</key>
<value>jspgen</value>
</username>
<password>
<key>password</key>
<value>jspgen</value>
</password>
<!-- 是否支持批量发送 -->
<mobile batch="false">
<key>mobile</key>
<gap>;</gap>
</mobile>
<content>
<key>msg</key>
</content>
<time>
<key>dtime</key>
<!-- 时间格式,为空则为Long型时间戳 -->
<format>yyyy-MM-dd HH:mm:ss</format>
</time>
<!-- 返回数据 -->
<return>
<!-- 返回格式(text xml json) -->
<format>text</format>
<!-- 返回keyword。格式为xml/json时实用 -->
<key>status</key>
<!-- 返回成功标识 -->
<value>0</value>
</return>
<!-- 内容签名 -->
<sign>【JSPGen】</sign>
</sms>

二、代码实现

1、SendAction.java

package demo.action;
import grapes.Dates;
import grapes.Files;
import grapes.Grapes;
import grapes.tools.Browser; import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jspgen.action.Action; /**
* Action类:邮件发送与短信发送
*
* @author JSPGen
* @copyright (c) JSPGen.com
* @created 2013年03月
* @email jspgen@163.com
* @address www.jspgen.com
*/
public class SendAction extends Action {
/**
* 默认方法
*/
@Override
public String execute() {
return "mail";
} /**
* 发送邮件提交
*/
public String mail () {
boolean isflag = false;
Long time = Dates.getTimeMillis();
String to = getParameter("to"); // 接收表单值(表单名称:to)
isflag = sendMail(to, getParameter("subject"), getParameter("content"), time); // 发送中
if(!isflag){
addActionError("发送失败!");
return ERROR;
}
addActionMessage("发送成功!");
return SUCCESS;
} /**
* 发送短信提交
*/
public String sms() {
boolean isflag = false;
Long time = Dates.getTimeMillis();
String to = getParameter("to"); // 接收表单值(表单名称:to)
isflag = sendSMS (to, getParameter("content"), time); // 发送中
if(!isflag){
addActionError("发送失败!");
return ERROR;
}
addActionMessage("发送成功!");
return SUCCESS;
}
}

2、mail.html 入口页面模板

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>邮件</title>
</head>
<body>
<h2>邮件发送</h2>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="send!mail.gen" method="post" name="form" id="form">
<tr>
<td width="135" height="35" align="right" bgcolor="#FFFFFF">收件地址:</td>
<td width="362" bgcolor="#FFFFFF"><input type="text" name="to" /></td>
</tr>
<tr>
<td width="135" height="35" align="right" bgcolor="#FFFFFF">信件主题:</td>
<td width="362" bgcolor="#FFFFFF"><input type="text" name="subject" /></td>
</tr>
<tr>
<td width="135" height="93" align="right" valign="middle" bgcolor="#FFFFFF">信件内容:</td>
<td width="362" valign="middle" bgcolor="#FFFFFF"><textarea name="content" cols="50" rows="5"></textarea></td>
</tr>
<tr>
<td height="50" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
<input name="redirectUrl" type="hidden" id="redirectUrl" value="send.gen" />
<input type="submit" name="button" id="button" value="发送" />
              
<input type="reset" name="button2" id="button2" value="重置" /></td>
</tr>
</form>
</table>
<h2>短信发送</h2>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="send!sms.gen" method="post" name="form2" id="form2">
<tr>
<td width="135" height="35" align="right" bgcolor="#FFFFFF">手机号码:</td>
<td width="362" bgcolor="#FFFFFF"><input name="to" type="text" id="to" /></td>
</tr>
<tr>
<td width="135" height="93" align="right" valign="middle" bgcolor="#FFFFFF">短信内容:</td>
<td width="362" valign="middle" bgcolor="#FFFFFF"><textarea name="content" cols="50" rows="5" id="content"></textarea></td>
</tr>
<tr>
<td height="50" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><input name="redirectUrl" type="hidden" id="redirectUrl" value="send.gen" />
<input type="submit" name="button3" id="button3" value="发送" />
              
<input type="reset" name="button3" id="button4" value="重置" /></td>
</tr>
</form>
</table>
</body>
</html>

三、測试

浏览器中直接输入:http://localhost:8080/jspgensdf/send.gen

注意:163刚注冊的账号无法发送,好像须要过两个月后才干够使用,能够自行搭建一个邮件服务环境,进行測试。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输的更多相关文章

  1. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  2. 疯狂学习java web

    因工作需要,疯狂学习java web,只是这么多年一直从事C++开发,突然之间要接手同事的那么一大堆代码,真有无从下手的感觉,首先是要学习html,然后是js, 然后是jsp,当然还有各种框架,想想就 ...

  3. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  4. 学习Java Web开发

    学习DreamWaveMX中文版的网页设计技术 HTML网页设计,这是最基本的.学习XML的一些基本知识.初步掌握一些JSCRIPT的应用. 学习JAVA语言. 这应该分成2次来进行: 第1次找一本国 ...

  5. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  6. 第三周学习java第四章学习总结及体会!

    第三周java 2第四章的学习总结: 一.主要内容(类与对象): 1.类: 2.构造方法与对象的创建: 3.类与程序的基本结构: 4.参数传值: 5.对象的组合: 6.实例成员与类成员: 7.方法重载 ...

  7. 系统学习 Java IO (四)----文件的读写和随机访问 FileInputStream/FileOutputStream & RandomAccessFile

    目录:系统学习 Java IO---- 目录,概览 文件输入流 FileInputStream 这是一个简单的FileInputStream示例: InputStream input = new Fi ...

  8. java web(四):request、response一些用法和文件的上传和下载

    上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...

  9. Java Web(四) 过滤器Filter

    Filter概述 Filter意为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改.Filter提出了过滤链的概念.一个FilterChain包括多个Filter. ...

随机推荐

  1. 用XAML做网页!!—导航栏

    原文:用XAML做网页!!-导航栏 这次要完成的是导航栏,这是页面中比较复杂的区域. 先在 Microsoft Expression Design 中绘制导航栏的背景图案: 导出为barback.xa ...

  2. ecshop 后台添加 成本价 利润

    ecshop后台admin中的商品操作php文件,goods.php替换为下面的代码, 还要在数据库商品本店售价后门添加  cost  字段 为 商品成本价 ecs_goods表中添加  cost  ...

  3. HDU 4126 Genghis Khan the Conqueror MST+树形dp

    题意: 给定n个点m条边的无向图. 以下m行给出边和边权 以下Q个询问. Q行每行给出一条边(一定是m条边中的一条) 表示改动边权. (数据保证改动后的边权比原先的边权大) 问:改动后的最小生成树的权 ...

  4. 关于埃博拉(Ebola)基础研究病毒

    关于埃博拉(Ebola)病毒的基础研究 2005年.美国哈佛大学医学研究院(Harvard Medical School)James Cunningham教授关于埃博拉病毒有一项基础研究,研究成果发表 ...

  5. Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket

    Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket 特征 ...

  6. hdu1011(树形背包)

    hdu1011 http://acm.hdu.edu.cn/showproblem.php?pid=1011 给定n个洞穴和m个士兵(每个士兵能消灭20个bugs) 然后给定每个洞穴的bugs数量(背 ...

  7. 记一个Oracle存储过程错误

    下面一个存储过程是创建一个job,在5秒后更新一个表: create or replace PROCEDURE P_TEST AS jobno number; BEGIN dbms_job.submi ...

  8. iOS 通过HEX(十六进制)得到一个UIColor的对象

    inline static UIColor* getColorFromHex(NSString *hexColor) { if (hexColor == nil) { return nil; } un ...

  9. ASP.Net 重写IHttpModule 来拦截 HttpApplication 实现HTML资源压缩和空白过滤

    务实直接上代码: 1. 重写FilterModule.cs using System; using System.Collections.Generic; using System.Linq; usi ...

  10. OpenStack Dashboard

    OpenStackDashboard 为管理员和普通用户提供了一个图形化管理界面.用户能够通过该界面訪问.分配或者自己主动化分配基于云的资源.可扩展的设计使得与第三方产品和服务融合变得非常easy,比 ...