# 基于SSH框架的管理系统
#### 介绍
基于SSH框架的管理系统 _简洁版_ ;
实现 **登录** 、 **注册** 、 **增** 、 **删** 、 **改** 、 **查** ;
可继续完善增加前端、校验、其他功能等;
可作为 **SSH(Structs Spring Hibernate)项目** 开发练习基础模型;
**课程设计** 、 **毕业设计** 开发基础;
任何复杂的框架都是简单的知识组合并延伸的,学好基础知识才是最重要的;
此项目简单,便于理解基本原理,为复杂SSM复杂项目的开发打下基础。
#### 环境准备
开发平台:Idea 2019
数据库:MySQL 5.0.22
服务器:Tomcat 9.0.37
注意:需要安装IDEA开发平台、MySQL数据库和Tomcat服务器,版本不一定完全一致,做好版本适应性配置即可。
#### 项目结构
1.数据库及Java代码文件
2.Jsp等前端代码
3.Tomcat服务器配置与运行
4.MySQL数据库
#### 基本原理
**1. 相关技术**
**Structs**
一、Structs1原理
1.Structs1原理图
2.Structs1原理步骤
用户在视图层输入数据。
第一步:Structs框架总控制器,初始化,开始读取strusts-config.xml文件。Struts框架的总控制器ActionServlet是一个Servlet,在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为Struts中不同的模块初始化相应的对象。(面向对象思想)
第二步:视图层向总控制器发送Http请求,用户提交表单或者通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器
第三步:Form填充;structs的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。
第四步:派发请求;控制器根据配置信息,对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。
第五步:处理业务;Action一般只包含一个excute()方法,负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。
第六步:返回响应;Action将业务处理的不同结果返回一个目标响应对象给总控制器。
第七步:查找响应;总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。
第八步:响应用户;目标响应对象将结果传递给资源对象,将结果展现给用户。
3.Structs的优缺点
优点:
①开源的框架,结构清晰
②是MVC的经典实现(MVC是一种思想,而不是一种技术)
③处理异常机制,实现国际化
④具有强大的标签库
⑤解决了JSP页面存在大量的JAVA代码,维护起来方便
⑥在formBean中会自动提交,不会去使用传统的get、set方法得到值、取值
缺点:
①配置复杂
②测试不方便
③依赖web容器
④action是一个单例模式,必须设置为线程安全
二、Structs2原理
1.Structs2原理图
2.Struct2原理步骤
第一步:客户端初始化一个指向Servlet容器(例如Tomcat)的请求
第二步:请求经过一系列的过滤器(Filter)
第三步:接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
第四步:如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
第五步:ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
第六步:ActionProxy创建一个ActionInvocation的实例
第七步:ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用
第八步:一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper
注意:在上述过程中所有的对象(Action,Results,Interceptors等)都是通过ObjectFactory来创建的
3.Structs2的优缺点
优点:
①大量的拦截器:Struts2本身提供了大量的可重用的拦截器,比如类型转换拦截器,很多时候从页面取得参数,这个时候它是String类型的,需要手动。
②基于插件的框架:Struts2是一个基于插件的框架,社区中提供了很多实用的插件,比如jfreechat/json等等,使用这些插件可以简化我们的开发,加快开发进度。Struts2最大的缺点莫过于在好多web服务器上支持不好,例如在websphere5.5,weblogic8.1及以前版本支持非常查,需要用最新的。
③多种视图的支持:多种视图的支持:jsp,freemarker,Veloctiy,甚至可以通过轻松的改造支持pdf,同一个项目中可以支持多种视图。
④更加的模块化:与Struts1.X 相比,Struts2更加的模块化,可以轻松将配置信息按功能界限拆分成多个文件,便于管理和团队协作开发。
⑤与Spring的集成:与Struts1.x相比,Struts2不必再自己编写singleton,进一步的降低了程序间的耦合性,就Struts2内部本身而言,降低了框架本身的偶合性。
⑥基于pojo易于测试:在Struts1.x中需要Mock出这两个Http对象,很难编写Action的单元测试,与Struts1.x相比,Struts2的Action 不再依赖于HttpServletRequest和HttpServletResponse对象,使我们能够更方便的针对Action编写单元测试。
缺点:
①Struts2中Action中取得从jsp中传过来的参数时麻烦。可以为Struts2的Action中的属性配置上Getter和Setter方法,通过默认拦截器,就可以将请求参数设置到这些属性中。但当请求参数很多时,Action类就显得很臃肿。Action中的属性不但可以用来获得请求参数还可以输出到Jsp中,会更乱。
②校验比较繁琐。如果校验出错的只能给用户提示一些信息。如果有多个字段,每个字段出错时返回到不同的画面,在Strut2框架下借助框架提供的校验逻辑就不容易实现。
③安全性有待提高。使用缩写的导航参数前缀时的远程代码执行漏洞,另一个是使用缩写的重定向参数前缀时的开放式重定向漏洞。
**Spring**
1.简介
Spring是一个开源框架,是2003年兴起的轻量级的Java开发框架,为解决企业应用开发的复杂性而创建的。简单来说,Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。日常开发中IOC容器使用较多,可以装载Bean,即Java中的类,不用在每次使用类的时候初始化,很少出现关键字new。另外spring的AOP,事务管理等等也会经常使用。
IOC:控制反转,是一种降低对象之间耦合关系的设计思想。如:租赁房屋,平常租房需要自己逐个小区寻找房屋,然后使用了IOC之后,即需找一个租房中介,把对房屋的需求告诉中介,就可以直接找到合适的房屋。即把需求交给了第三方,有第三方帮助你完成你的需求,中介就相当于Spring容器。
AOP:面向切面编程,是面向对象开发的一种补充,允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求,如:动态的增加日志、安全或异常处理等。AOP使业务逻辑各部分间的耦合度降低,提高程序可重用性,提高开发效率。
2.Spring的主要特征
①轻量级:Spring是一个轻量级的开发框架,基本版本大约只有2M
②IOC:控制反转,应用程序中对象之间的依赖是由Spring 来控制的
③AOP:面向切�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SSH框架的管理系统简洁版; 实现登录、注册、增、删、改、查; 可继续完善增加前端、校验、其他功能等; 可作为SSH(Structs Spring Hibernate)项目开发练习基础模型; 课程设计、毕业设计开发基础; 任何复杂的框架都是简单的知识组合并延伸的,学好基础知识才是最重要的; 此项目简单,便于理解基本原理。
资源推荐
资源详情
资源评论
收起资源包目录
基于SSH框架实现的管理系统(包含java源码+数据库).zip (122个子文件)
UserDao.class 3KB
UserDao.class 3KB
UserAction.class 3KB
UserAction.class 3KB
User.class 2KB
User.class 2KB
UserService.class 1KB
UserService.class 1KB
MyTest.class 1KB
MyTest.class 1KB
.gitignore 39B
ManagerSystem_SSH.iml 6KB
hibernate-core-5.0.7.Final.jar 5.32MB
aspectjweaver-1.8.7.jar 1.78MB
struts2-core-2.5.16.jar 1.56MB
freemarker-2.3.26-incubating.jar 1.43MB
log4j-core-2.8.2.jar 1.34MB
spring-context-4.2.4.RELEASE.jar 1.05MB
spring-core-4.2.4.RELEASE.jar 1.03MB
mysql-connector-java-5.1.47.jar 984KB
spring-web-4.2.4.RELEASE.jar 749KB
spring-beans-4.2.4.RELEASE.jar 714KB
javassist-3.18.1-GA.jar 697KB
spring-test-4.2.4.RELEASE.jar 549KB
commons-lang3-3.6.jar 483KB
spring-orm-4.2.4.RELEASE.jar 455KB
antlr-2.7.7.jar 435KB
spring-jdbc-4.2.4.RELEASE.jar 413KB
jstl-1.2.jar 405KB
spring-aop-4.2.4.RELEASE.jar 361KB
dom4j-1.6.1.jar 307KB
spring-tx-4.2.4.RELEASE.jar 259KB
spring-expression-4.2.4.RELEASE.jar 257KB
ognl-3.1.15.jar 230KB
log4j-api-2.8.2.jar 223KB
commons-io-2.5.jar 204KB
jandex-2.0.0.Final.jar 183KB
spring-context-support-4.2.4.RELEASE.jar 173KB
hibernate-jpa-2.1-api-1.0.0.Final.jar 111KB
xml-apis-1.0.b2.jar 107KB
hibernate-commons-annotations-5.0.1.Final.jar 74KB
commons-fileupload-1.3.3.jar 69KB
jboss-logging-3.3.0.Final.jar 65KB
commons-logging-1.2.jar 60KB
struts2-spring-plugin-2.5.16.jar 22KB
geronimo-jta_1.1_spec-1.1.1.jar 16KB
aopalliance-1.0.jar 4KB
UserDao.java 2KB
UserAction.java 2KB
User.java 2KB
UserService.java 857B
MyTest.java 760B
update.jsp 2KB
update.jsp 2KB
index.jsp 1KB
index.jsp 1KB
register.jsp 990B
register.jsp 990B
add.jsp 966B
add.jsp 966B
login.jsp 870B
login.jsp 870B
README.md 13KB
MANIFEST.MF 84B
Manager.sql 1KB
pom.xml 5KB
ManagerSystem_SSH_war_exploded.xml 5KB
applicationContext.xml 2KB
applicationContext.xml 2KB
applicationContext.xml 2KB
struts.xml 1KB
struts.xml 1KB
struts.xml 1KB
User.hbm.xml 842B
User.hbm.xml 842B
User.hbm.xml 842B
Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml 795B
Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml 783B
Maven__org_springframework_spring_context_support_4_2_4_RELEASE.xml 756B
web.xml 727B
web.xml 727B
Maven__org_springframework_spring_expression_4_2_4_RELEASE.xml 721B
Maven__org_apache_geronimo_specs_geronimo_jta_1_1_spec_1_1_1.xml 717B
Maven__org_springframework_spring_context_4_2_4_RELEASE.xml 700B
Maven__org_apache_struts_struts2_spring_plugin_2_5_16.xml 692B
Maven__org_springframework_spring_beans_4_2_4_RELEASE.xml 686B
Maven__org_freemarker_freemarker_2_3_26_incubating.xml 680B
Maven__org_springframework_spring_jdbc_4_2_4_RELEASE.xml 679B
Maven__org_springframework_spring_core_4_2_4_RELEASE.xml 679B
Maven__org_springframework_spring_test_4_2_4_RELEASE.xml 679B
Maven__org_springframework_spring_web_4_2_4_RELEASE.xml 672B
Maven__org_springframework_spring_aop_4_2_4_RELEASE.xml 672B
Maven__org_springframework_spring_orm_4_2_4_RELEASE.xml 672B
Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml 671B
Maven__commons_fileupload_commons_fileupload_1_3_3.xml 668B
Maven__org_springframework_spring_tx_4_2_4_RELEASE.xml 665B
Maven__org_hibernate_hibernate_core_5_0_7_Final.xml 662B
compiler.xml 646B
Maven__mysql_mysql_connector_java_5_1_47.xml 637B
Maven__org_apache_logging_log4j_log4j_core_2_8_2.xml 636B
共 122 条
- 1
- 2
资源评论
- DVLLVSBERG2024-01-02资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
TD程序员
- 粉丝: 2459
- 资源: 437
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功