1.用户模块
1.1登陆(15分)
1)用户名或密码错误不能登陆成功(5分),系统中除了登陆页面,其它页面必须都在登陆后才能查看(使用过滤器校验登陆状态)(5分)。
2)登陆成功后进入首页:
首页显示用户名(5分)
1.2退出登陆(5分)
1.3修改密码(10分)
1)修改当前登陆的用户的密码(5分),旧密码输入错误不能修改(5分),修改成功后需要退出登陆状态,跳转到登陆页,让用户重新登陆(否则扣2分)。
2.账单管理
2.1账单管理(25分)
1)实现按商品名称、供应商、是否付款等条件查询订单,三个条件可以自由组合(10分),供应商从数据库读取(5分)。表格中的供应商名需要使用inner join语句关联查询,否则扣5分。
2)实现翻页功能(10分),翻页必须带查询条件,不带条件扣5分。请准备足够的测试数据。数据不足无法演示效果的,所有功能不得分。
2.2添加账单(15分)
1)实现订单添加功能(12分)。供应商从数据库获取,否则扣5分。
2)添加成功后跳转到账单管理列表页(3分)
2.3修改订单(20分)
1)点击修改按钮,进入修改页面,回填表单中的订单信息(15分),不能回填数据不得分。供应商不能正确回填扣5分,付款状态不能回填扣3分。
2)正确修改订单(5分)
3)修改成功后跳转到列表页,否则扣3分。
2.4删除订单(10分)
1)使用ajax实现删除。不使用ajax不得分。
实体类
public class Bill {
private Integer id;
private String name;//商品名称
private String unit;//单位
private Integer num;
private Double price;
private String providerId;//供应商编号
private String providerName;//供应商名字
private Integer pay;//是否支付 0未支付 1已支付
private String time;
public Bill() {
}
}
public class Manager {
private String username;
private String password;
public Manager() {
}
}
public class Provider {
private String id;
private String name;
private String userId;
private Date time;
public Provider() {
}
}
public class User {
private String id;
private String name;
private Integer sex;//0男 1女
private Integer age;
private String phone;
private String type;//类型
public User() {
}
}
public class ProUser {
private String providerId;
private String providerName;
private String userName;
private String userPhone;
private Date providerTime;
public ProUser() {
}
}
/**
* 查询列表分页显示
*/
public class Page {
private Integer pageNum; //当前第几页
private Integer pageSize; //每页几条
private Integer totalCount; //总共几条
private Integer totalPages; // 总共几页
private Integer startRows; //从第几行开始
public Page() {
}
public Page(Integer pageNum, Integer pageSize) {
this.setPageNum(pageNum);
this.setPagesize(pageSize);
this.startRows = (this.pageNum - 1) * this.pageSize;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
if (pageNum == null || pageNum < 0) {
pageNum = 1;
}
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPagesize(Integer pageSize) {
//当pageSize过大过小时,默认为2
if (pageSize == null || pageSize < 0 || pageSize > 5) {
pageSize = 3;
}
this.pageSize = pageSize;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
//计算总页数
if (this.totalCount % this.pageSize == 0) {
this.totalPages = this.totalCount / this.pageSize;
} else {
this.totalPages = this.totalCount / this.pageSize + 1;
}
}
public Integer getTotalPages() {
return totalPages;
}
public void setTotalPages(Integer totalPages) {
this.totalPages = totalPages;
}
public Integer getStartRows() {
return startRows;
}
public void setStartRows(Integer startRows) {
this.startRows = startRows;
}
}
实体类
package dao;
import entity.Bill;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import util.DBUtils;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class BillDao {
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
/**
* 按条件查询账单
* @param name 商品名称
* @param providerName 供应商名称
* @param pay 是否支付
* @return
*/
public List<Bill> getBill(String name,String providerName,String pay,Integer offset,Integer pageSize){
String sql = "select b.id id,b.name name,p.name providerName,b.price price,b.pay pay,b.`time` time " +
" from bill b inner join provider p " +
" on b.provider_id=p.id " +
" where 1=1 ";
List param = new ArrayList();
if(name!=null){
sql += " and b.name=? ";
param.add(name);
}
if (providerName!=null){
sql += " and p.name=? ";
param.add(providerName);
}
if(pay!=null){
sql += " and b.pay=? ";
param.add(pay);
}
sql += " limit ?,? ";
param.add(offset);
param.add(pageSize);
try {
return queryRunner.query(sql,new BeanListHandler<>(Bill.class),param.toArray());
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public int addBill(Bill bill){
String sql = "insert into bill(name,unit,num,price,provider_id,pay,`time`) values(?,?,?,?,?,?,?)";
try {
return queryRunner.update(sql,bill.getName(),bill.getUnit(),bill.getNum(),bill.getPrice(),bill.getProviderId(),bill.getPay(),bill.getTime());
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
/**
* 根据id获取账单
* @param id
* @return
*/
public Bill getBillById(Integer id){
String sql = "select b.id,b.name,b.unit,b.num,b.price,b.provider_id providerId,p.name providerName,b.pay,b.`time` " +
" from bill b inner join provider p" +
" on b.provider_id = p.id " +
" where b.id=?";
try {
return queryRunner.query(sql,new BeanHandler<>(Bill.class),id);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public int updateBill(Bill bill){
String sql = "update bill set name=?,unit=?,num=?,price=?,provider_id=?,pay=?,`time`=? where id=?";
try {
return queryRunner.update(sql,bill.getName(),bill.getUnit(),bill.getNum(),bill.getProviderId(),bill.getPay(),bill.getTime(),bill.getId());
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
public int deleteBill(Integer id){
String sql = "delete from bill where id=?";
try {
return queryRunner.update(sql,id);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
/**
* 查找共有多少条数据
* @return
*/
public long selectCount(){
String sql = "select count(*) from bill";
try {
return queryRunner.query(sql,new ScalarHandler<>());
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
}
package dao;
import entity.Manager;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import util.DBUtils;
import java.sql.SQLException;
public class ManagerDao {
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
/**
* 根据用户名获取管理员数据
* @param username
* @return
*/
public Manager getManager(String username){
String sql = "select username,password from manager where username=?";
try {
return queryRunner.query(sql,new BeanHandler<>(Manager.class),username);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 修改密码
* @param username
* @param password
* @return
*/
public int updatePassword(String username,String password){
String sql = "update manager set password=? where username=?";
try {
return queryRunner.update(sql,password,username);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
}
package dao;
import entity.ProUser;
import entity.Provider;
import entity.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.DBUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ProviderDao {
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
/**
* 查询供应商和供应商有关的用户
* ProUser类,封装结果集
* @return
*/
public List<ProUser> getAllProvider(){
String sql = "select p.id providerId,p.name providerName,u.name userName,u.phone userPhone,p.`time` providerTime " +
" from provider p inner join user u " +
" on p.user_id = u.id";
try {
return queryRunner.query(sql,new BeanListHandler<ProUser>(ProUser.class) );
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 获取所有供应商名称
* @return
*/
public List<Provider> getProviderName(){
String sql = "select name from provider";
try {
return queryRunner.query(sql,new BeanListHandler<>(Provider.class));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据厂商名获取厂商id
* @param name
* @return
*/
public Provider getProviderId(String name){
String sql = "select id from provider where name=?";
try {
return queryRunner.query(sql, new BeanHandler<>(Provider.class),name);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
package dao;
import entity.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.DBUtils;
import java.sql.SQLException;
import java.util.List;
public class UserDao {
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
/**
* 查询全部user
* @return
*/
public List<User> getAllUser(){
String sql = "select id,name,sex,age,phone,type from user";
try {
return queryRunner.query(sql,new BeanListHandler<>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
service
package service;
import dao.BillDao;
import entity.Bill;
import entity.Page;
import java.util.List;
public class BillService {
public List<Bill> getBill(String name, String providerName, String pay, Page page){
BillDao billDao = new BillDao();
long count = billDao.selectCount();
page.setTotalCount((int)count);
return billDao.getBill(name,providerName,pay,page.getStartRows(),page.getPageSize());
}
public int addBill(Bill bill){
BillDao billDao = new BillDao();
return billDao.addBill(bill);
}
public Bill getBillById(Integer id){
BillDao billDao = new BillDao();
return billDao.getBillById(id);
}
public int updateBill(Bill bill){
BillDao billDao = new BillDao();
return billDao.updateBill(bill);
}
public int deleteBill(Integer id){
BillDao billDao = new BillDao();
return billDao.deleteBill(id);
}
}
package service;
import dao.ManagerDao;
import entity.Manager;
public class ManagerService {
/**
* 管理员登录
* 判断用户名密码是否正确
* @param username
* @param password
* @return
*/
public Manager loginManager(String username, String password) {
ManagerDao managerDao = new ManagerDao();
Manager manager = managerDao.getManager(username);
if (manager == null || !manager.getPassword().equals(password)) {
return null;
}
return manager;
}
/**
* 检查密码
* @param username
* @param oldPassword 旧密码
* @param newPassword 新密码
* @param reNewPassword 重复新密码
* @return
*/
public int checkPassword(String username,String oldPassword,String newPassword,String reNewPassword){
ManagerDao managerDao = new ManagerDao();
Manager manager = managerDao.getManager(username);
if(manager!=null&&oldPassword!=null&&newPassword!=null&&reNewPassword!=null) {
if (!manager.getPassword().equals(oldPassword)) {
return 1;//填入的旧密码与管理员密码不符合
}
if (newPassword.equals(oldPassword)) {
return 2; //填入的新密码与旧密码相同
}
if (!newPassword.equals(reNewPassword)) {
return 3;//重复填入的新密码与新密码不同
}
return 4;//符合要求,修改密码
}else {
return 0;
}
}
public int updatePassword(String username,String password){
ManagerDao managerDao = new ManagerDao();
return managerDao.updatePassword(username,password);
}
}
package service;
import dao.ProviderDao;
import entity.ProUser;
import entity.Provider;
import java.util.List;
public class ProviderService {
public List<ProUser> getAllProvider(){
ProviderDao providerDao = new ProviderDao();
return providerDao.getAllProvider();
}
public List<Provider> getProviderName(){
ProviderDao providerDao = new ProviderDao();
return providerDao.getProviderName();
}
public Provider getProviderId(String name){
ProviderDao providerDao = new ProviderDao();
return providerDao.getProviderId(name);
}
}
package service;
import dao.UserDao;
import entity.User;
import java.util.List;
public class UserService {
/**
* 获取全部user
* @return
*/
public List<User> getAllUser(){
UserDao userDao = new UserDao();
return userDao.getAllUser();
}
}
servlet
package servlet;
import entity.Manager;
import service.ManagerService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
*管理员登录
*/
@WebServlet(name = "ManagerLoginServlet", urlPatterns = "/login")
public class ManagerLoginServlet extends HttpServlet {
private ManagerService managerService = new ManagerService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = ParameterUtil.getString(request,"username");
String password = ParameterUtil.getString(request,"password");
//验证用户名和密码不为空
if (username == null) {
goPage("用户名不能为空", request, response);
return;
}
if (password == null) {
goPage("密码不能为空", request, response);
return;
}
Manager manager = managerService.loginManager(username,password);
if(manager==null){
goPage("用户名密码错误",request,response);
return;
}
HttpSession session=request.getSession();
session.setAttribute("manager",manager);
request.getRequestDispatcher("index.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
private void goPage(String message, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("message", message);
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
package servlet;
import service.ManagerService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 修改密码
*/
@WebServlet(name = "PasswordServlet", urlPatterns = "/password")
public class PasswordServlet extends HttpServlet {
private ManagerService managerService = new ManagerService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = ParameterUtil.getString(request, "username");
String password = ParameterUtil.getString(request, "newPassword");
int res = managerService.updatePassword(username, password);
if (res > 0) {
request.setAttribute("message", "密码修改成功");
}else {
request.setAttribute("message", "密码修改失败");
}
request.getRequestDispatcher("login.jsp").forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Manager;
import service.ManagerService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 修改密码
* 检查新旧密码是否一致
* 两次输入新密码是否一致
*/
@WebServlet(name = "CheckPasswordServlet", urlPatterns = "/checkpassword")
public class CheckPasswordServlet extends HttpServlet {
private ManagerService managerService = new ManagerService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = ParameterUtil.getString(request,"username");
String oldPassword = ParameterUtil.getString(request,"oldPassword");
String newPassword = ParameterUtil.getString(request,"newPassword");
String reNewPassword = ParameterUtil.getString(request,"reNewPassword");
Manager manager = managerService.loginManager(username,oldPassword);
int res = managerService.checkPassword(username,oldPassword,newPassword,reNewPassword);
if(res==1){//填入的旧密码与管理员密码不符合
request.setAttribute("message","旧密码输入错误");
request.getRequestDispatcher("password.jsp").forward(request,response);
}
if(res==2){//填入的新密码与旧密码相同
request.setAttribute("message","新密码与旧密码相同");
request.getRequestDispatcher("password.jsp").forward(request,response);
}
if(res==3){//重复填入的新密码与新密码不同
request.setAttribute("message","两次密码输入不同");
request.getRequestDispatcher("password.jsp").forward(request,response);
}
if(res==4){//符合要求,修改密码
managerService.updatePassword(username,newPassword);
request.getRequestDispatcher("password?username="+username+"&password="+newPassword).forward(request,response);
}
// ObjectMapper mapper = new ObjectMapper();
// String json = mapper.writeValueAsString(result);
// response.getWriter().write(json);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Bill;
import entity.Page;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* 账单列表
*/
@WebServlet(name = "BillListServlet", urlPatterns = "/billList")
public class BillListServlet extends HttpServlet {
private BillService billService = new BillService();
private ProviderService providerService = new ProviderService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = ParameterUtil.getString(request,"name");
String providerName = ParameterUtil.getString(request,"tigong");
String pay = ParameterUtil.getString(request,"fukuan");
Integer pageNum = ParameterUtil.getInteger(request,"pn");
Integer pageSize = ParameterUtil.getInteger(request,"ps");
Page page = new Page(pageNum,pageSize);
List<Bill> billList = null;
if(name==null&&providerName==null&&pay==null){
billList = billService.getBill(null,null,null,page);
}
else {
billList = billService.getBill(name,providerName,pay,page);
}
List<Provider> providerNameList = providerService.getProviderName();
for (Bill bill : billList) {
System.out.println(bill);
}
request.setAttribute("billList",billList);
request.setAttribute("providerNameList",providerNameList);
request.setAttribute("page",page);
request.getRequestDispatcher("billList.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Bill;
import service.BillService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 查看订单详细信息
*/
@WebServlet(name = "BillViewServlet", urlPatterns = "/billView")
public class BillViewServlet extends HttpServlet {
private BillService billService = new BillService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer id = ParameterUtil.getInteger(request,"id");
Bill bill = billService.getBillById(id);
System.out.println(bill);
request.setAttribute("bill",bill);
request.getRequestDispatcher("billView.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* 修改前获取回填数据
*/
@WebServlet(name = "ToUpdateBillServlet", urlPatterns = "/toupdatebill")
public class ToUpdateBillServlet extends HttpServlet {
private BillService billService = new BillService();
private ProviderService providerService = new ProviderService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer id = ParameterUtil.getInteger(request,"id");
Bill bill = billService.getBillById(id);
List<Provider> providerNameList = providerService.getProviderName();
request.setAttribute("bill",bill);
request.setAttribute("providerNameList",providerNameList);
request.getRequestDispatcher("billUpdate.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 修改
*/
@WebServlet(name = "UpdateBillServlet", urlPatterns = "/updatebill")
public class UpdateBillServlet extends HttpServlet {
private BillService billService = new BillService();
private ProviderService providerService = new ProviderService();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer id = ParameterUtil.getInteger(request,"id");
String name = ParameterUtil.getString(request,"providerName");
String unit = ParameterUtil.getString(request,"people");
Integer num = ParameterUtil.getInteger(request,"phone");
Double price = ParameterUtil.getDouble(request,"address");
String supplier = ParameterUtil.getString(request,"supplier");
Integer pay = ParameterUtil.getInteger(request,"zhifu");
Provider p = providerService.getProviderId(supplier);
Bill bill = new Bill(id,name,unit,num,price,p.getId(),pay,sf.format(new Date()));
int res = billService.updateBill(bill);
if(res>0){
request.setAttribute("message","修改成功");
}else {
request.setAttribute("message","修改失败");
}
response.sendRedirect("billList");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Provider;
import service.ProviderService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* 添加前搜索所有供应商名称
*/
@WebServlet(name = "AddProviderNameServlet", urlPatterns = "/addproname")
public class AddProviderNameServlet extends HttpServlet {
private ProviderService providerService = new ProviderService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Provider> providerNameList = providerService.getProviderName();
for (Provider provider : providerNameList) {
System.out.println(provider.getName());
}
request.setAttribute("providerNameList",providerNameList);
request.getRequestDispatcher("billAdd.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import entity.Bill;
import entity.Provider;
import service.BillService;
import service.ProviderService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* 添加账单
*/
@WebServlet(name = "AddBillServlet", urlPatterns = "/addbill")
public class AddBillServlet extends HttpServlet {
private BillService billService = new BillService();
private ProviderService providerService = new ProviderService();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String billName = ParameterUtil.getString(request,"billName");
String billCom = ParameterUtil.getString(request,"billCom");
Integer billNum = ParameterUtil.getInteger(request,"billNum");
Double money = ParameterUtil.getDouble(request,"money");
String supplier = ParameterUtil.getString(request,"supplier");
Integer pay = ParameterUtil.getInteger(request,"zhifu");
Provider p = providerService.getProviderId(supplier);
System.out.println(p.getId());
Bill bill = new Bill(billName,billCom,billNum,money,p.getId(),pay,sf.format(new Date()));
System.out.println(bill.getName()+bill.getUnit()+bill.getTime());
int res = billService.addBill(bill);
if(res>0){
request.setAttribute("message","添加成功");
}else {
request.setAttribute("message","添加失败");
}
response.sendRedirect("billList");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
package servlet;
import service.BillService;
import util.ParameterUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 删除账单
*/
@WebServlet(name = "DeleteBillServlet", urlPatterns = "/deleteBill")
public class DeleteBillServlet extends HttpServlet {
private BillService billService = new BillService();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=utf-8");
Integer id = ParameterUtil.getInteger(request,"id");
int res = billService.deleteBill(id);
if(res>0){
response.getWriter().write("删除成功");
}else {
response.getWriter().write("删除失败");
}
response.sendRedirect("billList");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
账单列表页面
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>超市账单管理系统</title>
<link rel="stylesheet" href="css/public.css"/>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<!--头部-->
<header class="publicHeader">
<h1>超市账单管理系统</h1>
<div class="publicHeaderR">
<p><span>下午好!</span><span style="color: #fff21b"> ${requestScope.manager.username}</span> , 欢迎你!</p>
<a href="login.jsp">退出</a>
</div>
</header>
<!--时间-->
<section class="publicTime">
<span id="time">2015年1月1日 11:11 星期一</span>
<a href="#">温馨提示:为了能正常浏览,请使用高版本浏览器!(IE10+)</a>
</section>
<!--主体内容-->
<section class="publicMian ">
<div class="left">
<h2 class="leftH2"><span class="span1"></span>功能列表 <span></span></h2>
<nav>
<ul class="list">
<li id="active"><a href="billList">账单管理</a></li>
<li><a href="providerList">供应商管理</a></li>
<li><a href="userList">用户管理</a></li>
<li><a href="password.jsp">密码修改</a></li>
<li><a href="login.jsp">退出系统</a></li>
</ul>
</nav>
</div>
<div class="right">
<div class="location">
<strong>你现在所在的位置是:</strong>
<span>账单管理页面</span>
</div>
<form action="billList" method="post">
<div class="search">
<span>商品名称:</span>
<input type="text" placeholder="请输入商品的名称" name="name" />
<span>供应商:</span>
<select name="tigong" >
<option value="null">--请选择--</option>
<c:forEach items="${providerNameList}" var="pname">
<option value="${pname.name}">${pname.name}</option>
</c:forEach>
</select>
<span>是否付款:</span>
<select name="fukuan">
<option value="null">--请选择--</option>
<option value="1">已付款</option>
<option value="0">未付款</option>
</select>
<input type="submit" value="查询" style="width: 100px;height: 32px"/>
<a href="addproname">添加订单</a>
</div>
</form>
<!--账单表格 样式和供应商公用-->
<table class="providerTable" cellpadding="0" cellspacing="0">
<tr class="firstTr">
<th width="10%">账单id</th>
<th width="20%">商品名称</th>
<th width="10%">供应商</th>
<th width="10%">账单金额</th>
<th width="10%">是否付款</th>
<th width="10%">创建时间</th>
<th width="30%">操作</th>
</tr>
<c:forEach items="${billList}" var="bill">
<tr>
<td>${bill.id}</td>
<td>${bill.name}</td>
<td>${bill.providerName}</td>
<td>${bill.price}</td>
<c:if test="${bill.pay==0}">
<td>未支付</td>
</c:if>
<c:if test="${bill.pay==1}">
<td>已支付</td>
</c:if>
<td>${bill.time}</td>
<td>
<a href="billView?id=${bill.id}"><img src="img/read.png" alt="查看" title="查看"/></a>
<a href="toupdatebill?id=${bill.id}"><img src="img/xiugai.png" alt="修改" title="修改"/></a>
<a href="#" class="removeBill"><img src="img/schu.png" alt="删除" title="删除"/></a>
</td>
</tr>
</c:forEach>
</table>
<div style="float:right;padding:10px">
<a href="billList?pn=1">首页</a>
<%--第1页没有上一页--%>
<c:if test="${requestScope.page.pageNum gt 1}">
<a href="billList?pn=${requestScope.page.pageNum-1}">上一页</a>
</c:if>
<c:forEach begin="1" end="${requestScope.page.totalPages}" varStatus="i">
<a href="billList?pn=${i.count}">第${i.count}页</a>
</c:forEach>
<%--最后一页没有下一页--%>
<c:if test="${requestScope.page.pageNum lt requestScope.page.totalPages}">
<a href="billList?pn=${requestScope.page.pageNum+1}">下一页</a>
</c:if>
<a href="billList?pn=${requestScope.page.totalPages}">末页</a>
</div>
</div>
</section>
<!--点击删除按钮后弹出的页面-->
<div class="zhezhao"></div>
<div class="remove" id="removeBi">
<div class="removerChid">
<h2>提示</h2>
<div class="removeMain">
<p>你确定要删除该订单吗?</p>
<a href="#" onclick="del(id)" id="yes">确定</a>
<a href="#" id="no">取消</a>
</div>
</div>
</div>
<footer class="footer">
</footer>
<script src="js/jquery.js"></script>
<script src="js/js.js"></script>
<script src="js/time.js.bak"></script>
<script>
function del(id) {
$.ajax({
url:"${pageContext.request.contextPath}/deleteBill?id="+id,
type:"get",
success:function (ret) {
}
})
}
</script>
</body>
</html>
账单更新
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>超市账单管理系统</title>
<link rel="stylesheet" href="css/public.css"/>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<!--头部-->
<header class="publicHeader">
<h1>超市账单管理系统</h1>
<div class="publicHeaderR">
<p><span>下午好!</span><span style="color: #fff21b"> ${manager.username}</span> , 欢迎你!</p>
<a href="login.jsp">退出</a>
</div>
</header>
<!--时间-->
<section class="publicTime">
<span id="time">2015年1月1日 11:11 星期一</span>
<a href="#">温馨提示:为了能正常浏览,请使用高版本浏览器!(IE10+)</a>
</section>
<!--主体内容-->
<section class="publicMian ">
<div class="left">
<h2 class="leftH2"><span class="span1"></span>功能列表 <span></span></h2>
<nav>
<ul class="list">
<li id="active"><a href="billList">账单管理</a></li>
<li><a href="providerList">供应商管理</a></li>
<li><a href="userList">用户管理</a></li>
<li><a href="password.jsp">密码修改</a></li>
<li><a href="login.jsp">退出系统</a></li>
</ul>
</nav>
</div>
<div class="right">
<div class="location">
<strong>你现在所在的位置是:</strong>
<span>账单管理页面 >> 订单修改页面</span>
</div>
<div class="providerAdd">
<form action="updatebill">
<input type="hidden" name="id" value="${bill.id}">
<div>
<label for="providerName">商品名称:</label>
<input type="text" name="providerName" id="providerName" value="${bill.name}"/>
<span >*</span>
</div>
<div>
<label for="people">商品单位:</label>
<input type="text" name="people" id="people" value="${bill.unit}"/>
<span>*</span>
</div>
<div>
<label for="phone">商品数量:</label>
<input type="text" name="phone" id="phone" value="${bill.num}"/>
<span>*</span>
</div>
<div>
<label for="address">总金额:</label>
<input type="text" name="address" id="address" value="${bill.price}"/>
<span>*</span>
</div>
<div>
<label >供应商:</label>
<select name="supplier" >
<option value="">--请选择相应的提供商--</option>
<c:forEach items="${requestScope.providerNameList}" var="pname">
<c:if test="${bill.providerName==pname.name}">
<option value="${pname.name}" selected>${pname.name}</option>
</c:if>
<option value="${pname.name}">${pname.name}</option>
</c:forEach>
</select>
<span>*</span>
</div>
<div>
<label >是否付款:</label>
<c:if test="${bill.pay==0}">
<input type="radio" name="zhifu" checked value="0"/>未付款
<input type="radio" name="zhifu" value="1"/>已付款
</c:if>
<c:if test="${bill.pay==1}">
<input type="radio" name="zhifu" value="0"/>未付款
<input type="radio" name="zhifu" checked value="1"/>已付款
</c:if>
</div>
<div class="providerAddBtn">
<!--<a href="#">保存</a>-->
<!--<a href="billList.html">返回</a>-->
<input type="submit" value="保存" onclick="history.back(-1)"/>
<input type="button" value="返回" onclick="history.back(-1)"/>
</div>
</form>
</div>
</div>
</section>
<footer class="footer">
</footer>
<script src="js/time.js"></script>
</body>
</html>