发送短信和通用身份验证和用户注册系统消息提示功能模块,但是实现代码过于复杂。使用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. 007 字符串(keep it up)

    如果你有一个isSubstring函数.能够检測一个字符串是否是还有一个字符串的子串.  给出字符串s1和s2.仅仅使用一次isSubstring就能推断s2是否是s1的旋转字符串, 请写出代码.旋转 ...

  2. uva 11722 - Joining with Friend(概率)

    题目连接:uva 11722 - Joining with Friend 题目大意:你和朋友乘火车,而且都会路过A市.给定两人可能到达A市的时段,火车会停w.问说两人能够见面的概率. 解题思路:y = ...

  3. Hyper-V笔记

    Hyper-V的网络架设 Hyper-V中创建“虚拟网络”(可看成交换机)会在物理机中创建相应的虚拟网卡.Hyper-V安装好后会默认创建一个“本地连接-虚拟网络”对应的虚拟网卡给物理机使用,原本的本 ...

  4. Windows Phone开发(36):动画之DoubleAnimation

    原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要 ...

  5. Android DES加密的CBC模式加密解密和ECB模式加密解密

    DES加密共有四种模式:电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB). CBC模式加密: import java.security.Key; i ...

  6. JDBC连接数据库和释放连接

    用久了hibernate现在对于JDBC是怎么实现数据库的连接和释放,所以特地总结下关于JDBC的知识,目的是用于提醒自己很多Java的基础知识需要健全. package com.ssh.action ...

  7. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  8. 雷人的一幕:国外的codeproject论坛竟有人发“中文贴”.....

    潜水近一年,头一次见国人在此发“中文贴”,截图留个“纪念”....

  9. bnu1066

    hnu1066 给我们一张图,问我们摧毁边使得s和t不连通有多少种方案, 方案与方案之间不能存在相同的摧毁目标. 这是一个神奇的题目. 这题可以转为求s与t的最短路,为什么呢? 因为方案与方案之间不能 ...

  10. uva 10671 - Grid Speed(dp)

    题目链接:uva 10671 - Grid Speed 题目大意:给出N,表示在一个N*N的网格中,每段路长L,如今给出h,v的限制速度,以及起始位置sx,sy,终止位置ex,ey,时间范围st,et ...