前端获取表单数据提交到Servlet
$. post ( "registUserServlet" , $( this ) . serialize ( ) , function ( data) {
if ( data. flag == true ) {
location. href = "register_ok.html" ;
} else {
$( "#errorMsg" ) . html ( data. errorMsg) ;
}
}
接受表单提交内容的Servlet
Map < String , String [ ] > map = request. getParameterMap ( ) ;
User user = new User ( ) ;
try {
BeanUtils . populate ( user, map) ;
} catch ( IllegalAccessException e) {
e. printStackTrace ( ) ;
} catch ( InvocationTargetException e) {
e. printStackTrace ( ) ;
}
UserService service = new UserServiceImpl ( ) ;
boolean flag = service. regist ( user) ;
Service接口的操作类
@Override
public boolean regist ( User user) {
User u = userDao. findByUsername ( user. getUsername ( ) ) ;
if ( u != null ) {
return false ;
}
user. setCode ( UuidUtil . getUuid ( ) ) ;
user. setStatus ( "N" ) ;
userDao. save ( user) ;
String content = "<a href='http://http://localhost:8080/项目名/activeUserServlet?code=" + user. getCode ( ) + "'>点击激活</a>" ;
MailUtils . sendMail ( user. getEmail ( ) , content, "激活邮件" ) ;
return true ;
}
UuidUtil工具类
import java. util. UUID;
public final class UuidUtil {
private UuidUtil ( ) { }
public static String getUuid ( ) {
return UUID. randomUUID ( ) . toString ( ) . replace ( "-" , "" ) ;
}
public static void main ( String [ ] args) {
System . out. println ( UuidUtil . getUuid ( ) ) ;
System . out. println ( UuidUtil . getUuid ( ) ) ;
System . out. println ( UuidUtil . getUuid ( ) ) ;
System . out. println ( UuidUtil . getUuid ( ) ) ;
}
}
发送邮件的工具类
package cn. gs. travel. util ;
import javax. mail. * ;
import javax. mail. internet. InternetAddress ;
import javax. mail. internet. MimeMessage ;
import java. util. Properties ;
public final class MailUtils {
private static final String USER = "" ;
private static final String PASSWORD = "" ;
public static boolean sendMail ( String to , String text, String title) {
try {
final Properties props = new Properties ( ) ;
props. put ( "mail.smtp.auth" , "true" ) ;
props. put ( "mail.smtp.host" , "smtp.qq.com" ) ;
props. put ( "mail.user" , USER) ;
props. put ( "mail.password" , PASSWORD) ;
Authenticator authenticator = new Authenticator ( ) {
@Override
protected PasswordAuthentication getPasswordAuthentication ( ) {
String userName = props. getProperty ( "mail.user" ) ;
String password = props. getProperty ( "mail.password" ) ;
return new PasswordAuthentication ( userName, password) ;
}
} ;
Session mailSession = Session . getInstance ( props, authenticator) ;
MimeMessage message = new MimeMessage ( mailSession) ;
String username = props. getProperty ( "mail.user" ) ;
InternetAddress form = new InternetAddress ( username) ;
message. setFrom ( form) ;
InternetAddress toAddress = new InternetAddress ( to ) ;
message. setRecipient ( Message. RecipientType . TO, toAddress) ;
message. setSubject ( title) ;
message. setContent ( text, "text/html;charset=UTF-8" ) ;
Transport . send ( message) ;
return true ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
return false ;
}
public static void main ( String [ ] args) throws Exception {
MailUtils . sendMail ( "x@qq.com" , "你好,这是一封测试邮件,无需回复。" , "测试邮件" ) ;
System . out. println ( "发送成功" ) ;
}
}
点击激活,跳转到激活邮箱的Servlet
点击激活跳转的Servlet
String code = request. getParameter ( "code" ) ;
if ( code != null ) {
UserService service = new UserServiceImpl ( ) ;
boolean flag = service. active ( code) ;
String msg = null ;
if ( flag) {
msg = "激活成功,请<a href='login.html'>登录</a>" ;
} else {
msg = "激活失败,请联系管理员!" ;
}
response. setContentType ( "text/html;charset=utf-8" ) ;
response. getWriter ( ) . write ( msg) ;
}
Service接口的操作类激活方法
@Override
public boolean active ( String code) {
User user = userDao. findByCode ( code) ;
if ( user != null ) {
userDao. updateStatus ( user) ;
return true ;
} else {
return false ;
}
}
Dao操作数据库
@Override
public void updateStatus ( User user) {
String sql = "update tab_user set status = 'Y' where uid = ?" ;
template. update ( sql, user. getUid ( ) ) ;
}
激活完成
如有不懂,请留言