package com.yanhao.furnishing.user.web.servlet;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yanhao.furnishing.order.domain.Order;
import com.yanhao.furnishing.pager.PageBean;
import com.yanhao.furnishing.user.domain.Rsetpwd;
import com.yanhao.furnishing.user.domain.User;
import com.yanhao.furnishing.user.service.UserService;
import com.yanhao.furnishing.utils.checkdevice.CheckDevice;
import com.yanhao.furnishing.utils.validator.Validator;
import cn.itcast.commons.CommonUtils;
import cn.itcast.servlet.BaseServlet;
public class UserServlet extends BaseServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
UserService userService = new UserService();
/**
* 找回密码之重置密码到数据库
* @param req
* @param resp
* @return
* @throws ServletException
* @throws IOException
*/
public String snpwd(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* 1.封装表单数据到User实例
*/
User form = CommonUtils.toBean(req.getParameterMap(), User.class);
Rsetpwd rsetpwd = CommonUtils.toBean(req.getParameterMap(), Rsetpwd.class);
/*
* 2.验证密码、确认密码是否为空,两次输入是否相同
*/
if(form.getNpwd()==null || form.getNpwd().trim().isEmpty()){
req.setAttribute("msg", "请输入您的密码!");
req.setAttribute("user", form);
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
}else{
return "f:/pc/rgetpwd.jsp";
}
}
if(form.getNpwd().length() < 8){
req.setAttribute("msg", "密码长度不得小于8位!");
req.setAttribute("user", form);
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
}else{
return "f:/pc/rgetpwd.jsp";
}
}
if(form.getNpwd().length() > 20){
req.setAttribute("msg", "密码长度不得多于19位!");
req.setAttribute("user", form);
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
}else{
return "f:/pc/rgetpwd.jsp";
}
}
if(form.getRpwd()==null || form.getRpwd().trim().isEmpty()){
req.setAttribute("msg", "请确认您的密码!");
req.setAttribute("user", form);
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
}else{
return "f:/pc/rgetpwd.jsp";
}
}
if(!form.getNpwd().equals(form.getRpwd())){
req.setAttribute("msg", "您两次输入的密码不一致!");
req.setAttribute("user", form);
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
}else{
return "f:/pc/rgetpwd.jsp";
}
}
/*
* 3.更新密码到数据库
*/
userService.alterpwd(form);
/*
* 4.更改t_rsetpwd表的flag
*/
userService.alterRsetpwdFlag(rsetpwd);
req.setAttribute("flag", "success");
req.setAttribute("msg", "密码重置成功!请重新登录");
if(CheckDevice.check(req, resp)){
req.setAttribute("url", "login.jsp");
return "f:/jsps/msg/msg.jsp";
}else{
req.setAttribute("url", "pc/login.jsp");
return "f:/pc/msg/msg.jsp";
}
}
/**
* 找回密码之邮件链接失效校验
* @param req
* @param resp
* @return
* @throws ServletException
* @throws IOException
*/
public String rgetpwd(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* 1.封装表单数据到Rsetpwd实例
*/
Rsetpwd form = CommonUtils.toBean(req.getParameterMap(), Rsetpwd.class);
/*
* 2.从数据库中获取对应的行项目
*/
Rsetpwd rsetpwd = userService.rgetpwd(form);
if(rsetpwd == null){
req.setAttribute("flag", "error");
req.setAttribute("msg", "重置密码申请已过期,请重新申请邮件");
req.setAttribute("hlogin", "hidden");
if(CheckDevice.check(req, resp)){
return "f:/jsps/msg/msg.jsp";
} else {
return "f:/pc/msg/msg.jsp";
}
}
/*
* 3.判断是否过期
*/
if(rsetpwd.getRflag().equals("已失效")){
req.setAttribute("flag", "error");
req.setAttribute("msg", "重置密码申请已过期,请重新申请邮件");
req.setAttribute("hlogin", "hidden");
if(CheckDevice.check(req, resp)){
return "f:/jsps/msg/msg.jsp";
} else {
return "f:/pc/msg/msg.jsp";
}
}
/*
* 4.判断时间是否过期
*/
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date rdate = null;
try {
rdate = df.parse(rsetpwd.getRdate());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date now = new Date();
long ntime = now.getTime();
long rtime = rdate.getTime();
if(ntime - rtime > 1800000){
req.setAttribute("flag", "error");
req.setAttribute("msg", "重置密码申请已过期,请重新申请邮件");
req.setAttribute("hlogin", "hidden");
if(CheckDevice.check(req, resp)){
return "f:/jsps/msg/msg.jsp";
} else {
return "f:/pc/msg/msg.jsp";
}
}
/*
* 5.跳转到重置密码页面
*/
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rgetpwd.jsp";
} else {
return "f:/pc/rgetpwd.jsp";
}
}
/**
* 找回密码之发送邮件
* @param req
* @param resp
* @return
* @throws ServletException
* @throws IOException
*/
public String rsetpwd(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* 1.封装表单数据到Rsetpwd实例
*/
Rsetpwd rsetpwd = CommonUtils.toBean(req.getParameterMap(), Rsetpwd.class);
User user = CommonUtils.toBean(req.getParameterMap(), User.class);
if(rsetpwd.getUphone()==null||rsetpwd.getUphone().trim().isEmpty()){
req.setAttribute("msg", "请输入您的电话号码");
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rsetpwd.jsp";
} else {
return "f:/pc/rsetpwd.jsp";
}
}
// 检查手机号码是否存在
if(userService.validateUphone(user)){
req.setAttribute("msg", "该手机号码不存在");
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rsetpwd.jsp";
} else {
return "f:/pc/rsetpwd.jsp";
}
}
if(rsetpwd.getUemail()==null||rsetpwd.getUemail().trim().isEmpty()){
req.setAttribute("msg", "请输入您的邮箱");
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rsetpwd.jsp";
} else {
return "f:/pc/rsetpwd.jsp";
}
}
// 检查email是否与手机号码匹配
if(userService.validateEmail(user)){
req.setAttribute("msg", "电子邮箱与手机号码不一致");
req.setAttribute("rsetpwd", rsetpwd);
if(CheckDevice.check(req, resp)){
return "f:/rsetpwd.jsp";
} else {
return "f:/pc/rsetpwd.jsp";
}
}
// 补全Rsetpwd对象的信息
rsetpwd.setRid(CommonUtils.uuid());
rsetpwd.setRflag("已激活");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
rsetpwd.setRdate(df.format(new Date()).toString());
userService.sendEmail(rsetpwd);
req.setAttribute("flag", "success");
req.setAttribute("msg", "邮件已发送,请到您的邮箱重置密码");
req.setAttribute("hlogin", "hidden");
if(CheckDevice.check(req, resp
没有合适的资源?快使用搜索试试~ 我知道了~
电商网站源代码(servlet)
共378个文件
jsp:137个
java:63个
class:63个
需积分: 46 23 下载量 24 浏览量
2017-08-14
16:04:42
上传
评论 2
收藏 6.71MB 7Z 举报
温馨提示
用servlet做的限时抢购平台,未做支付功能。包含手机版和PC版。有右键发送功能,订单功能,有限时抢购功能,后台功能未全部完成。适合servlet基础入门
资源推荐
资源详情
资源评论
收起资源包目录
电商网站源代码(servlet) (378个子文件)
UserServlet.class 13KB
ProductDao.class 10KB
AdminServlet.class 9KB
OrderDao.class 8KB
Addpsale.class 8KB
Addpall.class 8KB
Addphome.class 8KB
Addphot.class 8KB
AdminDao.class 8KB
OrderServlet.class 7KB
ProductServlet.class 7KB
UserService.class 7KB
Addhdsale.class 6KB
Addhdall.class 6KB
Addhdhot.class 6KB
PageContentServlet.class 6KB
HdServlet.class 5KB
EncryptionForString.class 5KB
IntfSecurity.class 5KB
Security.class 5KB
Product.class 5KB
OrderServlet.class 4KB
AdminService.class 4KB
SumOrderDao.class 4KB
UserDao.class 4KB
Base64.class 4KB
PageContentService.class 4KB
HdDao.class 4KB
TokenProcessor.class 3KB
SumOrderServlet.class 3KB
Order.class 3KB
MD5.class 3KB
DesEdeKeyTool.class 3KB
ProductService.class 3KB
Admin.class 2KB
User.class 2KB
PageBean.class 2KB
OrderService.class 2KB
PageContent.class 2KB
DigestForString.class 2KB
LoginFilter.class 2KB
HdService.class 2KB
Hd.class 2KB
AdminLoginFilter.class 2KB
OrderService.class 2KB
Validator.class 2KB
Rsetpwd.class 2KB
HomeIndex.class 2KB
SumOrder.class 2KB
SumOrderService.class 2KB
InServerErr.class 1KB
PaymentUtil.class 1KB
NotFound.class 1KB
CheckMobile.class 1KB
Expression.class 1KB
ProductContent.class 1KB
ListImg.class 1KB
CheckDevice.class 1KB
Test.class 1KB
KeyConfig.class 1004B
EncodeUtil.class 983B
PageConstance.class 573B
ValidateToken.class 332B
.classpath 604B
org.eclipse.wst.common.component 468B
org.eclipse.wst.jsdt.ui.superType.container 49B
sale.css 5KB
hot.css 5KB
all.css 5KB
pstyle.css 5KB
pdstyle.css 3KB
user.css 3KB
login.css 2KB
order.css 2KB
regist.css 2KB
salepd.css 2KB
listadmin.css 2KB
listp.css 2KB
userinfo.css 2KB
login.css 2KB
regist.css 2KB
sumorder.css 2KB
user.css 2KB
rsetpwd.css 2KB
apwd.css 2KB
home.css 2KB
listhd.css 2KB
home.css 2KB
404.css 2KB
msg.css 2KB
orderlist.css 2KB
style.css 1KB
msg.css 1KB
noproduct.css 1KB
addadmin.css 1KB
editp.css 1KB
addp.css 1KB
hdadmin.css 1KB
showp.css 1KB
pager.css 1KB
共 378 条
- 1
- 2
- 3
- 4
资源评论
fengzi_manong
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功