package com.market.servlet.user;
import com.alibaba.fastjson.JSONArray;
import com.market.entity.Role;
import com.market.entity.User;
import com.market.service.role.RoleServiceImpl;
import com.market.service.user.UserService;
import com.market.service.user.UserServiceImpl;
import com.market.util.Constants;
import com.market.util.PageSupport;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.awt.desktop.UserSessionEvent;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author kinoz
* @Date 2022/7/9 - 14:34
* @apiNote
*/
//实现servlet的复用
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String method = req.getParameter("method");
if (method.equals("add") && method != null){
addUser(req,resp);
}else if (method.equals("savepwd") && method !=null){
updatePwd(req, resp);
}else if (method.equals("pwdmodify") && method !=null){
pwdModify(req,resp);
}else if (method.equals("query") && method != null){
query(req,resp);
}else if (method.equals("deluser") && method != null){
delUser(req,resp);
}else if (method.equals("view") && method != null) {
getUserById(req, resp);
}else if (method.equals("modifyexe") && method != null){
modify(req,resp);
}
}
//更新密码
private void updatePwd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Object obj = req.getSession().getAttribute(Constants.USER_SESSION);
String newpassword = req.getParameter("newpassword");
boolean flag = false;
if (obj!=null && newpassword!=null && newpassword.length() !=0){
UserServiceImpl use = new UserServiceImpl();
flag = use.updatePwd(((User)obj).getId(),newpassword);
if (flag){
req.setAttribute(Constants.POINT_MESSAGE,"修改成功,请退出重新登录");
req.getSession().removeAttribute(Constants.USER_SESSION);
}else {
req.setAttribute(Constants.POINT_MESSAGE,"密码修改失败");
}
}else {
req.setAttribute(Constants.POINT_MESSAGE,"新密码存在问题");
}
req.getRequestDispatcher("pwdmodify.jsp").forward(req,resp);
}
//使用ajax与旧密码做校验
private void pwdModify(HttpServletRequest req, HttpServletResponse resp){
//从session中获取id
Object obj = req.getSession().getAttribute(Constants.USER_SESSION);
String oldpassword = req.getParameter("oldpassword");
//结果集(此处多对应pwdmodify.js中的参数)
Map<String, String> resultMap = new HashMap<>();
if (obj == null){ //session失效或session过期
resultMap.put("result","sessionerror");
}else if (oldpassword == null){ //输入的密码为空
resultMap.put("result","error");
}else{
String userpassword = ((User) obj).getUserpassword(); //session中用户的密码
//输入的旧密码与session中存储的匹配的话执行
if (oldpassword.equals(userpassword)){
resultMap.put("result","true");
//则否
}else {
resultMap.put("result","false");
}
}
resp.setContentType("application/json");
PrintWriter out = null;
try {
out = resp.getWriter();
//JSONArray Alibaba json工具类 转换格式
//把map["result","true","result","false"]格式转换为json格式{key:value}
out.write(JSONArray.toJSONString(resultMap));
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//用户分页
private void query(HttpServletRequest req, HttpServletResponse resp) {
//1.从前端获取数据
String queryUserName = req.getParameter("queryname");
String temp = req.getParameter("queryUserRole");
String pageIndex = req.getParameter("pageIndex");
int queryUserRole = 0;
List<User> userList = null; //获取用户列表做前端展示
//2.判断请求是否需要处理
//获取用列表
UserServiceImpl user = new UserServiceImpl();
int pageSize =5;
int currentPageNo = 1;
if (queryUserName == null){
queryUserName="";
}
if (temp != null && !temp.equals("")){
queryUserRole = Integer.parseInt(temp);
}
if (pageIndex!= null){
currentPageNo = Integer.parseInt(pageIndex);
}
//3.为了实现分页,需要计算出当前页面和总页面,页面大小
//获取用户总数 (分页:上一页 下一页情况)
int totalCount = user.getUserCount(queryUserName,queryUserRole);
//总页数支持
PageSupport pst = new PageSupport();
pst.setCurrentPageNo(currentPageNo);
pst.setPageSize(pageSize);
pst.setTotalCount(totalCount);
//总共有几页
int totalPageCount = pst.getTotalPageCount(); //使用狂神工具类
//int totalPageCount = totalCount/pageSize +1; //手动计算
//4.控制首页和尾页(相当于业务需求)
//页面小于1就显示第一页的东西
if (currentPageNo < 1) {
currentPageNo = 1;
//当前页面大于了最后一页就让它等于最后一页
}else if (currentPageNo>totalCount){
currentPageNo = totalCount;
}
//5.获取用户列表展示到前端
userList = user.getUserList(queryUserName, queryUserRole, currentPageNo, pageSize);
req.setAttribute("userList",userList);
RoleServiceImpl roleService = new RoleServiceImpl();
List<Role> roleList = roleService.getRoleList();
//后台数据与前端的value对应
req.setAttribute("roleList",roleList);
req.setAttribute("totalCount",totalCount);
req.setAttribute("currentPageNo",currentPageNo);
req.setAttribute("totalPageCount",totalPageCount);
req.setAttribute("queryUserName",queryUserName);
req.setAttribute("queryUserRole",queryUserRole);
try {
req.getRequestDispatcher("userlist.jsp").forward(req,resp);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//添加用户
// TODO: 2022/7/13 无法提交用户表单 用户角色设置无效
private void addUser(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
String userCode = req.getParameter("userCode");
String userName = req.getParameter("userName");
String userPassword = req.getParameter("userPassword");
String gender= req.getParameter("gender");
String birthday= req.getParameter("birthday");
String phone= req.getParameter("phone");
String address = req.getParameter("address");
String userRole= req.getParameter("userRole");
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于javaWeb+jsp+Mysql+Tomcat+前端超市订单管理系统.zip (294个子文件)
UserServlet.class 9KB
UserServlet.class 9KB
UserDaoImpl.class 9KB
UserDaoImpl.class 9KB
UserServiceImpl.class 5KB
UserServiceImpl.class 5KB
User.class 4KB
User.class 4KB
BillDaoImpl.class 4KB
BillDaoImpl.class 4KB
ProviderDaoImpl.class 4KB
ProviderDaoImpl.class 4KB
Provider.class 4KB
Provider.class 4KB
Bill.class 4KB
Bill.class 4KB
UserServiceTest.class 3KB
UserServiceTest.class 3KB
ProviderServiceImpl.class 3KB
ProviderServiceImpl.class 3KB
BaseDao.class 3KB
BaseDao.class 3KB
BillServlet.class 3KB
BillServlet.class 3KB
Address.class 3KB
Address.class 3KB
RoleServiceImpl.class 2KB
RoleServiceImpl.class 2KB
SysFilter.class 2KB
SysFilter.class 2KB
RoleDaoImpl.class 2KB
RoleDaoImpl.class 2KB
LoginServlet.class 2KB
LoginServlet.class 2KB
Role.class 2KB
Role.class 2KB
ProviderServlet.class 2KB
ProviderServlet.class 2KB
LogoutServlet.class 2KB
LogoutServlet.class 2KB
PageSupport.class 1KB
PageSupport.class 1KB
BillServiceImpl.class 1KB
BillServiceImpl.class 1KB
CharsetFilter.class 1KB
CharsetFilter.class 1KB
UserDao.class 849B
UserDao.class 849B
UserService.class 627B
UserService.class 627B
BillPro.class 547B
BillPro.class 547B
Constants.class 414B
Constants.class 414B
ProviderDao.class 409B
ProviderDao.class 409B
BillDao.class 365B
BillDao.class 365B
ProviderService.class 329B
ProviderService.class 329B
RoleDao.class 317B
RoleDao.class 317B
BillService.class 285B
BillService.class 285B
RoleService.class 237B
RoleService.class 237B
style.css 9KB
style.css 9KB
public.css 6KB
public.css 6KB
datepicker.css 4KB
datepicker.css 4KB
datepicker.css 3KB
datepicker.css 3KB
WdatePicker.css 149B
WdatePicker.css 149B
img.gif 2KB
img.gif 2KB
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
datePicker.gif 1KB
.gitignore 184B
My97DatePicker.htm 1KB
My97DatePicker.htm 1KB
smbms.iml 81B
jakarta.servlet.jsp.jstl-2.0.0.jar 3.53MB
fastjson2-2.0.8.jar 1.39MB
spring-core-5.0.4.RELEASE.jar 1.16MB
spring-context-5.0.4.RELEASE.jar 1.03MB
mysql-connector-java-5.1.47.jar 984KB
spring-beans-5.0.4.RELEASE.jar 639KB
standard-1.1.2.jar 384KB
spring-aop-5.0.4.RELEASE.jar 352KB
tomcat-servlet-api-10.0.7.jar 328KB
jakarta.servlet-api-5.0.0.jar 301KB
spring-expression-5.0.4.RELEASE.jar 257KB
jakarta.xml.bind-api-3.0.0.jar 126KB
fastjson-2.0.8.jar 121KB
tomcat-el-api-10.0.7.jar 88KB
共 294 条
- 1
- 2
- 3
资源评论
我慢慢地也过来了
- 粉丝: 5972
- 资源: 3837
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功