与阿根廷一起学习Java Web四个发展:对于信息传输和信息传输
发送短信和通用身份验证和用户注册系统消息提示功能模块,但是实现代码过于复杂。使用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四个发展:对于信息传输和信息传输的更多相关文章
- 零基础如何系统学习Java Web
零基础如何系统学习Java Web? 我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...
- 疯狂学习java web
因工作需要,疯狂学习java web,只是这么多年一直从事C++开发,突然之间要接手同事的那么一大堆代码,真有无从下手的感觉,首先是要学习html,然后是js, 然后是jsp,当然还有各种框架,想想就 ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
- 学习Java Web开发
学习DreamWaveMX中文版的网页设计技术 HTML网页设计,这是最基本的.学习XML的一些基本知识.初步掌握一些JSCRIPT的应用. 学习JAVA语言. 这应该分成2次来进行: 第1次找一本国 ...
- 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程
在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1 哪些知识点 ...
- 第三周学习java第四章学习总结及体会!
第三周java 2第四章的学习总结: 一.主要内容(类与对象): 1.类: 2.构造方法与对象的创建: 3.类与程序的基本结构: 4.参数传值: 5.对象的组合: 6.实例成员与类成员: 7.方法重载 ...
- 系统学习 Java IO (四)----文件的读写和随机访问 FileInputStream/FileOutputStream & RandomAccessFile
目录:系统学习 Java IO---- 目录,概览 文件输入流 FileInputStream 这是一个简单的FileInputStream示例: InputStream input = new Fi ...
- java web(四):request、response一些用法和文件的上传和下载
上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...
- Java Web(四) 过滤器Filter
Filter概述 Filter意为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改.Filter提出了过滤链的概念.一个FilterChain包括多个Filter. ...
随机推荐
- MYSQL查询一周内的数据(最近7天的)、最近一个月、最近三个月数据
如果你要严格要求是某一年的,那可以这样 查询一天: select * from table where to_days(column_time) = to_days(now()); select * ...
- WPF界面设计技巧(4)—自定义列表项样式
原文:WPF界面设计技巧(4)-自定义列表项样式 有前面修改按钮样式的基础,我们可以尝试来定制一个即好看又好用的 ListBox ,今天先来讲“好看”部分. 打开 Microsoft Visual S ...
- Jetty 9.3庆祝20周年生日快乐,并添加HTTP/2支持
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systems 今年6月12日 ...
- Ansible@一个高效的配置管理工具--Ansible configure management--翻译(八)
如无书面授权,请勿转载 第四章,大型项目中Ansible的使用 Roles If your playbooks start expanding beyond what includes can hel ...
- 使用Sublime Text 2编辑和运行node-webkit应用程序
开发工具目录结构 --E:\develop\ ----node-webkit-v0.9.2-win-ia32 ----Sublime Text 2.0.2 x64 为Sublime text2构建Bu ...
- sqlalchemy操作
Sqlalchemy ORM操作归类 #简单查询 #注意User是一个类对象,user_table是数据库中的表 #session = sessionmaker() #创建了一个自己定义了的 Sess ...
- HiPAC高性能规则匹配算法之查找过程
收到一封邮件,有位朋友认为我误解了nf-HiPAC.如此的一个高性能算法怎能被什么传统的hash,tree之类的胁迫.是啊.HiPAC是一个非常猛的算法.文档也比較少,这就更加添加了其神奇感,可是这决 ...
- ORACLE 中的 锁 介绍
ORACLE 中的 锁 介绍 Oracle数据库支持多个用户同时与数据库进行交互,每个用户都可以同时运行自己的事务,从而也需要对并发访问进行控制.Oracle也是用“锁”的机制来防止各个事务之间的相互 ...
- 很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)
<西游记>中的唐僧团队历经千难万险,终于求得真经,目标明确.分工合理为这支队伍最终走向成功奠定了基础.唐僧从一开始,就为这个团队设定了西天取经的目标,虽然经历各种挫折与磨难,但目标从未动摇 ...
- 【解决】/usr/bin/ld: cannot find -lc
现象:运行gcc静态编译程序时报错: /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit statusmake: *** [gcc_dr ...