javascript
java邮箱找回密码_Spring实现简单的邮箱找回密码功能
通過spring可以實現(xiàn)簡單的郵箱找回密碼的功能,在此做一下簡單的筆記。
1.首先就是導(dǎo)入一些相關(guān)的jar包
2.加入配置文件,具體配置信息如下:
encoding="UTF-8"?>
/p>
2.0//EN"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
smtp.163.com
name="javaMailProperties">
key="mail.smtp.auth">true
java19881012@163.com
郵箱密碼
class="org.springframework.mail.SimpleMailMessage">
java19881012@163.com
湖南工程學(xué)院基建處后臺管理找回密碼
class="com.hnie.utils.MailSenderJob">
name="mailMessage">
name="mailSender">
3.寫好配置文件后就再建立發(fā)送郵件的工具類com.hnie.utils.MailSenderJob
package
com.hnie.utils;
import
org.springframework.mail.MailSender;
import
org.springframework.mail.SimpleMailMessage;
public
class MailSenderJob {
private
static final long serialVersionUID = 1L;
private
MailSender mailSender;
private
SimpleMailMessage mailMessage;
public
void sendMail(String emal, String text) {
//
收件人的郵箱
mailMessage.setTo(emal);
SimpleMailMessage
message = new SimpleMailMessage(mailMessage);
message.setText(text);
mailSender.send(message);
}
public
MailSenderJob() {
}
public
MailSender getMailSender() {
return
mailSender;
}
public
void setMailSender(MailSender mailSender) {
this.mailSender
= mailSender;
}
public
SimpleMailMessage getMailMessage() {
return
mailMessage;
}
public
void setMailMessage(SimpleMailMessage mailMessage) {
this.mailMessage
= mailMessage;
}
}
4.寫好工具類后就可以在action處理具體的業(yè)務(wù)操作了。在這里找回密碼的方式是通過給用戶郵箱發(fā)送一個驗證碼(驗證碼是一個隨機的六位數(shù),將其放在session中,存活周期設(shè)為半個小時),通過驗證碼后再修改密碼,本實例是使用了strut1,具體的配置如下
path="/mail/findPass" name="userForm" scope="request"
parameter="method">
name="find"
path="/page/control/findpass/findPwd.jsp"/>
name="update"
path="/page/control/findpass/findPwd2.jsp"/>
Action處理類
@Controller("/mail/findPass")
public
class MailPassAction extends DispatchAction {
@Resource(name
= "userServiceBean")
private
UserService userService;
public
ActionForward sendPass(ActionMapping mapping, ActionForm
form,
HttpServletRequest
request, HttpServletResponse response) throws Exception
{
UserForm
formbean = (UserForm) form;
User
user=null;
try
{
user =
userService.findByloginid(formbean.getLoginid());
} catch
(Exception e) {
request.setAttribute("mess",
"輸入信息不合法!");
return
mapping.findForward("find");
}
//
創(chuàng)建一個session
HttpSession
session = request.getSession();
String
sessionId = session.getId();
//
將sessionId寫到cookie中
Cookie
cookie = new Cookie("JSESSIONID", sessionId);
cookie.setMaxAge(30
* 60);
response.addCookie(cookie);
//
向session放入隨即數(shù)
String
random = getRandomNum() + "";
session.setAttribute("random",
random);
//從spring中獲取bean
ApplicationContext
cxt = new ClassPathXmlApplicationContext("beans.xml");
MailSenderJob
send = (MailSenderJob) cxt.getBean("sender");
if
(user != null) {
//
將隨機數(shù)發(fā)送到郵件中,內(nèi)容是一個網(wǎng)址,包括用戶id和用戶類型
String
url = request.getRequestURL().toString()
+
"?method=update&&loginid=" +
formbean.getLoginid();
String
text = user.getUsername() + "您好,您本次修改密碼的隨機數(shù)是" +
random
+
",有效時間為半小時,請點擊"
+ url + "進行密碼修改。";
try
{
send.sendMail(user.getEmail(),
text);
request.setAttribute("mess","驗證碼已發(fā)送到郵箱,請登錄郵箱進行密碼修改!");
return
mapping.findForward("find");
} catch
(Exception e) {
request.setAttribute("mess",
"網(wǎng)絡(luò)異常,郵件發(fā)送失敗,請重新發(fā)送");
return
mapping.findForward("find");
}
} else
{
request.setAttribute("mess",
"輸入信息不合法!");
return
mapping.findForward("find");
}
}
//
隨即生成六位數(shù)
private
int getRandomNum() {
Random
r = new Random();
return
r.nextInt(900000) + 100000;
}
//修改密碼
public
ActionForward update(ActionMapping mapping, ActionForm
form,
HttpServletRequest
request, HttpServletResponse response) throws Exception
{
UserForm
formbean = (UserForm) form;
//將用戶信息寫到回話中
request.getSession().setAttribute("loginid",
formbean.getLoginid());
return
mapping.findForward("update");
}
public
ActionForward update2(ActionMapping mapping, ActionForm
form,
HttpServletRequest
request, HttpServletResponse response) throws Exception
{
UserForm
formbean = (UserForm) form;
HttpSession
session = request.getSession();
String
old =null;
try
{
old =
session.getAttribute("random").toString();
} catch
(Exception e) {
request.setAttribute("mess",
"驗證碼獲取失敗,請使用同一瀏覽器訪問!");
return
mapping.findForward("update");
}
if(old==null){
request.setAttribute("mess",
"驗證碼獲取失敗,請使用同一瀏覽器訪問!");
return
mapping.findForward("update");
}
if
(old.equals(formbean.getCheckNum())) {
//
驗證碼正確,修改密碼
User
user = userService.findByloginid(formbean.getLoginid());
user.setPassword(formbean.getNewPass());
userService.update(user);
request.setAttribute("mess",
"密碼修改成功,請返回登錄!");
return
mapping.findForward("update");
} else
{
request.setAttribute("mess",
"驗證碼錯誤");
return
mapping.findForward("update");
}
}
}
5.建立簡單的jsp界面(寫出主要的表單代碼)
登錄用戶注冊的郵箱
點擊地址跳轉(zhuǎn)到修改密碼的界面
總結(jié)
以上是生活随笔為你收集整理的java邮箱找回密码_Spring实现简单的邮箱找回密码功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java综合面试题_综合性18道面试官必
- 下一篇: 微信jssdk 图片上传 JAVA_微信