package com.order.web.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.order.exception.UserException;
import com.order.model.Cart;
import com.order.model.CartItem;
import com.order.model.Food;
import com.order.model.User;
import com.order.service.AddressService;
import com.order.service.CartService;
import com.order.service.UserService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.itcast.commons.CommonUtils;
@WebServlet("/user")
public class UserServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
private UserService userService = new UserService();
private CartService cartService = new CartService();
private AddressService addrService = new AddressService();
// 注册
public String regist(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 封装表单
User form = CommonUtils.toBean(request.getParameterMap(), User.class);
// 调用业务层完成注册
userService.regist(form);
// 重定向到登录页面
return "r:/login.jsp";
}
// 登录
public String login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 封装表单
User form = CommonUtils.toBean(request.getParameterMap(), User.class);
try {
User user = userService.login(form);
request.getSession().setAttribute("user", user);
/*
* 加载用户的购物车
*/
Cart cart = new Cart(user.getId());
List<CartItem> cartItems = cartService.getCartItems(user.getId());
cart.add(cartItems);
request.getSession().setAttribute("cart", cart);
user.setAddrList(addrService.listUserAddr(user.getId())); // 加载用户地址列表
System.out.println(user);
return "r:/main.jsp"; // 重定向到主页
} catch (UserException e) { // 登录失败
request.setAttribute("form", form);
request.setAttribute("msg", e.getMessage());
request.setAttribute("error", "error");
return "login.jsp";
}
}
// 退出
public String quit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().invalidate();
return "r:/main.jsp";
}
// 找回密码
public String find_pwd(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String type = request.getParameter("type"); // 找回密码的方式
String info = request.getParameter("info"); // 找回密码的信息
User user = userService.load(type, info);
if (user != null) {
userService.findPwd(user);
request.setAttribute("msg", "找回密码邮件已发送至" + user.getEmail());
return "msg.jsp";
} else {
// 数据回显
request.setAttribute("msg", "账号不存在");
request.setAttribute(type, "selected='selected'");
request.setAttribute("info", info);
request.setAttribute("error", "error");
return "find_pwd.jsp";
}
}
// 去重置密码页面
public String to_reset_pwd(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String code = request.getParameter("code");
User user = userService.load("code", code);
if (user != null) {
request.setAttribute("user", user);
return "WEB-INF/reset_pwd.jsp";
} else {
request.setAttribute("msg", "链接无效");
return "msg.jsp";
}
}
// 重置密码
public String reset_pwd(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String code = request.getParameter("code");
User user = userService.load("code", code);
if (user != null) {
user.setPassword(request.getParameter("password"));
userService.resetPwd(user);
request.setAttribute("msg", "重置密码成功");
} else {
request.setAttribute("msg", "重置密码失败");
}
return "msg.jsp";
}
// 更新密码
public void update_pwd(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = (User) request.getSession().getAttribute("user");
String oldPwd = request.getParameter("old_pwd"); // 旧密码
String newPwd = request.getParameter("new_pwd"); // 新密码
if (oldPwd.equals(user.getPassword())) { // 原密码正确
userService.updatePwd(user.getId(), newPwd);
user.setPassword(newPwd);
response.getWriter().print(true);
} else { // 原密码错误
response.getWriter().print(false);
}
}
// 更新资料
public String update_info(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 原用户
User user = (User) request.getSession().getAttribute("user");
// 从页面传过来的表单
User form = CommonUtils.toBean(request.getParameterMap(), User.class);
// copy表单值到原用户
BeanUtil.copyProperties(form, user, "id", "password", "code");
userService.updateInfo(user);
return "userinfo.jsp";
}
// 检查信息是否被注册
public void checkNotUsed(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String from = request.getParameter("from"); // 页面来源
String type = request.getParameter("type"); // 要检查的类型
String info = request.getParameter("info"); // 要检查的信息
User result = userService.load(type, info); // 检查的结果
User user = (User) request.getSession().getAttribute("user"); // 原有的信息
if (result == null) { // 结果为空,说明没被注册
response.getWriter().print(true);
return;
}
// 来源是userinfo页面
if ("userinfo".equals(from) && user.getId().equals(result.getId())) { // 结果和原有相同
response.getWriter().print(true);
return;
}
// 其余情况都是false
response.getWriter().print(false);
}
// 检查验证码是否正确
public void checkCaptcha(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String answer = (String) request.getSession().getAttribute("captcha"); // 答案
String captcha = request.getParameter("captcha"); // 用户写的验证码
if (captcha.equalsIgnoreCase(answer)) {
response.getWriter().print(true);
} else {
response.getWriter().print(false);
}
}
// 收藏菜品
public void collect(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = (User) request.getSession().getAttribute("user");
int fid = Convert.toInt(request.getParameter("fid"));
userService.collect(user.getId(), fid);
response.getWriter().print(1);
}
// 取消收藏菜品
public void discollect(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = (User) request.getSession().getAttribute("user");
int fid = Convert.toInt(request.getParameter("fid"));
userService.discollect(user.getId(), fid);
response.getWriter().print(1);
}
// 是否收藏某菜品
public void isCollected(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = (User) request.getSession().getAttribute("user");
if (user == null) { // 没登录,不查询
return;
}
int fid = Convert.toInt(request.getParameter("fid"));
if (userService.isCollected(user.getId(), fid)) {
response.getWriter().print(1);
} else {
response.getWriter().print(0);
}
}
// 我的收藏
public String myCollection(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
User user = (User) request.getSession().getAttribute("user");
List<Food> foodList = userService.listCollection(user.getId());
request.setAttribute("foodList", foodList);
return "main_foodinfo.jsp"
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaWeb的企业内部员工订餐系统完整源码+数据库.zip (101个子文件)
bootstrap.min.css 118KB
checkout.css 8KB
t2.css 7KB
main_foodinfo.css 4KB
cart.css 4KB
t1.css 4KB
glyphicons-halflings-regular.eot 20KB
.gitignore 68B
UserServlet.java 8KB
OrderServlet.java 6KB
OrderDao.java 5KB
FoodDao.java 5KB
UpdateFoodServlet.java 4KB
AddFoodServlet.java 4KB
UserService.java 3KB
CartDao.java 3KB
CartServlet.java 3KB
UserDao.java 3KB
Order.java 3KB
FoodTypeServlet.java 2KB
FoodServlet.java 2KB
OrderService.java 2KB
AddressDao.java 2KB
Cart.java 2KB
AddressServlet.java 2KB
PayServlet.java 2KB
CollectionDao.java 2KB
FoodTypeDao.java 2KB
BaseServlet.java 2KB
User.java 1KB
Food.java 1KB
FoodSearchServlet.java 1KB
PayUtil.java 1KB
AdminLoginServlet.java 1KB
OrderItem.java 1KB
AdminLoginFilter.java 1KB
UserLoginFilter.java 1KB
CaptchaServlet.java 1KB
CartItem.java 1KB
FoodService.java 967B
Address.java 966B
EvaluationDao.java 699B
Evaluation.java 658B
Collection.java 637B
AddressService.java 618B
CartService.java 592B
AdminDao.java 556B
FoodTypeService.java 529B
Admin.java 525B
FoodType.java 502B
OrderException.java 321B
UserException.java 319B
add.jpg 6KB
jquery-1.9.1.min.js 90KB
bootstrap.min.js 36KB
jquery.validate.min.js 20KB
common.js 10KB
jquery.leoTextAnimate.js 4KB
orderdetail.jsp 21KB
checkout.jsp 15KB
main_foodinfo.jsp 15KB
m_food.jsp 13KB
myorder.jsp 10KB
userinfo.jsp 9KB
m_foodtype.jsp 8KB
tcart.jsp 5KB
guide.jsp 4KB
return_url.jsp 2KB
main_foodkind.jsp 2KB
left.jsp 2KB
notify_url.jsp 2KB
regist.jsp 2KB
main.jsp 2KB
login.jsp 1KB
main.jsp 1KB
find_pwd.jsp 1KB
adminLogin.jsp 1KB
reset_pwd.jsp 980B
top.jsp 757B
msg.jsp 516B
m_order.jsp 467B
body.jsp 212B
MANIFEST.MF 36B
wx.png 43KB
ali.png 33KB
cart_canhe.png 2KB
wo.png 1KB
log4j.properties 286B
log4j.properties 286B
alipay.setting 2KB
alipay.setting 2KB
db.setting 574B
db.setting 574B
mail.setting 332B
mail.setting 332B
order.sql 16KB
glyphicons-halflings-regular.svg 106KB
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.woff 23KB
glyphicons-halflings-regular.woff2 18KB
共 101 条
- 1
- 2
资源评论
龙年行大运
- 粉丝: 1006
- 资源: 3852
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功