基于javaweb+mysql的jsp+servlet企业财务记账管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

本文主要是介绍基于javaweb+mysql的jsp+servlet企业财务记账管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于javaweb+mysql的jsp+servlet企业财务记账管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

技术框架

JavaBean MVC JSP Servlet MySQL CSS JavaScript Bootstrap Ajax

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

登录、注册、退出、用户模块、公告模块、职工工资模块、企业资产模块、项目经营模块的增删改查管理

eclipse/MyEclipse运行:

idea运行:

 * 而后再调用NoticeService业务层的方法来处理具体的业务,最后将处理完成的结果返回或跳转至相应页面*/
//@WebServlet("/NoticeServlet")
public class NoticeServlet extends HttpServlet {/*** 处理Post请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//过滤编码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String action = request.getParameter("action");if ("add".equals(action)) {//增加Notice vo = new Notice();//取出页面传进来的各个数据,并设置到Notice对象的属性里vo.setNoticeName(request.getParameter("noticeName"));vo.setNoticeText(request.getParameter("noticeText"));vo.setNoticeType(request.getParameter("noticeType"));vo.setCreateDate(request.getParameter("createDate"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层增加方法(add),增加记录noticeService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的公告记录的主键long id = Long.parseLong(request.getParameter("id"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层删除方法(delete),将对应的记录删除noticeService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Notice对象的属性里Notice vo = new Notice();vo.setId(Long.valueOf(request.getParameter("id")));vo.setNoticeName(request.getParameter("noticeName"));vo.setNoticeText(request.getParameter("noticeText"));vo.setNoticeType(request.getParameter("noticeType"));vo.setCreateDate(request.getParameter("createDate"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层更新方法(update),更新记录noticeService.update(vo);this.redirectList(request, response);} else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面Serializable id = request.getParameter("id");//取出页面传入的主键,用于查询详情NoticeService noticeService = new NoticeServiceImpl();Notice vo = noticeService.get(id);response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));
Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页String pageNum = request.getParameter("pageNum");//封装分页参数com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) salaryService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("SalaryServlet");pb.setSearchColumn(searchColumn);pb.setKeyword(keyword);pb.setList(list);request.getSession().setAttribute("pageBean", pb);request.getSession().setAttribute("list", pb.getList());response.sendRedirect("salary_list.jsp");}
}/*** 公告模块的Servlet控制层,负责接收页面传过来的请求参数,根据action参数的值来确定页面要执行的具体操作<br>* 而后再调用NoticeService业务层的方法来处理具体的业务,最后将处理完成的结果返回或跳转至相应页面*/
//@WebServlet("/NoticeServlet")
public class NoticeServlet extends HttpServlet {/*** 处理Post请求** @param request* @param response* @throws ServletException* @throws IOException*/@Override
     * @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);//Get请求和Post请求的处理是一样的,所以把request、response转交给Post方法就好}/*** 根据参数,查询出条例条件的记录集合,最后将数据返回给调用处或者将数据集合设置到session域里,再跳转到对应的列表页面** @param request* @param response*/private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {//查询列和关键字String searchColumn = request.getParameter("searchColumn");String keyword = request.getParameter("keyword");Map<String, Object> params = new HashMap();//用来保存控制层传进来的参数(查询条件)params.put("searchColumn", searchColumn);//要查询的列params.put("keyword", keyword);//查询的关键字NoticeService noticeService = new NoticeServiceImpl();Map<String, Object> map = noticeService.list(params);request.getSession().setAttribute("list", map.get("list"));Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页String pageNum = request.getParameter("pageNum");//封装分页参数com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) noticeService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("NoticeServlet");pb.setSearchColumn(searchColumn);pb.setKeyword(keyword);pb.setList(list);request.getSession().setAttribute("pageBean", pb);request.getSession().setAttribute("list", pb.getList());response.sendRedirect("notice_list.jsp");}
}/*** 这是过滤器* 主要负责过滤编码为utf-8及登录拦截,禁止未登录就访问
                UserService userService = new UserServiceImpl();userService.update(loginUser);msg = "修改成功!";}request.getSession().setAttribute("alert_msg", msg);request.getRequestDispatcher("reset_password.jsp").forward(request, response);} else {response.sendRedirect("login.jsp");}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}// 返回一个随机颜色(Color对象)private Color getRandomColor(int minColor, int maxColor) {Random random = new Random();// 保存minColor最大不会超过255if (minColor > 255)minColor = 255;//  保存minColor最大不会超过255if (maxColor > 255)maxColor = 255;//  获得红色的随机颜色值int red = minColor + random.nextInt(maxColor - minColor);//  获得绿色的随机颜色值int green = minColor + random.nextInt(maxColor - minColor);//  获得蓝色的随机颜色值int blue = minColor + random.nextInt(maxColor - minColor);return new Color(red, green, blue);
            this.redirectList(request, response);}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);//Get请求和Post请求的处理是一样的,所以把request、response转交给Post方法就好}/*** 根据参数,查询出条例条件的记录集合,最后将数据返回给调用处或者将数据集合设置到session域里,再跳转到对应的列表页面** @param request* @param response*/private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {//查询列和关键字String searchColumn = request.getParameter("searchColumn");String keyword = request.getParameter("keyword");Map<String, Object> params = new HashMap();//用来保存控制层传进来的参数(查询条件)params.put("searchColumn", searchColumn);//要查询的列params.put("keyword", keyword);//查询的关键字NoticeService noticeService = new NoticeServiceImpl();Map<String, Object> map = noticeService.list(params);request.getSession().setAttribute("list", map.get("list"));Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页String pageNum = request.getParameter("pageNum");//封装分页参数com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) noticeService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("NoticeServlet");
            String password = request.getParameter("password");String validationCode = request.getParameter("validationCode");if (validationCode != null && !validationCode.equals(request.getSession().getAttribute("validationCode"))) {//验证码不通过request.getSession().setAttribute("alert_msg", "错误:验证码不正确!");request.getRequestDispatcher("login.jsp").forward(request, response);return;}UserService userService = new UserServiceImpl();Map<String, Object> params = new HashMap();List<User> list = (List<User>) userService.list(params).get("list");for (User user : list) {if (user.getUsername().equals(username) && user.getPassword().equals(password)) {//找到这个管理员了request.getSession().setAttribute("loginUser", user);request.getSession().setMaxInactiveInterval(Integer.MAX_VALUE);request.getRequestDispatcher("UserServlet").forward(request, response);return;}}request.getSession().setAttribute("alert_msg", "错误:用户名或密码错误!");request.getRequestDispatcher("login.jsp").forward(request, response);} else if ("register".equalsIgnoreCase(action)) {//注册String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username=" + username);System.out.println("password=" + password);UserService userService = new UserServiceImpl();Map<String, Object> params = new HashMap();params.put("startIndex", 0);params.put("pageSize", Long.MAX_VALUE);List<User> list = (List<User>) userService.list(params).get("list");for (User user : list) {if (user.getUsername().equals(username) /*&& user.getPassword().equals(password)*/) {//说明该用户名已存在,必须换个用户名才能注册request.getSession().setAttribute("alert_msg", "错误:用户名已存在!");request.getRequestDispatcher("register.jsp").forward(request, response);return;}}User vo = new User();
            String password = request.getParameter("password");String validationCode = request.getParameter("validationCode");if (validationCode != null && !validationCode.equals(request.getSession().getAttribute("validationCode"))) {//验证码不通过request.getSession().setAttribute("alert_msg", "错误:验证码不正确!");request.getRequestDispatcher("login.jsp").forward(request, response);return;}UserService userService = new UserServiceImpl();Map<String, Object> params = new HashMap();List<User> list = (List<User>) userService.list(params).get("list");for (User user : list) {if (user.getUsername().equals(username) && user.getPassword().equals(password)) {//找到这个管理员了request.getSession().setAttribute("loginUser", user);request.getSession().setMaxInactiveInterval(Integer.MAX_VALUE);request.getRequestDispatcher("UserServlet").forward(request, response);return;}}request.getSession().setAttribute("alert_msg", "错误:用户名或密码错误!");request.getRequestDispatcher("login.jsp").forward(request, response);} else if ("register".equalsIgnoreCase(action)) {//注册String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username=" + username);System.out.println("password=" + password);UserService userService = new UserServiceImpl();Map<String, Object> params = new HashMap();params.put("startIndex", 0);params.put("pageSize", Long.MAX_VALUE);List<User> list = (List<User>) userService.list(params).get("list");for (User user : list) {if (user.getUsername().equals(username) /*&& user.getPassword().equals(password)*/) {//说明该用户名已存在,必须换个用户名才能注册request.getSession().setAttribute("alert_msg", "错误:用户名已存在!");request.getRequestDispatcher("register.jsp").forward(request, response);return;}}User vo = new User();vo.setUsername(username);vo.setPassword(password);//vo.setUserType("普通用户");//需要设置一个默认值userService.add(vo);request.getSession().setAttribute("alert_msg", "注册成功!用户名:[" + username + "]");request.getRequestDispatcher("login.jsp").forward(request, response);} else if ("logout".equalsIgnoreCase(action)) {//登出HttpSession session = request.getSession();User user = (User) session.getAttribute("loginUser");
            vo.setUsername(username);vo.setPassword(password);//vo.setUserType("普通用户");//需要设置一个默认值userService.add(vo);request.getSession().setAttribute("alert_msg", "注册成功!用户名:[" + username + "]");request.getRequestDispatcher("login.jsp").forward(request, response);} else if ("logout".equalsIgnoreCase(action)) {//登出HttpSession session = request.getSession();User user = (User) session.getAttribute("loginUser");if (user != null) {session.removeAttribute("loginUser");}response.sendRedirect("login.jsp");} else if ("validationCode".equalsIgnoreCase(action)) {String codeChars = "0123456789";// 图形验证码的字符集合,系统将随机从这个字符串中选择一些字符作为验证码//  获得验证码集合的长度int charsLength = codeChars.length();//  下面三条记录是关闭客户端浏览器的缓冲区//  这三条语句都可以关闭浏览器的缓冲区,但是由于浏览器的版本不同,对这三条语句的支持也不同//  因此,为了保险起见,建议同时使用这三条语句来关闭浏览器的缓冲区response.setHeader("ragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);//  设置图形验证码的长和宽(图形的大小)int width = 90, height = 20;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();//  获得用于输出文字的Graphics对象Random random = new Random();g.setColor(getRandomColor(180, 250));// 随机设置要填充的颜色g.fillRect(0, 0, width, height);//  填充图形背景//  设置初始字体g.setFont(new Font("Times New Roman", Font.ITALIC, height));g.setColor(getRandomColor(120, 180));// 随机设置字体颜色//  用于保存最后随机生成的验证码StringBuilder validationCode = new StringBuilder();//  验证码的随机字体String[] fontNames = {"Times New Roman", "Book antiqua", "Arial"};for (int i = 0; i < 4; i++) {//  随机设置当前验证码的字符的字体g.setFont(new Font(fontNames[random.nextInt(3)], Font.ITALIC, height));//  随机获得当前验证码的字符char codeChar = codeChars.charAt(random.nextInt(charsLength));validationCode.append(codeChar);//  随机设置当前验证码字符的颜色g.setColor(getRandomColor(10, 100));//  在图形上输出验证码字符,x和y都是随机生成的g.drawString(String.valueOf(codeChar), 16 * i + random.nextInt(7), height - random.nextInt(6));}
            //取出表要删除的公告记录的主键long id = Long.parseLong(request.getParameter("id"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层删除方法(delete),将对应的记录删除noticeService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Notice对象的属性里Notice vo = new Notice();vo.setId(Long.valueOf(request.getParameter("id")));vo.setNoticeName(request.getParameter("noticeName"));vo.setNoticeText(request.getParameter("noticeText"));vo.setNoticeType(request.getParameter("noticeType"));vo.setCreateDate(request.getParameter("createDate"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层更新方法(update),更新记录noticeService.update(vo);this.redirectList(request, response);} else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面Serializable id = request.getParameter("id");//取出页面传入的主键,用于查询详情NoticeService noticeService = new NoticeServiceImpl();Notice vo = noticeService.get(id);response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));} else {//默认去列表页面this.redirectList(request, response);}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);//Get请求和Post请求的处理是一样的,所以把request、response转交给Post方法就好}/*** 根据参数,查询出条例条件的记录集合,最后将数据返回给调用处或者将数据集合设置到session域里,再跳转到对应的列表页面** @param request* @param response*/private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {
            salaryService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的职工工资记录的主键long id = Long.parseLong(request.getParameter("id"));SalaryService salaryService = new SalaryServiceImpl();//调用Service层删除方法(delete),将对应的记录删除salaryService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Salary对象的属性里Salary vo = new Salary();vo.setId(Long.valueOf(request.getParameter("id")));vo.setSalaryName(request.getParameter("salaryName"));vo.setSalaryNo(request.getParameter("salaryNo"));vo.setSalaryDept(request.getParameter("salaryDept"));vo.setSalaryMoney(request.getParameter("salaryMoney"));vo.setSalaryText(request.getParameter("salaryText"));SalaryService salaryService = new SalaryServiceImpl();//调用Service层更新方法(update),更新记录salaryService.update(vo);this.redirectList(request, response);} else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面Serializable id = request.getParameter("id");//取出页面传入的主键,用于查询详情SalaryService salaryService = new SalaryServiceImpl();Salary vo = salaryService.get(id);response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));} else {//默认去列表页面this.redirectList(request, response);}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        params.put("searchColumn", searchColumn);//要查询的列params.put("keyword", keyword);//查询的关键字SalaryService salaryService = new SalaryServiceImpl();Map<String, Object> map = salaryService.list(params);request.getSession().setAttribute("list", map.get("list"));Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页String pageNum = request.getParameter("pageNum");//封装分页参数com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) salaryService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("SalaryServlet");pb.setSearchColumn(searchColumn);pb.setKeyword(keyword);pb.setList(list);request.getSession().setAttribute("pageBean", pb);request.getSession().setAttribute("list", pb.getList());response.sendRedirect("salary_list.jsp");}
}/*** 公告模块的Servlet控制层,负责接收页面传过来的请求参数,根据action参数的值来确定页面要执行的具体操作<br>* 而后再调用NoticeService业务层的方法来处理具体的业务,最后将处理完成的结果返回或跳转至相应页面
            //  这三条语句都可以关闭浏览器的缓冲区,但是由于浏览器的版本不同,对这三条语句的支持也不同//  因此,为了保险起见,建议同时使用这三条语句来关闭浏览器的缓冲区response.setHeader("ragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);//  设置图形验证码的长和宽(图形的大小)int width = 90, height = 20;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();//  获得用于输出文字的Graphics对象Random random = new Random();g.setColor(getRandomColor(180, 250));// 随机设置要填充的颜色g.fillRect(0, 0, width, height);//  填充图形背景//  设置初始字体g.setFont(new Font("Times New Roman", Font.ITALIC, height));g.setColor(getRandomColor(120, 180));// 随机设置字体颜色//  用于保存最后随机生成的验证码StringBuilder validationCode = new StringBuilder();//  验证码的随机字体String[] fontNames = {"Times New Roman", "Book antiqua", "Arial"};for (int i = 0; i < 4; i++) {//  随机设置当前验证码的字符的字体g.setFont(new Font(fontNames[random.nextInt(3)], Font.ITALIC, height));//  随机获得当前验证码的字符char codeChar = codeChars.charAt(random.nextInt(charsLength));validationCode.append(codeChar);//  随机设置当前验证码字符的颜色g.setColor(getRandomColor(10, 100));//  在图形上输出验证码字符,x和y都是随机生成的g.drawString(String.valueOf(codeChar), 16 * i + random.nextInt(7), height - random.nextInt(6));}HttpSession session = request.getSession();session.setMaxInactiveInterval(5 * 60);//  将验证码保存在session对象中,key为validation_codesession.setAttribute("validationCode", validationCode.toString());g.dispose();//  关闭Graphics对象OutputStream os = response.getOutputStream();ImageIO.write(image, "JPEG", os);// 以JPEG格式向客户端发送图形验证码} else if ("resetPassword".equalsIgnoreCase(action)) {String msg;User loginUser = (User) request.getSession().getAttribute("loginUser");String oldPassword = request.getParameter("oldPassword");if (!loginUser.getPassword().equals(oldPassword)) {msg = "原密码错误!";} else {
                UserService userService = new UserServiceImpl();userService.update(loginUser);msg = "修改成功!";}request.getSession().setAttribute("alert_msg", msg);request.getRequestDispatcher("reset_password.jsp").forward(request, response);} else {response.sendRedirect("login.jsp");}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}// 返回一个随机颜色(Color对象)private Color getRandomColor(int minColor, int maxColor) {Random random = new Random();// 保存minColor最大不会超过255if (minColor > 255)minColor = 255;//  保存minColor最大不会超过255if (maxColor > 255)maxColor = 255;//  获得红色的随机颜色值int red = minColor + random.nextInt(maxColor - minColor);//  获得绿色的随机颜色值int green = minColor + random.nextInt(maxColor - minColor);//  获得蓝色的随机颜色值int blue = minColor + random.nextInt(maxColor - minColor);return new Color(red, green, blue);}
}
            //取出表要删除的公告记录的主键long id = Long.parseLong(request.getParameter("id"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层删除方法(delete),将对应的记录删除noticeService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Notice对象的属性里Notice vo = new Notice();vo.setId(Long.valueOf(request.getParameter("id")));vo.setNoticeName(request.getParameter("noticeName"));vo.setNoticeText(request.getParameter("noticeText"));vo.setNoticeType(request.getParameter("noticeType"));vo.setCreateDate(request.getParameter("createDate"));NoticeService noticeService = new NoticeServiceImpl();//调用Service层更新方法(update),更新记录noticeService.update(vo);this.redirectList(request, response);} else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面Serializable id = request.getParameter("id");//取出页面传入的主键,用于查询详情NoticeService noticeService = new NoticeServiceImpl();Notice vo = noticeService.get(id);response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));} else {//默认去列表页面this.redirectList(request, response);}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);//Get请求和Post请求的处理是一样的,所以把request、response转交给Post方法就好}
     * @throws ServletException* @throws IOException*/@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//过滤编码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String action = request.getParameter("action");if ("add".equals(action)) {//增加Zican vo = new Zican();//取出页面传进来的各个数据,并设置到Zican对象的属性里vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));vo.setZicanDate(request.getParameter("zicanDate"));vo.setZicanText(request.getParameter("zicanText"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层增加方法(add),增加记录zicanService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的企业资产记录的主键long id = Long.parseLong(request.getParameter("id"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层删除方法(delete),将对应的记录删除zicanService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Zican对象的属性里Zican vo = new Zican();vo.setId(Long.valueOf(request.getParameter("id")));vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));vo.setZicanDate(request.getParameter("zicanDate"));vo.setZicanText(request.getParameter("zicanText"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层更新方法(update),更新记录zicanService.update(vo);
//@WebServlet("/ZicanServlet")
public class ZicanServlet extends HttpServlet {/*** 处理Post请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//过滤编码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String action = request.getParameter("action");if ("add".equals(action)) {//增加Zican vo = new Zican();//取出页面传进来的各个数据,并设置到Zican对象的属性里vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));vo.setZicanDate(request.getParameter("zicanDate"));vo.setZicanText(request.getParameter("zicanText"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层增加方法(add),增加记录zicanService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的企业资产记录的主键long id = Long.parseLong(request.getParameter("id"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层删除方法(delete),将对应的记录删除zicanService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Zican对象的属性里Zican vo = new Zican();vo.setId(Long.valueOf(request.getParameter("id")));vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));
        request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String action = request.getParameter("action");if ("add".equals(action)) {//增加Zican vo = new Zican();//取出页面传进来的各个数据,并设置到Zican对象的属性里vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));vo.setZicanDate(request.getParameter("zicanDate"));vo.setZicanText(request.getParameter("zicanText"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层增加方法(add),增加记录zicanService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的企业资产记录的主键long id = Long.parseLong(request.getParameter("id"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层删除方法(delete),将对应的记录删除zicanService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据,并设置到Zican对象的属性里Zican vo = new Zican();vo.setId(Long.valueOf(request.getParameter("id")));vo.setZicanType(request.getParameter("zicanType"));vo.setZicanNo(request.getParameter("zicanNo"));vo.setZicanName(request.getParameter("zicanName"));vo.setZicanWorth(request.getParameter("zicanWorth"));vo.setZicanDate(request.getParameter("zicanDate"));vo.setZicanText(request.getParameter("zicanText"));ZicanService zicanService = new ZicanServiceImpl();//调用Service层更新方法(update),更新记录zicanService.update(vo);this.redirectList(request, response);} else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面Serializable id = request.getParameter("id");//取出页面传入的主键,用于查询详情ZicanService zicanService = new ZicanServiceImpl();Zican vo = zicanService.get(id);response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));} else {//默认去列表页面this.redirectList(request, response);}}/*** 处理Get请求** @param request* @param response* @throws ServletException
            minColor = 255;//  保存minColor最大不会超过255if (maxColor > 255)maxColor = 255;//  获得红色的随机颜色值int red = minColor + random.nextInt(maxColor - minColor);//  获得绿色的随机颜色值int green = minColor + random.nextInt(maxColor - minColor);//  获得蓝色的随机颜色值int blue = minColor + random.nextInt(maxColor - minColor);return new Color(red, green, blue);}
}/*** 项目经营模块的Servlet控制层,负责接收页面传过来的请求参数,根据action参数的值来确定页面要执行的具体操作<br>* 而后再调用JingyinService业务层的方法来处理具体的业务,最后将处理完成的结果返回或跳转至相应页面*/
//@WebServlet("/JingyinServlet")
public class JingyinServlet extends HttpServlet {/*** 处理Post请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

这篇关于基于javaweb+mysql的jsp+servlet企业财务记账管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817505

相关文章

Spring Security常见问题及解决方案

《SpringSecurity常见问题及解决方案》SpringSecurity是Spring生态的安全框架,提供认证、授权及攻击防护,支持JWT、OAuth2集成,适用于保护Spring应用,需配置... 目录Spring Security 简介Spring Security 核心概念1. ​Securit

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter