package com.atguigu.web;
import com.atguigu.dom.impl.UserDao;
import com.atguigu.dom.impl.UserDaoImpl;
import com.atguigu.pojo.User;
import com.atguigu.service.impl.UserService;
import com.atguigu.service.impl.UserServiceImpl;
import com.atguigu.utils.WebUtils;
import com.google.gson.Gson;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import static com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY;
/**
* @author Aaron
* @date 2020/5/4 - 18:15
*/
public class UserServlet extends BaseServlet {
private UserDao userDao = new UserDaoImpl();
private UserService userService = new UserServiceImpl();
protected void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1 、获取请求的参数
String username = request.getParameter("username");
String password = request.getParameter("password");
// 调用 userService.login() 登录处理业务
User u = WebUtils.copyParamToBean(request.getParameterMap(),new User());
if(userService.login(u) == null){
//把错误信息和回显的表单项信息,保存到Request域中
request.setAttribute("msg","用户名或密码错误!");
request.setAttribute("username",request.getParameter("username"));
// 如果等于 null, 说明登录失败,跳回登录页面
request.getRequestDispatcher("/pages/user/login.jsp").forward(request,response);
}else {
//登录成功,跳到登录成功页
//保存用户登录之后的信息
User user = userDao.queryUserByUsername(u.getUsername());
request.getSession().setAttribute("user",user);
request.getRequestDispatcher("/pages/user/login_success.jsp").forward(request,response);
}
}
protected void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、获取请求参数,req.getParameter的参数是register.html表单项的name属性
String username = request.getParameter("username");
String password = request.getParameter("password");
String code = request.getParameter("code");
String email = request.getParameter("email");
// 2 、检查 验证码是否正确
//获取Session中的验证码(第一次请求注册页面时,会生成验证码,并将其保存到Session中)
String s = (String) request.getSession().getAttribute(KAPTCHA_SESSION_KEY);
//删除Session中的验证码
request.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
if(s != null && s.equalsIgnoreCase(code)){
// 3 、检查 用户名是否可用
if(userService.existsUsername(username)){
//把回写信息保存到Request域中
request.setAttribute("msg","用户名已存在!");
request.setAttribute("username",username);
request.setAttribute("email",email);
System.out.println("用户名[" + username +"]已存在");
//跳回注册页面
request.getRequestDispatcher("/pages/user/regist.jsp").forward(request,response);
}else {
//用户名可用,操作数据库,使其保存到数据库
User user = WebUtils.copyParamToBean(request.getParameterMap(),new User());
userService.registUser(user);
//跳转到注册成功界面
request.getRequestDispatcher("/pages/user/regist_success.jsp").forward(request,response);
}
}else {
System.out.println("验证码错误");
//把回写信息保存到Request域中
request.setAttribute("msg","验证码错误");
request.setAttribute("username",username);
request.setAttribute("email",email);
//重新跳回注册页面
request.getRequestDispatcher("/pages/user/regist.jsp").forward(request,response);
}
}
//用户注销登录
protected void logOut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、销毁Session
request.getSession().invalidate();
//2、重定向到首页
response.sendRedirect(request.getContextPath());
}
protected void ajaxExitUsername(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、获取请求的username
String username = request.getParameter("username");
//2、调用 userService.existsUsername();
Boolean isExit = userService.existsUsername(username);
// 把返回的结果封装成为 map 对象
Map<String, Object> map = new HashMap<>();
map.put("isExit", isExit);
//把map转成json字符串回传给浏览器
Gson gson = new Gson();
String json = gson.toJson(map);
response.getWriter().write(json);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
书城项目代码(全) (302个子文件)
code.bmp 9KB
code.bmp 9KB
code.bmp 9KB
code.bmp 9KB
OrderServiceImpl.class 5KB
OrderServiceImpl.class 5KB
OrderServlet.class 5KB
OrderServlet.class 5KB
UserServlet.class 5KB
UserServlet.class 5KB
CarServlet.class 4KB
CarServlet.class 4KB
BookServlet.class 4KB
BookServlet.class 4KB
Car.class 4KB
Car.class 4KB
BookDaoImpl.class 4KB
BookDaoImpl.class 4KB
Book.class 3KB
Book.class 3KB
Page.class 3KB
Page.class 3KB
BaseDao.class 3KB
BaseDao.class 3KB
BookServiceImpl.class 3KB
BookServiceImpl.class 3KB
BookDaoTest.class 3KB
BookDaoTest.class 3KB
BaseDao.class 3KB
BaseDao.class 3KB
JdbcUtils.class 3KB
JdbcUtils.class 3KB
OrderServiceTest.class 3KB
OrderServiceTest.class 3KB
RegisteServlet.class 3KB
RegisteServlet.class 3KB
OrderDaoImpl.class 3KB
OrderDaoImpl.class 3KB
OrderItem.class 3KB
OrderItem.class 3KB
ClientBookServlet.class 3KB
ClientBookServlet.class 3KB
Order.class 2KB
Order.class 2KB
BookServiceTest.class 2KB
BookServiceTest.class 2KB
CarItem.class 2KB
CarItem.class 2KB
OrderDaoTest.class 2KB
OrderDaoTest.class 2KB
CarTest.class 2KB
CarTest.class 2KB
User.class 2KB
User.class 2KB
user.class 2KB
user.class 2KB
BaseServlet.class 2KB
BaseServlet.class 2KB
LoginServlet.class 2KB
LoginServlet.class 2KB
OrderItemDaoTest.class 2KB
OrderItemDaoTest.class 2KB
ManagerFilter.class 2KB
ManagerFilter.class 2KB
JdbcUtils.class 2KB
JdbcUtils.class 2KB
UserServletTest.class 2KB
UserServletTest.class 2KB
UserDaoTest.class 1KB
UserDaoTest.class 1KB
UserDaoTest.class 1KB
UserDaoTest.class 1KB
OrderItemDaoImpl.class 1KB
OrderItemDaoImpl.class 1KB
UserDaoImpl.class 1KB
UserDaoImpl.class 1KB
UserDaoImpl.class 1KB
UserDaoImpl.class 1KB
UserServiceImplTest.class 1KB
UserServiceImplTest.class 1KB
UserServiceImplTest.class 1KB
UserServiceImplTest.class 1KB
TransactionFilter.class 1KB
TransactionFilter.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
WebUtils.class 1KB
WebUtils.class 1KB
BookDao.class 763B
BookDao.class 763B
OrderService.class 729B
OrderService.class 729B
RegisteServlet.class 668B
RegisteServlet.class 668B
OrderDao.class 634B
OrderDao.class 634B
BookService.class 524B
BookService.class 524B
共 302 条
- 1
- 2
- 3
- 4
资源评论
- 8486981192022-03-05后台管理---图书管理为啥跳转失败了
- wuli婷的sense2020-05-26亲的订单部分实现成功了吗Aaron60132020-06-06我想到的都实现了
Aaron6013
- 粉丝: 7
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Windows 常见运行运行库32+64
- 基于3KW光伏并网单相逆变器设计(TMS320F28035控制板+显示板+STM32F103功率板)硬件(原理图+PCB)工程
- 正点原子HAL库 STM32F4 外部中断(学习自用附源码)
- delphi rzcombobox DropDownList 灰色背景改为白色
- sap sd.docsap sd.doc
- torch-1.10.2-cp38-cp38-win-amd64.whl
- 菜单栏实现增加数据,修改数据,查询数据,删除数据
- 全国省市区三级联动json文件,带code
- C8_全局&局部&static.zip
- Unity和安卓交互插件Unity调Android Native Goodies PRO
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功