package com.al_tair.shop.web.controller.method2;
import com.al_tair.shop.domain.Member;
import com.al_tair.shop.service.MemberService;
import com.al_tair.shop.service.impl.MemberServiceImpl;
import com.google.gson.Gson;
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 javax.xml.crypto.Data;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
import static com.google.code.kaptcha.Constants.KAPTCHA_SESSION_DATE;
import static com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY;
/**
* @author Al_tair
* @date 2022/5/16-20:37
*/
@WebServlet(name = "MemberServlet",urlPatterns = {"/memberServlet"})
public class MemberServlet extends BasicServlet {
MemberService loginMemberUser = new MemberServiceImpl();
/**
* 校验是否存在用户
*
* @param request
* @param response
*/
protected void IsExistUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
Gson gson = new Gson();
boolean existUser = loginMemberUser.isExistUser(username);
Map<String,Object> result = new HashMap<>();
result.put("IsExistUser",existUser);
response.getWriter().write(gson.toJson(result));
}
/**
* 用户登录
*
* @param request
* @param response
* @throws IOException
* @throws ServletException
*/
protected void login(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
HttpSession session = request.getSession();
if(session.getAttribute("username") != null){
response.sendRedirect(getServletContext().getContextPath() + "/index.jsp");
return;
}
String username = request.getParameter("username");
String password = request.getParameter("password");
String code = request.getParameter("code");
request.setAttribute("username",username);
// 用户名格式校对
String pattern = "^[a-zA-Z0-9_]{6,10}$";
if(!Pattern.matches(pattern,username)){
System.out.println("用户名格式不正确");
request.setAttribute("errorMsg","用户名格式错误!");
request.getRequestDispatcher("/views/member/login.jsp").forward(request,response);
return;
}
// 密码格式校对
pattern = "^[a-zA-Z0-9_]{6,10}$";
if(!Pattern.matches(pattern,password)){
System.out.println("密码格式不正确");
request.setAttribute("errorMsg","密码格式错误!");
request.getRequestDispatcher("/views/member/login.jsp").forward(request,response);
return;
}
// 获取验证码
Object realCode = session.getAttribute(KAPTCHA_SESSION_KEY);
Object date = session.getAttribute(KAPTCHA_SESSION_DATE);
// 立即删除session中该属性
session.removeAttribute(KAPTCHA_SESSION_KEY);
if(realCode == null || code == null || !code.equalsIgnoreCase((String)realCode)){
System.out.println(code);
System.out.println(realCode);
request.setAttribute("errorMsg","验证码不正确!");
System.out.println("验证码不正确");
request.getRequestDispatcher("/views/member/login.jsp").forward(request,response);
return;
}
Member loginUser = loginMemberUser.login(username, password);
if(loginUser == null){
request.setAttribute("errorMsg","登录失败!");
request.getRequestDispatcher("/views/member/login.jsp").forward(request,response);
}else if(loginUser.getUserState() != 0){
request.setAttribute("errorMsg","请使用管理员登录!");
request.getRequestDispatcher("/views/member/login.jsp").forward(request,response);
}else{
System.out.println("登录成功! username: " + username);
session.setMaxInactiveInterval(60*60*20*7);
session.setAttribute("username",username);
session.setAttribute("password",password);
session.setAttribute("userState",0);
response.sendRedirect(getServletContext().getContextPath() + "/views/member/login_ok.jsp");
}
}
/**
* 用户注册
*
* @param request
* @param response
* @throws IOException
*/
protected void register(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String repassword = request.getParameter("repassword");
String email = request.getParameter("email");
String code = request.getParameter("code");
// 后端校验
if(username == null || password == null || email == null || repassword == null){
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
// 用户名格式校对
String pattern = "^[a-zA-Z0-9_]{6,10}$";
if(Pattern.matches(pattern,username)){
System.out.println("用户名格式正确");
}else{
System.out.println("用户名格式不正确");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
// 密码格式校对
pattern = "^[a-zA-Z0-9_]{6,10}$";
if(Pattern.matches(pattern,password)){
System.out.println("密码格式正确");
}else{
System.out.println("密码格式不正确");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
if(!password.equals(repassword)){
System.out.println("输入两次密码不相同!");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
// 邮箱格式校对
pattern = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
if(Pattern.matches(pattern,email)){
System.out.println("邮箱格式正确");
}else{
System.out.println("邮箱格式不正确");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
// 获取验证码
HttpSession session = request.getSession();
Object realCode = session.getAttribute(KAPTCHA_SESSION_KEY);
Object date = session.getAttribute(KAPTCHA_SESSION_DATE);
// 立即删除session中该属性
session.removeAttribute(KAPTCHA_SESSION_KEY);
if(realCode == null || code == null || !code.equalsIgnoreCase((String)realCode)){
System.out.println("验证码不正确");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
LocalDateTime localDateTime = LocalDateTime.now();
Member member = new Member(username, password, email, (byte) 0);
MemberService registeredMemberUsers = new MemberServiceImpl();
if(!registeredMemberUsers.registerUser(member)){
System.out.println("注册失败");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_fail.jsp");
return;
}
System.out.println("注册成功");
response.sendRedirect(getServletContext().getContextPath() + "/views/member/register_ok.jsp");
}
protected void ManageLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("username") !=
没有合适的资源?快使用搜索试试~ 我知道了~
家居网购(javaweb开发)

共167个文件
java:46个
jpg:43个
png:32个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2022-06-24
16:13:37
上传
评论
收藏 9.99MB ZIP 举报
温馨提示
家居网购(javaweb开发)
资源推荐
资源详情
资源评论








收起资源包目录





































































































共 167 条
- 1
- 2
资源评论


Al_tair
- 粉丝: 475
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
