Java jdbc+servlet+jsp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:servlet+jsp+jdbc
作者:LYG
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public class MailUtil{
private String strfrom = "1234567@qq.com";// 发件人的电子邮件
private String password="bibffrqhfddqbeba";//授权码
/**
* 设置简单的发送内容
* @param 收件人的电子邮件
* @return
*/
@SuppressWarnings("finally")
public boolean mail1(String strto1,HttpServletRequest request,HttpServletResponse response){
boolean status=false;
String title="韩国唯丝普注册";//标题
String randomNum=RandomNumberUtil.getRandonString(4);
HttpSession session1=request.getSession(true);
session1.setAttribute("randomNum", randomNum);
session1.setMaxInactiveInterval(60);//second
String content="你好,您正在注册韩国唯丝普,验证码为";// 内容
String content2=" (该验证码在60秒内有效,60秒后需要重新获取)";
try {
Properties props = new Properties();
//开启ssl加密,如果没有ssl加密,会报530错误
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
// props.put("mail.smtp.port", "587");
props.setProperty("mail.smtp.auth", "true");//必须 普通客户端
props.setProperty("mail.transport.protocol", "smtp");//必须选择协议
Session session = Session.getDefaultInstance(props);
session.setDebug(true);//设置debug模式 在控制台看到交互信息
Message msg = new MimeMessage(session); //建立一个要发送的信息
msg.setSubject(title);
// msg.setText(content);
msg.setContent(content+"<a href='javascript:void(0);'>"+randomNum+"</a>"+content2, "text/html;charset=gbk");
msg.setFrom(new InternetAddress(strfrom));//发件人邮箱号
Transport transport = session.getTransport();//发送信息的工具
transport.connect("smtp.qq.com", 465, strfrom, password);//发件人邮箱号 和密码
transport.sendMessage(msg, new Address[] { new InternetAddress(strto1) });//对方的地址
transport.close();
status=true;
} catch (MessagingException e) {
e.printStackTrace();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} finally{
return status;
}
}
//登录验证
public void loginClient(HttpServletRequest request,HttpServletResponse response){
String status="false";
try {
String postbox=request.getParameter("postbox").trim();
String name=request.getParameter("name");
String age=request.getParameter("age");
String sex=request.getParameter("sex");
String identify_code=request.getParameter("identify_code");
Integer sex_id=2;
if(Integer.parseInt(sex)==1){sex_id=1;}
String token=request.getParameter("token");
//session
String sessiontoken=(String) request.getSession().getAttribute("clientToken");
if (token!=null && token.equals(sessiontoken)) {
request.getSession().removeAttribute("clientToken");
if(Tools.isNotNull(postbox) && Tools.isNotNull(name) && Tools.isNotNull(age) && Tools.isNotNull(identify_code)){
if(Tools.isTelephone(postbox) || Tools.isEmail(postbox)){
String sessionrandomNum="";
if(request.getSession().getAttribute("randomNum")!="" && request.getSession().getAttribute("randomNum")!=null){
sessionrandomNum=(String) request.getSession().getAttribute("randomNum");
sessionrandomNum=sessionrandomNum.toUpperCase();//大写 小写toLowerCase
}
identify_code=identify_code.toUpperCase();
//if(sessionrandomNum.equals(identify_code)){ //获取qq邮箱判断是否正确
request.getSession().removeAttribute("clientToken");
ICustomerService iCustomerService=new CustomerServiceImpl();
CustomerPo customerPo=iCustomerService.login(postbox,name);
if(customerPo!=null){
if(customerPo.getName().equals(name.toString()) &&
customerPo.getAge().equals(Integer.parseInt(age)) &&
customerPo.getSex_id().equals(sex_id)){
if(SessionListener.isLoginUser(name)){//判断此用户名是否在监听器的map集合中,在则表明该用户已登录
status="您已在其他地方登录!";
}else{
request.getSession().setAttribute("dbCustomer", customerPo);
request.getSession().setAttribute("user", name);
status="true";
}
}else{
status="输入的信息有误!";
}
}else{//新增当前用户,为临时用户
status="没有该用户信息!";
}
/*}else{
status="验证码错误,请重新获取!";
}*/
}else{
status="输入的邮箱/电话有误!";
}
}else{
status="请输入完整的信息!";
}
}else{
status="请勿重复提交!";
}
request.getSession().removeAttribute("randomNum");
request.getSession().setAttribute("strMsg", status);
request.getRequestDispatcher("/jsp-client/main.jsp").forward(request, response);
} catch (IOException e) {
e.printStackTrace();
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
效果
QQ邮箱获取QQ邮箱验证码 先进入官方网站申诉,申诉成功会发送验证码给你,打开与你QQ绑定的邮箱,查看新邮件,就会出现验证码了。 当你的QQ不在线或设置没有弹窗提醒,你可以通过QQ面板的邮箱快捷按钮进入邮箱,进入后可以点击未读邮件或收件箱查找验证邮件