package com.servlet;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.pojo.User;
import com.service.UserService;
import com.service.impl.UserServiceImpl;
import com.utils.WebUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "UserServlet", urlPatterns = "/UserServlet")
public class UserServlet extends BaseServlet {
private final UserService userService = new UserServiceImpl();
protected void login(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//1.获取表单参数
String username = request.getParameter("username");
User user = WebUtils.copyParamToBean(request.getParameterMap(), new User()); //自动注入
user = userService.login(user);
if (user != null) { //登录成功, 跳转到成功页面
HttpSession session = request.getSession(); //创建Session域对象
session.setAttribute("user", user);
request.getRequestDispatcher("pages/user/login_success.jsp").forward(request, response);
} else { //登录失败, 将错误信息和回显信息放到request域中, 然后跳转回登录页面
request.setAttribute("msg", "账号或密码错误!");
request.setAttribute("username", username);
request.getRequestDispatcher("pages/user/login.jsp").forward(request, response);
}
}
/** 验证用户名是否存在, 然后以json格式回传给客户端 */
protected void ajaxExistingUsername(HttpServletRequest request, HttpServletResponse response) throws
IOException {
String username = request.getParameter("username");
boolean existsUsername = userService.existsUsername(username);
JsonObject jsonObject = new JsonObject();
jsonObject.add("existingUsername", new JsonPrimitive(existsUsername));
response.setContentType("application/json");
PrintWriter writer = response.getWriter();
new Gson().toJson(jsonObject, writer);
}
/** 处理注销请求, 即让Session失效, 然后重定向到主页 */
protected void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
response.sendRedirect(request.getContextPath() + "/index.jsp");
}
protected void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//1.获取请求的参数
String username = request.getParameter("username");
String email = request.getParameter("email");
//2.验证验证码
String codeParamKey = "code";
if (!WebUtils.validateKaptcha(request, codeParamKey)) {
request.setAttribute("msg", "验证码错误!");
request.setAttribute("username", username);
request.setAttribute("email", email);
request.getRequestDispatcher("pages/user/regist.jsp").forward(request, response);
return;
}
//3.检查用户名是否可用
if (userService.existsUsername(username)) {
request.setAttribute("msg", "用户名已存在!");
request.setAttribute("username", username);
request.setAttribute("email", email);
request.getRequestDispatcher("pages/user/regist.jsp").forward(request, response);
return;
}
//4.注册
User user = WebUtils.copyParamToBean(request.getParameterMap(), new User()); //自动注入
boolean ans = userService.register(user);
if (ans) {
request.getRequestDispatcher("pages/user/login.jsp").forward(request, response);
} else {
//注册失败时, 将错误信息和回显信息保存到request域中, 然后转发回注册页面
request.setAttribute("msg", "注册失败, 请重试!");
request.setAttribute("username", username);
request.setAttribute("email", email);
request.getRequestDispatcher("pages/user/regist.jsp").forward(request, response);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
尚硅谷JavaWeb电子书城项目(Java+Mysql+Tomcat+Jsp) (241个子文件)
code.bmp 9KB
code.bmp 9KB
OrderServiceImpl.class 5KB
OrderServiceImpl.class 5KB
WebUtils.class 5KB
WebUtils.class 5KB
UserServlet.class 4KB
UserServlet.class 4KB
CartServlet.class 4KB
CartServlet.class 4KB
ManagerBookServlet.class 4KB
ManagerBookServlet.class 4KB
OrderServlet.class 4KB
OrderServlet.class 4KB
BaseDao.class 4KB
BaseDao.class 4KB
BookDaoImpl.class 4KB
BookDaoImpl.class 4KB
OrderDaoImpl.class 3KB
OrderDaoImpl.class 3KB
ManagerFilter.class 3KB
ManagerFilter.class 3KB
Page.class 3KB
Page.class 3KB
BookServiceImpl.class 3KB
BookServiceImpl.class 3KB
Cart.class 3KB
Cart.class 3KB
JdbcUtils.class 3KB
JdbcUtils.class 3KB
OrderItem.class 3KB
OrderItem.class 3KB
Book.class 3KB
Book.class 3KB
ManagerOrderServlet.class 2KB
ManagerOrderServlet.class 2KB
ClientBookServlet.class 2KB
ClientBookServlet.class 2KB
BaseServlet.class 2KB
BaseServlet.class 2KB
CartItem.class 2KB
CartItem.class 2KB
Order.class 2KB
Order.class 2KB
User.class 2KB
User.class 2KB
TransactionFilter.class 1KB
TransactionFilter.class 1KB
OrderItemDaoImpl.class 1KB
OrderItemDaoImpl.class 1KB
UserDaoImpl.class 1KB
UserDaoImpl.class 1KB
JdbcUtils$1.class 1KB
JdbcUtils$1.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
OrderDao.class 703B
OrderDao.class 703B
OrderService.class 678B
OrderService.class 678B
BookDao.class 623B
BookDao.class 623B
BookService.class 567B
BookService.class 567B
OrderItemDao.class 319B
OrderItemDao.class 319B
UserDao.class 275B
UserDao.class 275B
UserService.class 255B
UserService.class 255B
style.css 4KB
style.css 4KB
logo.gif 9KB
.gitignore 630B
.gitignore 124B
druid-1.2.1.jar 3.35MB
guava-30.0-jre.jar 2.73MB
mysql-connector-java-8.0.22.jar 2.28MB
protobuf-java-3.11.4.jar 1.58MB
commons-collections-3.2.2.jar 575KB
standard-1.1.2.jar 384KB
filters-2.0.235-1.jar 374KB
commons-beanutils-1.9.4.jar 241KB
gson-2.8.6.jar 235KB
checker-qual-3.5.0.jar 209KB
commons-dbutils-1.7.jar 95KB
kaptcha-2.3.2.jar 93KB
commons-logging-1.2.jar 60KB
javax.annotation-api-1.3.2.jar 26KB
jstl-1.1.2.jar 20KB
jsr305-3.0.2.jar 19KB
error_prone_annotations-2.3.4.jar 14KB
j2objc-annotations-1.3.jar 9KB
failureaccess-1.0.1.jar 5KB
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar 2KB
UserServlet.java 5KB
ManagerBookServlet.java 5KB
WebUtils.java 4KB
CartServlet.java 4KB
BaseDao.java 3KB
共 241 条
- 1
- 2
- 3
资源评论
理想是做全栈工程师
- 粉丝: 17
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功