导入jar包
将这两个jar包放在web-inf的lib中
配置
- 在web.xml中配置
<servlet> <servlet-name>dwr</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
- 配置dwr.xml文件
自己建一个xml文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="sendVarifyCode">
<param name="class" value="类所在包以及类名"></param>
</create>
</allow>
</dwr>
- 写一个java类,这里写的是一个发送短信验证码的类可以看这里
package verify;
import java.util.HashMap;
import java.util.Random;
import com.zhenzi.sms.ZhenziSmsClient;
public class SendVarifyCode {
// @Test
// public void a() {
// SendVarifyCode sendVarifyCode = new SendVarifyCode();
// sendVarifyCode.send();
// }
public String send(String telCode) {
String apiUrl = "https://sms_developer.zhenzikj.com";
String appId = "你的应用名";
String appSecret = "你的密钥";
ZhenziSmsClient client = new ZhenziSmsClient(apiUrl, appId, appSecret);
HashMap<String, String> params = new HashMap<>();
String code = getVerifyCode();
System.out.println(code);
params.put("message", "卓越快递,最好的快递软件,您的验证码为: " + code);
params.put("number", telCode);
System.out.println(telCode);
try {
String result = client.send(params);
System.out.println(result);
return code;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("还是失败了");
return "失败啦";
}
}
private static String getVerifyCode() {
String ch = "1234567890";
String result = "";
Random random = new Random();
for (int i = 0; i < 4; i++) {
int index = random.nextInt(ch.length());
char c = ch.charAt(index);
result += c;
}
return result;
}
}
- 将项目部署到服务器上,在服务器上输入http://localhost:8080/项目名/dwr/
可以看到下面页面:
这时可以点击那个链接,可以看到具体的信息:
这里会出现三个< script>标签,要把它们复制到一会儿要用到的HTML文件中哦 - 在HTML文件中使用js引用SendVarifyCode的方法发送验证短信
var code;
function sendMessage(){
var telCode=document.getElementById("recipientphone").value;
alert("已发送验证码,请查收,您的手机号为"+telCode);
sendVarifyCode.send(telCode,callback);
}
function callback(data){
//alert(data);
code=data;
}
这里的调用出问题了,看到有大佬是这么说的
可是我的文件里面有引用外部jar包,没有办法拿出去编译嘤
运行就是这样,害,等我改出来我再过来改哈哈哈哈这么快我就改完啦,是因为我使用的第三方短信服务的包没有导到web-inf的lib下,可是我明明导到项目的lib下了,害,不过出来就是好的