基于jsp的企业财务管理系统的设计与实现--源代码--【课程设计】

本系列校训

互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天!
毕业论文不怕难,毕业设计来铺垫!打磨技术精心写,拿证之后尽开颜!

毕设的技术铺垫

语言选择收录专辑链接卷的程度
C张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】★★★✫✰
JAVA黑马B站视频JAVA部分的知识范围、学习步骤详解★★★★★
JAVAWEB黑马B站视频JAVAWEB部分的知识范围、学习步骤详解★★★★★
SpringBootSpringBoot知识范围-学习步骤【JSB系列之000】★★★★★
微信小程序详细解析黑马微信小程序视频–【思维导图知识范围】★★★✰✰
python详细解析python视频选择–【思维导图知识范围】★★✫✰✰
phpPHP要怎么学–【思维导图知识范围】★★★✫✰

环境及工具:

本系列环境

环境win11
工具idea 2018
jdk1.8
数据库mysql5.5
maven
项目导入方式打开目录
数据库前端工具navicat

项目说明

不会配置的,或者导入项目报错的,参见《IDEA如何配置JAVAWEB项目
本系统是一个BS系统,使用了servlet技术,特色技术:frame, 日期插件,
特别适合JAVAWEB的课程设计

环境win11
框架JAVAWEB/servlet/非数据库连接池
前后端分离
数据库mysql5.5
maven
项目导入方式打开目录
数据库前端工具navicat

在这里插入图片描述

总体设计

JAVAWEB是很多的地方还有着很强的生命力,在高校的课程里也有着不小的作用 ,并不代表着功能比springBoot 差,只能说是框架更复杂。

B/S结构

B/S模式首先简化了客户端。它无需像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。

再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使 MIS系统维护的限制因素更少。
最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。
鉴于B/S相对于C/S的先进性,本系统采用B/S结构,即Browser/Server(浏览器/服务器)结构,此结构就是只安装维护一个服务器(Server),而客户端直接用浏览器(Browse)就可以运行软件。它是随着Internet技术的兴起,对C/S结构的一种改进。主要利用了成熟的WWW浏览器的技术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是最新的系统构造技术。 在B/S体系结构系统中,用户可以通过浏览器向服务器发出请求,服务器对请求进行处理,将用户所需的信息返回到浏览器。而其余如数据请求、加工以及动态网页的生成、对数据库的访问以及应用程序的执行等工作全部由Web Server完成。

JavaScrip语言

Javascript是基于对象的脚本语言,主要是基于客户端运行的,用户点击带有Javascript的网页,网页里的Javascript就传到浏览器,由浏览器对此作处理。它的代码可以直接嵌入到HTML命令中,最大特点是可以方便操纵网站上的元素,并与Web浏览器交互,同时JavaScrip可以捕捉用户操作并作出反映。
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时的、动态的关系,使网页中包含更多 的活跃元素和更加精彩的内容。在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。

JSP技术

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:
(1)运行方便,编写好之后,不用做任何修改就可在系统上运行。
(2)具有强大的适应性,支持多平台并且可以再任意环境中进行部署。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,并且其中许多已经可以顺利的运行于多种平台之下
(5)支持服务器端的组件。web应用首先需要强大的服务器端的组件来支持,开发人员必须需要利用其他的工具设计来实现复杂功能的组件并供web页面调用,来增强系统性能。JSP可以使用非常成熟的JAVA BEANS 组件来实现比较复杂商务功能。

MVC模式

为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于java的B/S的三层体系结构。MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)[9]。 MVC模式目的就是为了实现Web系统的职能的分工。Model层实现系统中业务的逻辑,通常可以用JavaBean或EJB来实现。 View层用于用户交互,通常用JSP来实现。 Controller层是Model与View之间的沟通桥梁,它可以直接分派用户请求并且选择合适的视图以用于显示,同时它也可以解释用户输入并将它们映射为模型层可执行的操作。Web浏览技术已经广泛地应用于Internet,并被广大用户接受和使用。Web技术是随http和html一起出现的。Web服务器利用http传递html文件,Web浏览器使用http检索html文件。Web服务器一旦检索到信息,Web浏览器就会以静态和交互(如文本、图像)方式显示各种对象。在电子商务业务进行过程中,需要在各种贸易角色之间浏览和交换各种信息,此时就要使用Web浏览技术。 这种模型使系统结构更加清楚,分工更加明确,有利于整个系统后期的维护和升级。
MVC(Model View Controller)模型(model)-视图(view)-控制器(controller)MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC 的目的是将同一个程序可以使用不同的表现形式M和V的实现代码分离,。比如一批统计数据分别用柱状图、饼图来表示。C存在的目是确保M和V的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到广泛的使用 ColdFusion 和 PHP 的开发者的喜爱。模型-视图-控制器模式是一个有用的模型,它的好处很多。
三层体系结构由浏览器、web服务器和数据库组成,并结合HTML语言、jsp、JavaScript脚本语言、Ajax、ODBC等技术,后台的数据库采用微软的SQL Server 2005,系统一般的MVC模型如图1-1所示。
在这里插入图片描述
如图1-1可知,用户界面层是用户和整个系统的接口,客户端只需安装通用的浏览器即可建立与本系统的连接。业务逻辑层负责处理用户输入的信息,或将这些信息发送给数据库层进行保存,或调用数据库层中的函数再次读出这些数据。数据访问层是整个体系的最底层,它主要实现与数据库交互,即完成数据库的增删改查功能,MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。分层概念视图,模型,控制器。
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和像HTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。MVC模型还可以实现软件工程的高内聚,低耦合的终极目标。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器接受用户的输入并调用模型和视图去完成用户需求。所以当单击网页中的超链接或者发送表单时,控制器本身其实并不输出任何东西也不做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求自己本身并不参与业务逻辑处理,然后再确定用哪个视图来显示返回的数据。
MVC的优点:
1)低耦合性
2)可适用性
3)较低成本
4)快速部署
5)可维护性

系统设计概述

系统设计是在系统分析基础上通过抽象得到具体的过程,同时,还考虑到系统所实现的环境和主客观条件。
系统设计阶段主要目的是将系统分析阶段所提出的反映用户信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理方案。
这一阶段的主要任务就是从管理信息系统的总体目标出发,根据系统分析阶段对系统逻辑功能的需求,考虑到经济、技术和环境等方面的条件,可以确定系统的总体结构和系统组成部分的方案,合理选择计算机和通信设备,提出系统的实施计划,确保系统总体目标的实现。
系统设计工作的特点:
1)在系统设计的阶段,大量的工作还是技术性的。
2)允许用户对已提出信息的需求做非原则性修改或着补充。
3)用户在操作使用环境等方面的要求也要在系统设计阶段加以说明并在系统的技术方案中得到反映,因此系统设计人员必须同管理环境打交道。
4)系统设计的环境是管理环境和技术环境的结合,是系统设计工作的重要特点也是整个系统成功的一个必不可缺的环节。
系统设计原则
1) 易用性原则:方便上网客户浏览和操作,最大限度地减轻后台管理人员的负担,做到部分业务的自动化处理,提供良好的用户体验。
2) 阶段开发原则:系统框架和数据结构全面设计,具体功能实现分阶段进行。
3) 业务规范化原则:在系统设计的同时,也为将来的业务流程制定了较为完善的规范,具有较强的实际操作性,也给整个系统带来安全性。
4) 可扩展性原则:系统设计要考虑到业务未来发展的需要,要尽可能设计得简明,各个功能模块间的耦合度小,便于系统的扩展。如果存在旧有的数据库系统,则需要充分考虑兼容性,比如说浏览器的兼容。
5) 业务完整性原则:对于业务进行中的特殊情况能够做出及时、正确的响应,保证业务数据的完整性,减少数据的误读。

系统用例图

员工的操作:
1、员工可以查看个人工资情况。
2、员工可以查询公司资产情况。
3、员工可以查询公司经营情况。
4、员工可以查询公司费用情况。
5、员工可以查询年终资产分析表。
员工用例图,如图3-1所示:

在这里插入图片描述
在这里插入图片描述

系统流程图

当管理员进入本系统之后,管理员首先要登录之后,才能管理后台。登录失败,给管理员相关的提示,请管理员重新登录。登录成功之后,管理员可管理员工、公司资产、经营、费用等信息。管理员的后台管理的基本流程如下图3-3所示:

在这里插入图片描述

系统功能分析

在这里插入图片描述

数据库结构设计

系统数据库db_cwgl中含有8张数据表,部门信息表t_bumen、员工信息表t_zhigong、员工工资表t_gongzi、资产类别表t_catelog、资产信息表t_zichan、经营信息表t_jingying、费用信息表t_feiyong、管理员信息表t_admin,本章将简单介绍其中一些表的结构。
4.1.2 数据表的结构
(1)t_bumen(部门信息表)
部门信息表主要用于保存单位的部门信息,如部门名称、人数、工资系数,该表结构如表4-1所示。
表4-1 t_bumen的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
mingcheng varchar 50 否 部门名称
renshu int 4 否 编制人数
xishu decimal 8,2 否 工资系数

(2)t_zhigong(职工信息表)
职工信息表主要用于保存职工的基本信息,如职工所在部门、姓名、性别等,该表结构如表4-2所示:

表4-2 t_zhigong的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
bumen_id int 4 否 所在部门
bianhao varchar 50 否 编号
loginpw varchar 50 否 登录密码
xingming varchar 50 否 姓名
xingbie varchar 50 否 性别
ruzhi varchar 50 否 入职时间

(3)t_catelog(资产类别表)
资产类别表主要用于资产类别信息,如类别名称,该表结构如表4-3所示:
表4-3 t_catlog的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
name varchar 50 否 类别名称

(4)t_zichan(资产信息表)
资产信息表主要用于保存资产基本信息,如资产类别、编号、名称、添加时间等,通过主键编号和产品类别来队公司的资产信息进行增删改查,内容包括资产的名称,修改时间,此资产的实际价值,资产的类型和本次资产产生的方式,例如出租,贷款等方式来反映。
(5)t_jingying(经营信息表)
经营信息表主要用于保存企业经营信息,如项目名称、时间、投入等内容。该表结构如表4-5所示:

表4-5 t_jingying的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
mingcheng varchar 50 否 名称
riqi varchar 4 否 日期
touru decimal 8,2 否 投入
shouri decimal 8,2 否 收益
lirun decimal 8,2 否 利润
(6)t_feiyong(费用信息表)
费用信息表主要用于保存日常费用信息,如费用名称、发生时间、费用等内容。该表结构如表4-6所示:

表4-6 t_feiyong的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
mingcheng varchar 50 否 名称
shijian varchar 4 否 日期
feiyong decimal 8,2 否 金额
leixing int 4 否 类型
(7)t_gongzi(工资信息表)
工资信息表主要用于保存职工工资信息,通过主键id使得员工能够登陆后查询自己的工资情况并且能使管理员对工资修改后,员工能够正确的看到工资的情况,此表中包括了职工信息,基本工资情况,工龄对工资的加成,职务和补贴对总工资的影响。
(8)t_admin(管理员信息表)
管理员信息表主要用于保存管理员的基本信息,该表结构如表4-8所示。
表4-8 t_admin的结构
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
userName varchar 50 否 登录账号
userPw varchar 50 否 登录密码

核心代码部分

文件编码问题。
在这里插入图片描述
项目文件目录如下:
在这里插入图片描述

关键核心代码:
应用软件的核心代码是指这个程序最关键部分的代码。例如WinRAR,它的核心代码就是压缩算法部分,而诸如用户界面、操作系统移植等部分就无足轻重了。
商城类的核心代码是指业务层的代码,比如你商城的核心代码就是:商品、购物车、创建订单、支付这些代码就是核心代码。

作为程序员,我们经常需要看懂别人的代码。特别是在开源社区中,我们需要理解许多优秀的开源项目的代码。而在Gitee这样的代码托管平台上,我们如何快速有效地看懂别人的代码呢?本文将为大家介绍一些方法。

1.阅读README和项目介绍

在Gitee上,许多开源项目都会有自己的README文件或项目介绍。这些文件一般会介绍项目的背景、功能、使用方法等内容,可以帮助我们快速了解这个开源项目的基本情况。如果我们能够从这些文件中找到与自己相关的内容,就可以快速入手这个开源项目的代码。

2.了解项目结构和代码组织

在阅读代码之前,我们需要先了解这个开源项目的代码结构和代码组织方式。通常,开源项目会将不同的功能模块封装到不同的代码文件中,并按照一定的目录结构组织起来。如果我们能够了解这个开源项目的代码组织方式,就能更加快速地找到所需的代码。

3.利用IDE和工具

IDE和一些代码阅读工具可以帮助我们更快速、更高效地阅读代码。例如,Java开发者可以使用Eclipse或IntelliJ IDEA这样的IDE,可以快速打开代码文件、查看类、方法和变量等信息。另外,一些代码阅读工具,如Source Insight、CodeCompare等,可以帮助我们更方便地查看代码的结构和关系,以及快速跳转到相关代码。

4.关注代码注释和文档

良好的代码注释和文档可以帮助我们更快速地理解代码。因此,在阅读别人的代码时,我们可以将注意力放在代码注释和文档上。有些开源项目会提供详细的文档,有些则注重代码注释。如果我们能够针对代码注释和文档有一个系统的阅读和理解,就能更快速地掌握别人的代码。

5.跑通测试和运行项目

如果我们想更深入地了解别人的代码,可以试着跑通相关的测试,或者直接运行这个开源项目。通过跑测试和运行项目,我们可以更加直观地了解代码的实现细节和具体的业务逻辑。

总结:

以上就是在Gitee上快速理解他人代码的一些方法,希望对大家有所帮助。当然,阅读代码是一件需要耐心和细心的事情,需要我们多花一点时间和心思。只有沉下心来,慢慢阅读每一行代码,才能真正理解它们的含义和作用。

package com.action;

import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.DB;
import com.orm.TBumen;

public class bumen_servlet extends HttpServlet
{
	public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
	{
        String type=req.getParameter("type");
		
        if(type.endsWith("bumenMana"))
        {
        	bumenMana(req, res);
        }
		if(type.endsWith("bumenSele"))
		{
			bumenSele(req, res);
		}
		if(type.endsWith("bumenAdd"))
		{
			bumenAdd(req, res);
		}
		if(type.endsWith("bumenUpd"))
		{
			bumenUpd(req, res);
		}
		if(type.endsWith("bumenDel"))
		{
			bumenDel(req, res);
		}
	}
	
	
	public void bumenAdd(HttpServletRequest req,HttpServletResponse res)
	{
		String mingcheng=req.getParameter("mingcheng");
		String renshu=req.getParameter("renshu");
		String xishu=req.getParameter("xishu");
		String del="no";
		String sql="insert into t_bumen (mingcheng,renshu,xishu,del) values(?,?,?,?)";
		Object[] params={mingcheng,renshu,xishu,del};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "bumen?type=bumenMana");
		
		String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void bumenUpd(HttpServletRequest req,HttpServletResponse res)
	{
		String id=req.getParameter("id");
		String mingcheng=req.getParameter("mingcheng");
		System.out.println(mingcheng);
		String renshu=req.getParameter("renshu");
		String xishu=req.getParameter("xishu");
		String sql="update t_bumen set mingcheng=?,renshu=?,xishu=? where id=?";
		Object[] params={mingcheng,renshu,xishu,id};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "bumen?type=bumenMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void bumenDel(HttpServletRequest req,HttpServletResponse res)
	{
		String sql="update t_bumen set del='yes' where id="+Integer.parseInt(req.getParameter("id"));
		Object[] params={};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "bumen?type=bumenMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void bumenMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		String sql="select * from t_bumen where del='no'";
		
		req.setAttribute("bumenList", getBumenList(sql));
		req.getRequestDispatcher("admin/bumen/bumenMana.jsp").forward(req, res);
	}

	public void bumenSele(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		String sql="select * from t_bumen where del='no'";
		
		req.setAttribute("bumenList", getBumenList(sql));
		req.getRequestDispatcher("admin/bumen/bumenSele.jsp").forward(req, res);
	}
	
	private List getBumenList(String sql)
	{
		List bumenList=new ArrayList();
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			while(rs.next())
			{
				TBumen bumen=new TBumen();
				bumen.setId(rs.getInt("id"));
				bumen.setMingcheng(rs.getString("mingcheng"));
				bumen.setRenshu(rs.getString("renshu"));
				bumen.setXishu(rs.getString("xishu"));
				bumenList.add(bumen);
		    }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();	
		return bumenList;
	}
	public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) 
	{
		RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
		try 
		{
		    dispatch.forward(request, response);
		    return;
		} 
		catch (ServletException e) 
		{
                    e.printStackTrace();
		} 
		catch (IOException e) 
		{
			
		    e.printStackTrace();
		}
	}
	public void init(ServletConfig config) throws ServletException 
	{
		super.init(config);
	}
	
	public void destroy() 
	{
		
	}
}



前端页面的部分

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page isELIgnored="false" %> 

<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'menu.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" href="<%=path %>/css/base.css" type="text/css" />
	<link rel="stylesheet" href="<%=path %>/css/menu.css" type="text/css" />
	<style type="text/css">
	    div {
			padding:0px;
			margin:0px;
		}
		
		body {
		 scrollbar-base-color:#bae87c;
		 scrollbar-arrow-color:#FFFFFF;
		 scrollbar-shadow-color:#c1ea8b;
		 padding:0px;
		 margin:auto;
		 text-align:center;
		 background-color:#9ad075;
		}
		
		dl.bitem {
			width:148px;
			margin:0px 0px 5px 4px;
		}
		
		dl.bitem dt {
		  background:url(<%=path %>/img/menubg.gif);
		  height:26px;
		  line-height:26px;
		  text-align:center;
		  cursor:pointer;
		}
		
		dl.bitem dd {
		  padding:3px 3px 3px 3px;
		  background-color:#fff;
		}
		
		.fllct
		{
			float:left;
			
			width:90px;
		}
		
		.flrct
		{
			padding-top:3px;
			float:left;
		}
		
		div.items
		{
			line-height:22px;
			background:url(<%=path %>/img/arr4.gif) no-repeat 10px 9px;
		}
		
		span.items
		{
			padding:10px 0px 10px 22px;
			background:url(<%=path %>/img/arr4.gif) no-repeat 10px 12px;
		}
		
		ul {
		  padding-top:3px;
		}
		
		li {
		  height:22px;
		}
		
		.sitemu li {
			padding:0px 0px 0px 22px;
			line-height:24px;
			background:url(<%=path %>/img/arr4.gif) no-repeat 10px 9px;
		}
	</style>
	<script language='javascript'>var curopenItem = '1';</script>
	<script language="javascript" type="text/javascript" src="<%=path %>/js/menu.js"></script>
	<base target="main" />
  </head>
  
  <body target="main">
  <c:if test="${sessionScope.userType==0}">
	<table width='99%' height="100%" border='0' cellspacing='0' cellpadding='0'>
	  <tr>
	    <td style='padding-left:3px;padding-top:8px' valign="top">
	      <dl class='bitem'>
	        <dt onClick='showHide("items1_1")'><b>修改个人密码</b></dt>
	        <dd style='display:block' class='sitem' id='items1_1'>
	          <ul class='sitemu'>
	              <li><a href='<%=path %>/admin/userinfo/userPw.jsp' target='main'>修改个人密码</a> </li>
	          </ul>
	        </dd>
	      </dl>
	      <dl class='bitem'>
	        <dt onClick='showHide("items2_1")'><b>部门信息管理</b></dt>
	        <dd style='display:block' class='sitem' id='items2_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/admin/bumen/bumenAdd.jsp' target='main'>部门信息添加</a> </li>
                 <li><a href='<%=path %>/bumen?type=bumenMana' target='main'>部门信息管理</a> </li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items2_1")'><b>职工信息管理</b></dt>
	        <dd style='display:block' class='sitem' id='items2_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/admin/zhigong/zhigongAdd.jsp' target='main'>职工信息添加</a> </li>
                 <li><a href='<%=path %>/zhigong?type=zhigongMana' target='main'>职工信息管理</a> </li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items2_1")'><b>职工工资管理</b></dt>
	        <dd style='display:block' class='sitem' id='items2_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/zhigong?type=zhigongList' target='main'>职工工资添加</a> </li>
                 <li><a href='<%=path %>/gongzi?type=gongziMana' target='main'>职工工资管理</a> </li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items3_1")'><b>资产类别管理</b></dt>
	        <dd style='display:block' class='sitem' id='items3_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/admin/catelog/catelogAdd.jsp' target='main'>资产类别添加</a> </li>
                 <li><a href='<%=path %>/catelog?type=catelogMana' target='main'>资产类别管理</a> </li>
	          </ul>
	        </dd>
	      </dl>
	      <dl class='bitem'>
	        <dt onClick='showHide("items4_1")'><b>资产信息管理</b></dt>
	        <dd style='display:block' class='sitem' id='items4_1'>
	          <ul class='sitemu'>
	              <li><a href='<%=path %>/zichan?type=zichanToAdd' target='main'>资产信息添加</a></li>
	              <li><a href='<%=path %>/zichan?type=zichanMana' target='main'>资产信息管理</a></li>
	          </ul>
	        </dd>
	      </dl>
	      <dl class='bitem'>
	        <dt onClick='showHide("items4_1")'><b>经营信息管理</b></dt>
	        <dd style='display:block' class='sitem' id='items4_1'>
	          <ul class='sitemu'>
	              <li><a href='<%=path %>/admin/jingying/jingyingAdd.jsp' target='main'>经营信息添加</a></li>
	              <li><a href='<%=path %>/jingying?type=jingyingMana' target='main'>经营信息查看</a></li>
	          </ul>
	        </dd>
	      </dl>
	      <dl class='bitem'>
	        <dt onClick='showHide("items4_1")'><b>费用信息管理</b></dt>
	        <dd style='display:block' class='sitem' id='items4_1'>
	          <ul class='sitemu'>
	              <li><a href='<%=path %>/admin/feiyong/feiyongAdd.jsp' target='main'>费用信息添加</a></li>
	              <li><a href='<%=path %>/feiyong?type=feiyongMana' target='main'>费用信息查看</a></li>
	          </ul>
	        </dd>
	      </dl>
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>年终资产分析</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/fenxi' target='main'>年终资产分析</a></li>
	          </ul>
	        </dd>
	      </dl>		      
		  </td>
	  </tr>
	</table>
	</c:if>
	
  <c:if test="${sessionScope.userType==1}">
	<table width='99%' height="100%" border='0' cellspacing='0' cellpadding='0'>
	  <tr>
	    <td style='padding-left:3px;padding-top:8px' valign="top">
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>个人信息修改</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/zhigong?type=zhigong_me' target='main'>个人信息修改</a></li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>个人工资查看</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/gongzi?type=gongzi_me' target='main'>个人工资查看</a></li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>公司资产查询</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/zichan?type=zichanList' target='main'>公司资产查询</a></li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>公司经营查询</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/jingying?type=jingyingList' target='main'>公司经营查询</a></li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>公司费用查询</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/feiyong?type=feiyongList' target='main'>公司费用查询</a></li>
	          </ul>
	        </dd>
	      </dl>	      
	      <dl class='bitem'>
	        <dt onClick='showHide("items99_1")'><b>年终资产分析</b></dt>
	        <dd style='display:block' class='sitem' id='items99_1'>
	          <ul class='sitemu'>
                 <li><a href='<%=path %>/fenxi' target='main'>年终资产分析</a></li>
	          </ul>
	        </dd>
	      </dl>	      
		  </td>
	  </tr>
	</table>
	</c:if>
  </body>
</html>

界面(系统实现)

登陆帐号: a 密码 a
在这里插入图片描述
在这里插入图片描述
统计信息没有图表。

论文参考
基于java的坦克大战游戏的设计与实现–毕业论文–【毕业论文】
https://blog.csdn.net/dearmite/article/details/131962993

配套资源

基于jsp的企业财务管理系统的设计与实现–源代码–【课程设计】
https://download.csdn.net/download/dearmite/88134014
非VIP的
基于jsp的企业财务管理系统的设计与实现
https://download.csdn.net/download/dearmite/88191984

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目花园范德彪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值