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

相关文章

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置