SMBMS超市管理系统(Javaweb项目)
SMBMS超市管理系统(Javaweb项目)
项目环境
- jdk 1.8.0_261
- mysql 8.0.21
- IDEA 2021.2.2
项目架构



数据库

项目源代码
filer
字符编码过滤器
package filer;
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
/*
字符编码过滤器
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
用户登录过滤器
package filer;
import pojo.User;
import util.Constants;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class SysFilter implements Filter {
/*
登录拦截
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
//过滤器,从Session中获取用户
User user = (User) request.getSession().getAttribute(Constants.USER_SESSION);
//已经被移除或者注销了,或者未登录
if (user == null) {
response.sendRedirect("/smbms/error.jsp");
} else {
chain.doFilter(req, resp);
}
}
@Override
public void destroy() {
}
}
pojo层
package pojo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class Bill {
private Integer id; //id
private String billCode; //账单编码
private String productName; //商品名称
private String productDesc; //商品描述
private String productUnit; //商品单位
private BigDecimal productCount; //商品数量
private BigDecimal totalPrice; //总金额
private Integer isPayment; //是否支付
private Integer providerId; // 供应商ID
private Integer createdBy; //创建者
private Date creationDate; //创建时间
private Integer modifyBy; // 更新者
private Date modifyDate; //更新时间
private String providerName; //供应商名称
}
package pojo;
import lombok.Data;
import java.util.Date;
@Data
public class Provider {
private Integer id; //id
private String proCode; //供应商编码
private String proName; //供应商名称
private String proDesc; //供应商描述
private String proContact; // 供应商联系人
private String proPhone; //供应商电话
private String proAddress; // 供应商地址
private String proFax; //供应商传真
private Integer createdBy; // 创建者
private Date creationDate; // 创建时间
private Integer modifyBy; //更新者
private Date modifyDate; //更新时间
}
package pojo;
import lombok.Data;
import java.util.Date;
@Data
public class Role {
private Integer id; //id
private String roleCode; //角色编码
private String roleName; //角色名称
private Integer createdBy; //创建者
private Date creationDate; //创建时间
private Integer modifyBy; //更新者
private Date modifyDate; //更新时间
}
package pojo;
import lombok.Data;
import java.util.Date;
@Data
public class User {
private Integer id; //id
private String userCode; //用户编码
private String userName; //用户名称
private String userPassword; //用户密码
private Integer gender; //性别
private Date birthday; //出生日期
private String phone; //电话
private String address; //地址
private Integer userRole; //用户角色
private Integer createdBy; //创建者
private Date creationDate; //创建时间
private Integer modifyBy; //更新者
private Date modifyDate; //更新时间
private Integer age; //年龄
private String userRoleName; //用户角色名称
public String getUserRoleName() {
return userRoleName;
}
public void setUserRoleName(String userRoleName) {
this.userRoleName = userRoleName;
}
public Integer getAge() {
Date date = new Date();
Integer age = date.getYear() - birthday.getYear();
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
Service层
bill
package service.bill;
import pojo.Bill;
import java.util.List;
public interface BillService {
public List<Bill> getBillList(String queryProductName, String providerList_id, String queryIsPayment01);
public boolean add(Bill bill);
public Bill getBill(String billCode);
public boolean deleteBill(String billCode);
public int updateBill(Bill bill);
}
package service.bill;
import dao.BaseDao;
import dao.bill.BillDao;
import dao.bill.BillDaoImpl;
import org.junit.jupiter.api.Test;
import pojo.Bill;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class BillServiceImpl implements BillService {
//业务层都会调用dao层,所以我们要引入Dao层;
private BillDao billDao;
public BillServiceImpl() {
billDao = new BillDaoImpl();
}
@Override
public List<Bill> getBillList(String queryProductName, String providerList_id, String queryIsPayment01) {
Connection connection = null;
List<Bill> billList = null;
System.out.println("queryProductName--->" + queryProductName);
System.out.println("providerList_id--->" + providerList_id);
System.out.println("queryIsPayment01--->" + queryIsPayment01);
try {
connection = BaseDao.getConnection();
billList = billDao.getBillList(connection, queryProductName, providerList_id, queryIsPayment01);
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return billList;
}
@Override
public boolean add(Bill bill) {
boolean flag = false;
Connection connection = null;
try {
connection = BaseDao.getConnection();
connection.setAutoCommit(false);//开启JDBC事务管理
int updateRows = billDao.add(connection, bill);
connection.commit();
if (updateRows > 0) {
flag = true;
System.out.println("add success");
} else {
System.out.println("add failed");
}
} catch (Exception e) {
e.printStackTrace();
try {
System.out.println("rollback=====");
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public Bill getBill(String billCode) {
Connection connection = null;
Bill bill = null;
try {
connection = BaseDao.getConnection();
bill = billDao.getBill(connection, billCode);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return bill;
}
@Override
public boolean deleteBill(String billCode) {
Connection connection = null;
boolean flag = false;
try {
connection = BaseDao.getConnection();
if (billDao.deleteUserById(connection, billCode) > 0)
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public int updateBill(Bill bill) {
Connection connection = null;
int count = 0;
try {
connection = BaseDao.getConnection();
count = billDao.updateBill(connection, bill);
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return count;
}
/*
测试方法
*/
@Test
public void test1() {
BillServiceImpl billService = new BillServiceImpl();
Bill bill = new Bill();
bill.setBillCode("11111");
int count = billService.updateBill(bill);
System.out.println(count);
}
@Test
public void test() {
BillServiceImpl billService = new BillServiceImpl();
Bill bill = billService.getBill("BILL2016_002");
System.out.println(bill);
}
}
provider
package service.provider;
import pojo.Provider;
import java.util.List;
public interface ProviderServiceDao {
//订单页面获取供应商列表
public List<Provider> getProviderList();
//获取全部供应商信息
public List<Provider> getProviderList_Pro(String queryProCode,String queryProName);
public boolean add(Provider provider);
public Provider getProvider(String proid);
public int updateProvider(Provider provider);
public boolean deleteProvider(String proid);
}
package service.provider;
import dao.BaseDao;
import dao.provider.ProviderDao;
import dao.provider.ProviderDaoImpl;
import org.junit.jupiter.api.Test;
import pojo.Provider;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class ProviderServiceImpl implements ProviderServiceDao {
private ProviderDao providerDao;
public ProviderServiceImpl() {
providerDao = new ProviderDaoImpl();
}
@Override
public List<Provider> getProviderList() {
Connection connection = null;
List<Provider> providerList = null;
try {
connection = BaseDao.getConnection();
providerList = providerDao.getProviderList(connection);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return providerList;
}
@Override
public List<Provider> getProviderList_Pro(String queryProCode, String queryProName) {
Connection connection = null;
List<Provider> providerList = null;
try {
connection = BaseDao.getConnection();
providerList = providerDao.getProviderList_Pro(connection, queryProCode, queryProName);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return providerList;
}
@Override
public boolean add(Provider provider) {
boolean flag = false;
Connection connection = null;
try {
connection = BaseDao.getConnection();
connection.setAutoCommit(false);//开启JDBC事务管理
int updateRows = providerDao.add(connection, provider);
connection.commit();
if (updateRows > 0) {
flag = true;
System.out.println("add success");
} else {
System.out.println("add failed");
}
} catch (Exception e) {
e.printStackTrace();
try {
System.out.println("rollback=====");
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public Provider getProvider(String proid) {
Connection connection = null;
Provider provider = null;
try {
connection = BaseDao.getConnection();
provider = providerDao.getProvider(connection, proid);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return provider;
}
@Override
public int updateProvider(Provider provider) {
Connection connection = null;
int count = 0;
try {
connection = BaseDao.getConnection();
count = providerDao.updateProvider(connection, provider);
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return count;
}
@Override
public boolean deleteProvider(String proid) {
Connection connection = null;
boolean flag = false;
try {
connection = BaseDao.getConnection();
if (providerDao.deleteProviderById(connection, proid) > 0)
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
/*
测试方法
*/
@Test
public void test() {
ProviderServiceImpl providerService = new ProviderServiceImpl();
List<Provider> providerList = providerService.getProviderList();
for (Provider provider : providerList
) {
System.out.println(provider.getProName());
}
}
}
role
package service.role;
import pojo.Role;
import java.util.List;
public interface RoleService {
//获取角色列表
public List<Role> getRoleList();
}
package service.role;
import dao.BaseDao;
import dao.role.RoleDao;
import dao.role.RoleDaoImpl;
import org.junit.jupiter.api.Test;
import pojo.Role;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class RoleServiceImpl implements RoleService {
/*
引入Dao
*/
private RoleDao roleDao;
public RoleServiceImpl() {
roleDao = new RoleDaoImpl();
}
@Override
public List<Role> getRoleList() {
Connection connection = null;
List<Role> roleList = null;
try {
connection = BaseDao.getConnection();
roleList = roleDao.getRoleList(connection);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return roleList;
}
/*
测试方法
*/
@Test
public void test() {
RoleServiceImpl roleService = new RoleServiceImpl();
List<Role> roleList = roleService.getRoleList();
for (Role role : roleList
) {
System.out.println(role.getRoleName());
}
}
}
user
package service.user;
import pojo.User;
import java.util.List;
public interface UserService {
//用户登录
public User login(String userCode, String password);
//根据用户ID修改密码
public boolean updatePwd(int id, String pwd);
//查询记录数
public int getUserCount(String username, int userRole);
//根据条件查询用户列表
public List<User> getUserList(String queryUserName, int queryUserRole, int currentPageNo, int pageSize);
//增加用户信息
public boolean add(User user);
//删除用户
public boolean deleteUserById(Integer delId);
//查看用户信息
public User getUser(int userID);
public int updateUser(User user);
}
package service.user;
import dao.BaseDao;
import dao.user.UserDao;
import dao.user.UserDaoImpl;
import org.junit.jupiter.api.Test;
import pojo.User;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class UserServiceImpl implements UserService {
//业务层都会调用dao层,所以我们要引入Dao层;
private UserDao userDao;
public UserServiceImpl() {
userDao = new UserDaoImpl();
}
/*
用户登录
*/
@Override
public User login(String userCode, String password) {
Connection connection = null;
User user = null;
try {
connection = BaseDao.getConnection();
//通过业务层调用对应的具体的数据库操作
user = userDao.getLoginUser(connection, userCode);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return user;
}
@Override
public boolean updatePwd(int id, String pwd) {
Connection connection = null;
boolean flag = false;
//修改密码
try {
connection = BaseDao.getConnection();
if (userDao.updatePwd(connection, id, pwd) > 0) {
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public int getUserCount(String username, int userRole) {
Connection connection = null;
int count = 0;
try {
connection = BaseDao.getConnection();
count = userDao.getUserCount(connection, username, userRole);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return count;
}
@Override
public List<User> getUserList(String queryUserName, int queryUserRole, int currentPageNo, int pageSize) {
Connection connection = null;
List<User> userList = null;
try {
connection = BaseDao.getConnection();
userList = userDao.getUserList(connection, queryUserName, queryUserRole, currentPageNo, pageSize);
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return userList;
}
@Override
public boolean add(User user) {
boolean flag = false;
Connection connection = null;
try {
connection = BaseDao.getConnection();
connection.setAutoCommit(false);//开启JDBC事务管理
int updateRows = userDao.add(connection, user);
connection.commit();
if (updateRows > 0) {
flag = true;
System.out.println("add success");
} else {
System.out.println("add failed");
}
} catch (Exception e) {
e.printStackTrace();
try {
System.out.println("rollback=====");
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public boolean deleteUserById(Integer delId) {
Connection connection = null;
boolean flag = false;
try {
connection = BaseDao.getConnection();
if (userDao.deleteUserById(connection, delId) > 0)
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return flag;
}
@Override
public User getUser(int userID) {
Connection connection = null;
User user = null;
try {
connection = BaseDao.getConnection();
user = userDao.getUser(connection, userID);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return user;
}
@Override
public int updateUser(User user) {
Connection connection = null;
int count = 0;
try {
connection = BaseDao.getConnection();
count = userDao.updateUser(connection, user);
} catch (Exception e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection, null, null);
}
return count;
}
/*
测试方法
* */
@Test
public void test01(){
UserServiceImpl userService = new UserServiceImpl();
int userCount = userService.getUserCount(null, 3);
System.out.println(userCount);
}
@Test
public void test02(){
UserServiceImpl userService = new UserServiceImpl();
User admin = userService.login("admin", "1346");
System.out.println(admin.getUserPassword());
}
}
Servlet层
LoginServlet
package servlet.user;
import pojo.User;
import service.user.UserServiceImpl;
import util.Constants;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
/*
登录
Servlet:控制层,调用业务层代码
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("LoginServlet ---start...");
//获取前端输入的用户名和密码
String userCode = req.getParameter("userCode");
String userPassword = req.getParameter("userPassword");
//和数据库中的密码进行对比,调用业务层;
UserServiceImpl userService = new UserServiceImpl();
User user = userService.login(userCode, userPassword);
//与数据库的数据对比,检验密码是否正确
if (user != null && userPassword.equals(user.getUserPassword())) {
//查有此人,可以登录
//将用户的信息放到Session中;
req.getSession().setAttribute(Constants.USER_SESSION, user);
//跳转到主页
resp.sendRedirect("jsp/frame.jsp");
} else {
/*
查无此人,无法登录
转发回登录页面,顺带提示它,用户名或者密码错误
*/
req.setAttribute("error", "用户名或者密码不正确");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
LogoutServlet
package servlet.user;
import util.Constants;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LogoutServlet extends HttpServlet {
/*
注销
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
移除用户的Constants.USER_SESSION
并转发回登录页面
*/
req.getSession().removeAttribute(Constants.USER_SESSION);
resp.sendRedirect(req.getContextPath() + "/login.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
UserServlet
package servlet.user;
import com.alibaba.fastjson.JSONArray;
import com.mysql.cj.util.StringUtils;
import pojo.Role;
import pojo.User;
import service.role.RoleServiceImpl;
import service.user.UserService;
import service.user.UserServiceImpl;
import util.Constants;
import util.PageSupport;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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;
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String method = req.getParameter("method");
if (method.equals("savepwd") && !StringUtils.isNullOrEmpty(method)) {
//修改密码
this.updatePwd(req, resp);
} else if (method.equals("pwdmodify") && !StringUtils.isNullOrEmpty(method)) {
//验证旧密码,session中有用户的密码
this.pwdModify(req, resp);
} else if (method.equals("query") && !StringUtils.isNullOrEmpty(method)) {
//查
this.query(req, resp);
} else if (method.equals("add") && !StringUtils.isNullOrEmpty(method)) {
//增
this.add(req, resp);
} else if (method.equals("deluser") && !StringUtils.isNullOrEmpty(method)) {
//删
this.delUser(req, resp);
} else if (method.equals("view") && !StringUtils.isNullOrEmpty(method)) {
//查看详情信息
this.getUser(req, resp, "userview.jsp");
} else if (method.equals("modify") && !StringUtils.isNullOrEmpty(method)) {
//得到要修改的对象
this.getUser02(req, resp, "usermodify.jsp");
} else if (method.equals("modifyexe") && !StringUtils.isNullOrEmpty(method)) {
//改
this.updateUser(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
//修改用户
private void updateUser(HttpServletRequest req, HttpServletResponse resp) {
String uid = req.getParameter("uid");
String userName = req.getParameter("userName");
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");
User user = null;
try {
if (!StringUtils.isNullOrEmpty(uid)) {
user = new User();
user.setUserName(userName);
user.setGender(Integer.valueOf(gender));
user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));
user.setPhone(phone);
user.setAddress(address);
user.setUserRole(Integer.valueOf(userRole));
user.setId(Integer.valueOf(uid));
Object o = req.getSession().getAttribute(Constants.USER_SESSION);
user.setModifyBy(((User) o).getId());
user.setModifyDate(new Date());
UserServiceImpl userService = new UserServiceImpl();
int i = userService.updateUser(user);
if (i == 1) {
//query
resp.sendRedirect(req.getContextPath() + "/jsp/user.do?method=query&uid=" + uid);
//req.getRequestDispatcher("/jsp/user.do?method=view&uid="+uid).forward(req,resp);
/*resp.sendRedirect(req.getContextPath()+"/jsp/user.do?method=view&uid="+uid);*/
} else {
req.getRequestDispatcher("usermodify.jsp").forward(req, resp);
}
} else {
req.getRequestDispatcher("usermodify.jsp").forward(req, resp);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/*修改用户*/
private void getUser02(HttpServletRequest req, HttpServletResponse resp, String url) throws ServletException, IOException {
String uid = req.getParameter("uid");
if (!StringUtils.isNullOrEmpty(uid)) {
UserServiceImpl userService = new UserServiceImpl();
User user = userService.getUser(Integer.parseInt(uid));
req.setAttribute("user", user);
req.getRequestDispatcher(url).forward(req, resp);
}
}
/*查看用户*/
private void getUser(HttpServletRequest req, HttpServletResponse resp, String url) throws ServletException, IOException {
String uid = req.getParameter("uid");
if (!StringUtils.isNullOrEmpty(uid)) {
UserServiceImpl userService = new UserServiceImpl();
User user = userService.getUser(Integer.parseInt(uid));
req.setAttribute("user", user);
req.getRequestDispatcher(url).forward(req, resp);
}
}
/*删除用户*/
private void delUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("uid");
Integer delId = 0;
try {
delId = Integer.parseInt(id);
} catch (Exception e) {
delId = 0;
}
HashMap<String, String> resultMap = new HashMap<>();
if (delId <= 0) {
resultMap.put("delResult", "notexist");
} else {
UserService userService = new UserServiceImpl();
if (userService.deleteUserById(delId)) {
resultMap.put("delResult", "true");
} else {
resultMap.put("delResult", "false");
}
}
//把resultMap转换成json对象输出
resp.setContentType("application/json");
PrintWriter outPrintWriter = resp.getWriter();
outPrintWriter.write(JSONArray.toJSONString(resultMap));
outPrintWriter.flush();
outPrintWriter.close();
}
/*增加用户*/
private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
System.out.println("add()==========");
//获取前端的参数
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");
User user = new User();
user.setUserCode(userCode);
user.setUserName(userName);
user.setUserPassword(userPassword);
user.setAddress(address);
try {
user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));
} catch (ParseException e) {
e.printStackTrace();
}
user.setGender(Integer.valueOf(gender));
user.setPhone(phone);
user.setUserRole(Integer.valueOf(userRole));
user.setCreatedBy(((User) req.getSession().getAttribute(Constants.USER_SESSION)).getId());
UserServiceImpl userService = new UserServiceImpl();
if (userService.add(user)) {
resp.sendRedirect(req.getContextPath() + "/jsp/user.do?method=query");
} else {
req.getRequestDispatcher("useradd.jsp").forward(req, resp);
}
}
/* 查询*/
public void query(HttpServletRequest req, HttpServletResponse resp) {
//查询用户列表
//从前端获取数据
String queryUserName = req.getParameter("queryname");
String temp = req.getParameter("queryUserRole");
String pageIndex = req.getParameter("pageIndex");
int queryUserRole = 0;
//获取用户列表
UserServiceImpl userService = new UserServiceImpl();
List<User> userList = null;
//第一次走这个请求,一定是第一页,页面大小固定的
int pageSize = 5;//可以把这个配置到配置文件中,方便后期修改
int currentPageNo = 1;
if (queryUserName == null) {
queryUserName = "";
}
if (temp != null && !temp.equals("")) {
queryUserRole = Integer.parseInt(temp); //给查询赋值 0,1,2,3
}
if (pageIndex != null) {
currentPageNo = Integer.parseInt(pageIndex);
}
//获取用户的总数(分页:上一页,下一页的情况)
int totalCount = userService.getUserCount(queryUserName, queryUserRole);
//总页数支持
PageSupport pageSupport = new PageSupport();
pageSupport.setCurrentPageNo(currentPageNo);
pageSupport.setPageSize(pageSize);
pageSupport.setTotalCount(totalCount);
int totalPageCount = ((int) (totalCount / pageSize)) + 1;//总共有几页
//控制首页和尾页
//如果页面要小于1了,就显示第一页的东西
if (currentPageNo < 1) {
currentPageNo = 1;
} else if (currentPageNo > totalPageCount) {//当前页面大于了最后一页
currentPageNo = totalPageCount;
}
//获取用户列表展示
userList = userService.getUserList(queryUserName, queryUserRole, currentPageNo, pageSize);
req.setAttribute("userList", userList);
RoleServiceImpl roleService = new RoleServiceImpl();
List<Role> roleList = roleService.getRoleList();
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();
}
}
/*修改密码*/
public void updatePwd(HttpServletRequest req, HttpServletResponse resp) {
//从Session里面拿ID;
Object o = req.getSession().getAttribute(Constants.USER_SESSION);
String newpassword = req.getParameter("newpassword");
System.out.println("UserServlet:" + newpassword);
boolean flag = false;
System.out.println(o != null);
System.out.println(StringUtils.isNullOrEmpty(newpassword));
if (o != null && newpassword != null) {
UserService userService = new UserServiceImpl();
flag = userService.updatePwd(((User) o).getId(), newpassword);
if (flag) {
req.setAttribute("message", "修改密码成功,请退出,所以新密码登录");
//密码修改成功,移除当前的Session
req.getSession().removeAttribute(Constants.USER_SESSION);
} else {
req.setAttribute("message", "密码修改失败");
}
} else {
req.setAttribute("message", "新密码有问题");
}
try {
req.getRequestDispatcher("pwdmodify.jsp").forward(req, resp);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/*验证旧密码,session中有用户的密码*/
public void pwdModify(HttpServletRequest req, HttpServletResponse resp) {
//从Session里面拿ID;
Object o = req.getSession().getAttribute(Constants.USER_SESSION);
String oldpassword = req.getParameter("oldpassword");
//万能的Map:结果集
Map<String, String> resultMap = new HashMap<String, String>();
if (o == null) {//Session失效了,session过期了
resultMap.put("result", "sessionerror");
} else if (StringUtils.isNullOrEmpty(oldpassword)) {//输入的密码为空
resultMap.put("result", "error");
} else {
String userPassword = ((User) o).getUserPassword();//Session中用户的密码
if (oldpassword.equals(userPassword)) {
resultMap.put("result", "true");
} else {
resultMap.put("result", "false");
}
}
try {
resp.setContentType("application/json");
PrintWriter writer = resp.getWriter();
//JSONArray 阿里巴巴的JSON工具类,转换格式
writer.write(JSONArray.toJSONString(resultMap));
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BillServlet
package servlet.bill;
import com.alibaba.fastjson.JSONArray;
import com.mysql.cj.util.StringUtils;
import pojo.Bill;
import pojo.Provider;
import service.bill.BillService;
import service.bill.BillServiceImpl;
import service.provider.ProviderServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
public class BillServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String method = req.getParameter("method");
if (method.equals("query") && !StringUtils.isNullOrEmpty(method)) {
//查
this.query(req, resp);
} else if (method.equals("add") && !StringUtils.isNullOrEmpty(method)) {
//增
this.add(req, resp);
} else if (method.equals("view") && !StringUtils.isNullOrEmpty(method)) {
//查看详情信息
this.getBill(req, resp, "billview.jsp");
} else if (method.equals("delbill") && !StringUtils.isNullOrEmpty(method)) {
//删
this.delBill(req, resp);
} else if (method.equals("modify") && !StringUtils.isNullOrEmpty(method)) {
//得到要修改的对象
this.getBill02(req, resp, "billmodify.jsp");
} else if (method.equals("modifysave") && !StringUtils.isNullOrEmpty(method)) {
//改
this.updateUser(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
private void updateUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
从前端获取数据
*/
String billCode = req.getParameter("billCode");
String productName = req.getParameter("productName");
String productUnit = req.getParameter("productUnit");
String productCount = req.getParameter("productCount");
String totalPrice = req.getParameter("totalPrice");
String providerId = req.getParameter("providerId");
String isPayment = req.getParameter("isPayment");
Bill bill = null;
try {
if (!StringUtils.isNullOrEmpty(billCode)) {
bill = new Bill();
bill.setBillCode(billCode);
bill.setProductName(productName);
bill.setProductUnit(productUnit);
bill.setProductCount(new BigDecimal(productCount));
bill.setTotalPrice(new BigDecimal(totalPrice));
bill.setProviderId(Integer.valueOf(providerId));
bill.setIsPayment(Integer.valueOf(isPayment));
BillServiceImpl billService = new BillServiceImpl();
int i = billService.updateBill(bill);
if (i == 1) {
resp.sendRedirect(req.getContextPath() + "/jsp/bill.do?method=query");
} else {
req.getRequestDispatcher("billmodify.jsp").forward(req, resp);
}
} else {
req.getRequestDispatcher("billmodify.jsp").forward(req, resp);
}
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getBill02(HttpServletRequest req, HttpServletResponse resp, String url) throws ServletException, IOException {
String billCode = req.getParameter("billid");
BillServiceImpl billService = new BillServiceImpl();
Bill bill = billService.getBill(billCode);
req.setAttribute("bill", bill);
req.getRequestDispatcher(url).forward(req, resp);
}
private void delBill(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String billCode = req.getParameter("billid");
HashMap<String, String> resultMap = new HashMap<>();
BillService billService = new BillServiceImpl();
if (billService.deleteBill(billCode)) {
resultMap.put("delResult", "true");
} else {
resultMap.put("delResult", "false");
}
//把resultMap转换成json对象输出
resp.setContentType("application/json");
PrintWriter outPrintWriter = resp.getWriter();
outPrintWriter.write(JSONArray.toJSONString(resultMap));
outPrintWriter.flush();
outPrintWriter.close();
}
private void getBill(HttpServletRequest req, HttpServletResponse resp, String url) throws ServletException, IOException {
String billCode = req.getParameter("billid");
BillServiceImpl billService = new BillServiceImpl();
Bill bill = billService.getBill(billCode);
req.setAttribute("bill", bill);
req.getRequestDispatcher(url).forward(req, resp);
}
private void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
从前端获取数据
*/
String billCode = req.getParameter("billCode");
String productName = req.getParameter("productName");
String productUnit = req.getParameter("productUnit");
String productCount = req.getParameter("productCount");
String totalPrice = req.getParameter("totalPrice");
String providerId = req.getParameter("providerId");
String isPayment = req.getParameter("isPayment");
Bill bill = new Bill();
bill.setBillCode(billCode);
bill.setProviderName(productName);
bill.setProductUnit(productUnit);
BigDecimal productCount01 = new BigDecimal(productCount);
bill.setProductCount(productCount01);
BigDecimal totalPrice01 = new BigDecimal(totalPrice);
bill.setProductCount(totalPrice01);
bill.setProviderId(Integer.valueOf(providerId));
bill.setIsPayment(Integer.valueOf(isPayment));
BillServiceImpl billService = new BillServiceImpl();
if (billService.add(bill)) {
resp.sendRedirect(req.getContextPath() + "/jsp/bill.do?method=query");
} else {
req.getRequestDispatcher("billadd.jsp").forward(req, resp);
}
}
private void query(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
获取前端的数据
*/
//商品名称
String queryProductName = req.getParameter("queryProductName");
//供应商
String providerList_id = req.getParameter("queryProviderId");
//是否付款
String queryIsPayment01 = req.getParameter("queryIsPayment");
//获取订单列表
BillServiceImpl billService = new BillServiceImpl();
List<Bill> billList = null;
//加展示
billList = billService.getBillList(queryProductName, providerList_id, queryIsPayment01);
req.setAttribute("billList", billList);
//商品名称
req.setAttribute("queryProductName", queryProductName);
//供应商
ProviderServiceImpl providerService = new ProviderServiceImpl();
List<Provider> providerList = providerService.getProviderList();
req.setAttribute("providerList", providerList);
//是否付款
req.setAttribute("queryIsPayment", queryIsPayment01);
//返回前端
try {
req.getRequestDispatcher("billlist.jsp").forward(req, resp);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ProviderServlet
package servlet.provider;
import com.alibaba.fastjson.JSONArray;
import com.mysql.cj.util.StringUtils;
import pojo.Provider;
import service.provider.ProviderServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class ProviderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String method = req.getParameter("method");
if (method.equals("query") && !StringUtils.isNullOrEmpty(method)) {
//查
this.query(req, resp);
} else if (method.equals("add") && !StringUtils.isNullOrEmpty(method)) {
//增
this.add(req, resp);
} else if (method.equals("view") && !StringUtils.isNullOrEmpty(method)) {
//查看详情信息
this.getprovider(req, resp, "providerview.jsp");
} else if (method.equals("modify") && !StringUtils.isNullOrEmpty(method)) {
//得到要修改的对象
this.getprovider(req, resp, "providermodify.jsp");
} else if (method.equals("modifysave") && !StringUtils.isNullOrEmpty(method)) {
//改
this.updateProvider(req, resp);
} else if (method.equals("delprovider") &&!StringUtils.isNullOrEmpty(method)) {
//删
this.delProvider(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
private void delProvider(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String proid = req.getParameter("proid");
HashMap<String, String> resultMap = new HashMap<>();
ProviderServiceImpl providerService = new ProviderServiceImpl();
if (providerService.deleteProvider(proid)) {
resultMap.put("delResult", "true");
} else {
resultMap.put("delResult", "false");
}
//把resultMap转换成json对象输出
resp.setContentType("application/json");
PrintWriter outPrintWriter = resp.getWriter();
outPrintWriter.write(JSONArray.toJSONString(resultMap));
outPrintWriter.flush();
outPrintWriter.close();
}
private void updateProvider(HttpServletRequest req, HttpServletResponse resp) {
String proid = req.getParameter("proID");
String proCode = req.getParameter("proCode");
String proName = req.getParameter("proName");
String proContact = req.getParameter("proContact");
String proPhone = req.getParameter("proPhone");
String proAddress = req.getParameter("proAddress");
String proFax = req.getParameter("proFax");
String proDesc = req.getParameter("proDesc");
Provider provider = null;
try {
if (!StringUtils.isNullOrEmpty(proid)) {
provider = new Provider();
provider.setId(Integer.valueOf(proid));
provider.setProCode(proCode);
provider.setProName(proName);
provider.setProContact(proContact);
provider.setProPhone(proPhone);
provider.setProAddress(proAddress);
provider.setProFax(proFax);
provider.setProDesc(proDesc);
ProviderServiceImpl providerService = new ProviderServiceImpl();
int i = providerService.updateProvider(provider);
if (i == 1) {
resp.sendRedirect(req.getContextPath() + "/jsp/provider.do?method=query");
} else {
req.getRequestDispatcher("providermodify.jsp").forward(req, resp);
}
} else {
req.getRequestDispatcher("providermodify.jsp").forward(req, resp);
}
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getprovider(HttpServletRequest req, HttpServletResponse resp, String url) throws ServletException, IOException {
String proid = req.getParameter("proid");
ProviderServiceImpl providerService = new ProviderServiceImpl();
Provider provider = providerService.getProvider(proid);
req.setAttribute("provider", provider);
req.getRequestDispatcher(url).forward(req, resp);
}
private void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
从前端获取数据
*/
String proCode = req.getParameter("proCode");
String proName = req.getParameter("proName");
String proContact = req.getParameter("proContact");
String proPhone = req.getParameter("proPhone");
String proAddress = req.getParameter("proAddress");
String proFax = req.getParameter("proFax");
String proDesc = req.getParameter("proDesc");
Provider provider = new Provider();
provider.setProCode(proCode);
provider.setProName(proName);
provider.setProDesc(proDesc);
provider.setProContact(proContact);
provider.setProPhone(proPhone);
provider.setProAddress(proAddress);
provider.setProFax(proFax);
provider.setCreationDate(new Date());
ProviderServiceImpl providerService = new ProviderServiceImpl();
if (providerService.add(provider)) {
resp.sendRedirect(req.getContextPath() + "/jsp/provider.do?method=query");
} else {
req.getRequestDispatcher("provideradd.jsp").forward(req, resp);
}
}
private void query(HttpServletRequest req, HttpServletResponse resp) {
/*
获取前端的数据
*/
//供应商编码
String queryProCode = req.getParameter("queryProCode");
//供应商名称
String queryProName = req.getParameter("queryProName");
//供应商信息展示
ProviderServiceImpl providerService = new ProviderServiceImpl();
List<Provider> providerList = null;
providerList = providerService.getProviderList_Pro(queryProCode, queryProName);
req.setAttribute("providerList", providerList);
req.setAttribute("queryProCode", queryProCode);
req.setAttribute("queryProName", queryProName);
//返回前端
try {
req.getRequestDispatcher("providerlist.jsp").forward(req, resp);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
项目运行结果
登录界面

主页界面

订单管理界面

供应商管理界面

用户管理界面

密码修改界面

SMBMS超市管理系统(Javaweb项目)的更多相关文章
- 详细介绍idea实现javaweb项目登入注册(华东交通大学教务处信息管理系统)、模糊查询
详细介绍idea实现javaweb项目登入注册(华东交通大学教务处信息管理系统).模糊查询 1,创建数据库,我的用户名:root 密码:root,数据库名称:lianwei,表名:login 2,效果 ...
- 大一结业项目之一(C#晨曦超市管理系统 )
C#晨曦超市管理系统 我现是湖南工程职业技术学院大一的学生,很快 ...
- javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之一 基础Struts框架搭建篇
即将开始着手写这个项目,所以希望通过这篇博客来记录自己学习的过程 今天开学第一天,就上了软件工程实践课,自己也开始着手做这个大作业了.首先我的项目名称叫做智能班车管理系统. 项目的概况: 该软件产品是 ...
- Linux服务器部署javaweb项目,从环境配置,到最终系统运行
部署准备:javaJDK1.7,Tomcat7.0,MySQL5.8,可运行的javaWeb项目,linux环境的服务器(可以是安装在windows电脑上的linux虚拟机,安装了linux系统的电脑 ...
- 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...
- 手把手教你做JavaWeb项目:登录模块
现如今,无论是客户端还是移动端,无论是游戏登陆还是社交平台登陆,无处不在的“登陆”.那么你知道怎么制作吗?今天就为你娓娓道来: 用户登录 在各大信息管理系统中,登录功能是必不可少的,他的作用就是验证用 ...
- 迷你商城后台管理系统————stage3项目部署测试汇总
系统测试 在项目部署到云服务器之前,已通过本机启动springboot程序,访问localhost:8080,输入登陆的账户等一系列操作测试:功能测试.健壮性测试,系统已满足用户规定的需求. 系统部署 ...
- 迷你商城后台管理系统---------stage3项目部署测试汇总
系统测试 在项目部署到云服务器之前,已通过本机启动springboot程序,访问localhost:8080,输入登陆的账户等一系列操作测试:功能测试.健壮性测试,系统已满足用户规定的需求. 系统部署 ...
- 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发
项目下载:https://download.csdn.net/download/weixin_44893902/13715024 1.9元付费赞助下载:https://download.csdn.ne ...
- log4j在javaWeb项目中的使用
在前边的文章中对log4j的配置文件进行了说明,今天介绍如何在普通的javaWeb项目中使用log4j. 在日常的开发过程中,日志使用的很频繁,我们可以利用日志来跟踪程序的错误,程序运行时的输出参数等 ...
随机推荐
- antv g6 出现 n.addEdge is not a function问题
问题描述直接上图 解决方式就是将edge里面边的source和target对应的id换成字符串类型就行. 例如: edges: [ { id: 299, source": 3629.toSt ...
- Q:windows系统如何开机启动批处理脚本
方法1 1.win+r输入gpedit.msc进入本地策略管理器 2.点击windows设置下的脚本(启动/关机),然后双击启动. 3.点击添加,然后点击浏览,选择批处理文件然后点击确定. 方法2 也 ...
- kettle连接mysql报Communications link failure
添加2个命名参数 1.autoReconnect=true 2.useSSL=false
- java map重写 转大写、转驼峰
/** * @author admin * @Description * 转大写 */ public class HashMapUpper<V> extends HashMap<St ...
- ASP.NET WEBAPI oken验证
看了下网上关于.net webAPI 的案例全是坑 验证成功了不被微信服务器接收 微信客服有找不到,提问也没人回 自己测试好几个小时 终于发现返回结果只要个string 双引号都不用加 public ...
- ubuntu16.04+win10双系统安装
先下载Ubuntu到电脑:http://mirrors.ustc.edu.cn/ubuntu-releases/16.04.6/ubuntu-16.04.6-desktop-amd64.iso 准备个 ...
- 关于rust cargo下载依赖慢的解决方法(转载)
网址: https://zhuanlan.zhihu.com/p/74875840?from_voters_page=true win环境基本输入两个命令就好了 $env:http_proxy=&qu ...
- 实验4_开源控制器实践——OpenDaylight
基础要求 需要提交两张图, 一是Mininet拓扑生成并连接控制器的结果 二是Mininet中ping测试截图,并体现个人信息 进阶要求 1.获取拓扑的交换机 2.获取流表状态数量 3.获取指定交换机 ...
- 如何让Macbook Touch Bar 一直显示F1~F12
原始状态 修改过程 系统偏好设置 > 键盘 将Touch Bar Shous 修改为F1, F2 ,etc. 结果
- Map遍历增加key报错如何解决
public static void main(String[] args) throws Exception{ Map<String,Object> aa=new HashMap< ...