基于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

相关文章

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志