Servlet、SSH、SSM及SpringBoot总结&投票

简介: 往期推送分别利用Servlet、SSH、SSM及SpringBoot技术实现了简单的登录、注册、增、删、改、查等功能,并介绍了基本技术原理,目的即是通过简单的Java项目实例对以上技术原理更深入的了解、学习,从而为复杂的系统项目的开发奠定基础以及面试时更能够对JavaWeb技术的把控。

前言


   往期推送分别利用Servlet、SSH、SSM及SpringBoot技术实现了简单的登录、注册、增、删、改、查等功能,并介绍了基本技术原理,目的即是通过简单的Java项目实例对以上技术原理更深入的了解、学习,从而为复杂的系统项目的开发奠定基础以及面试时更能够对JavaWeb技术的把控。


   以下4部分分别简要总结Servlet、SSH、SSM及SpringBoot的概念和优缺点,详细原理了解以及简单项目实例可查看往期相关推送文章。


Servlet


Servlet的概念


   Servlet是一种运行在支持Java语言的服务器上的组件,用于实现多种网络服务功能,为网络客户提供安全可靠、易于移植的动态网页。Servlet容器用于处理客户端的请求,并将处理结果返回给客户端。Sun公司在其API中提供了一个Servlet接口,发布一个动态web资源(动态网站)。简而言之,Servlet是为了实现Java语言的网络功能而存在的。


Servlet的优点


① 是MVC的基础,其他的框架比如Struts1等都是从Servlet基础上发展过来的,所以掌握Servlet是掌握MVC的关键;


②  Servlet把最底层的API暴露给程序员,可以对Servlet进行封装;


③ 市场上任何一个MVC的框架都是Servlet发展过来的,所以了解Servlet的运行机制很关键。


Servlet的缺点


① 每写一个Servlet在web.xml中都要做相应的配置。如果有多很Servlet,会导致web.xml内容过于繁多;


② 在Servlet中,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse参数。这两个参数与容器相关,如果想在Servlet中作单元测试,则必须初始化这两个参数;


③ 如果一个Servlet中有很多个方法,则必须采用传递参数的形式,分解到每一个方法中。

详细原理及项目实例


基于Servlet的管理系统【完整项目源码】


SSH


SSH的概念


   SSH框架是JAVA EE中三种框架所集成。分别为Struts、Spring、Hibernate框架所组成。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。使用Struts作为系统的整体基础架构,负责MVC的分离,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。


Struts


Struts的概念


   Struts是一个基于MVC设计模式的Web应用框架,相当于一个Servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图的数据交互。


Struts的优点


① 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现;


② 丰富的标签库,大大提高了开发的效率;


③ Struts2提供丰富的拦截器实现;


④ 通过配置文件,就可以掌握整个系统各个部分之间的关系;


⑤ 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理;


⑥ Struts2的可扩展性高;


⑦ 面向切面编程的思想在Strut中也有了很好的体现。体现了拦截器的使用,拦截器就是一个个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个Action中就可以。


Struts的缺点


① 校验较繁琐,多字段时出错返回不同;


② 安全性太低;


③ 获取传参时较麻烦。


Hibernate


Hibernate的概念


   Hibernate是一个Java领域的持久层的ORM(对象/关系映射)框架。与各种数据库,SQL语句打交道,是数据持久化的一种解决方案。ORM框架是不同于MVC的另一种思想框架,适用范围也与MVC截然不同。


Hibernate的优点


① 对象/关系数据库映射使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想;


② 透明持久化带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联,一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用;


③ 事务Transaction 应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开,某些情况下,一个Session之内可能包含多个Transaction对象,尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的;


④ 移植性好、轻量级框架;


⑤ 缓存机制。提供一级缓存和二级缓存。


Hibernate的缺点


① 持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活应用原生SQL;


② 批量数据处理的时候是较弱势;


③ 框架中使用ORM原则,导致配置过于复杂,遇到大项目,维护和问题不断;


④ 配置文件复杂。


详细原理及项目实例


基于SSH框架的管理系统【完整项目源码】




SSM


SSM的概念


   SSM框架是三层结合所成的框架,分别是,Spring,SpringMVC,Mybatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC代表了Model,View,Controller接收外部请求,进行分发和处理。Mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。


Spring


Spring的概念


   Spring是一个开源开发框架,Spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系。Spring 是一个“引擎”。


Spring的优点


① 容器:Spring是一个容器,包含并管理对象的生命周期和配置;


② 支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性;


③ 轻量级框架:Spring是轻量级框架,其基本的版本大约2M;


④ 控制反转 :Spring通过控制反转实现松散耦合,对象们给它们的依赖,而不是创建或者查找依赖的对象们方便解耦,简化开发;


⑤ 方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序;


⑥ 降低Jave EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如JDBC),都提供了封装,使这些API应用难度大大降低;


⑦ 方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts、Mybatis等)的直接支持;


⑧ 支持声明式事务处理:只需要通过配置就可以完成对事物的管理,而无须手动编程。


Spring的缺点


① 依赖反射,反射影响进程;


② 太过于依赖设计模式;


③ 控制器过于灵活;


④ 不支持分布式应用。


SpringMVC


SpringMVC的概念


   属于Spring框架的一部分,用来简化MVC架构的web应用程序开发。Spring MVC 是基于Spring的一个 MVC 框架 。


SpringMVC的优点


① 拥有强大的灵活性,非侵入性和可配置性;


② 提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象;


③ 分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成;


④ 可以自动绑定用户输入,并正确的转换数据类型;


⑤ 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。


SpringMVC的缺点


① Servlet API 耦合难以脱离容器独立运行;


② 太过于细分,开发效率低。


Mybatis


Mybatis的概念


   Mybatis是一个简化和实现了 Java 数据持久化层的开源框架,抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。Mybatis3是iBATIS的全新设计,支持注解和Mapper。


Mybatis的优点


① 与JDBC相比,减少了50%以上的代码量;


② Mybatis是最简单的持久化框架,小巧并且简单易学;


③ Mybatis灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用;


④ 提供XML标签,支持编写动态SQL语句(XML中使用if, else);


⑤ 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)。


Mybatis的缺点


① SQL语句的编写工作量较大,对开发人员的SQL语句编写有一定的水平要求;


② SQL语句过于依赖数据库,不能随意更换数据库;


拼接复杂SQL语句时不灵活。


详细原理及项目实例


基于SSM框架的管理系统【完整项目源码】



SpringBoot


SpringBoot的概念


   Springboot是提供的全新框架,简化了spring的初始搭建和开发过程,遵循“约定优于配置”的原则,降低了对配置文件的要求,不需要让开发人员再定义样板化的配置。不需要配置xml,依赖于像MAVEN这样的构建系统,是基于Spring的条件注册的一套快速开发整合包。


SpringBoot的优点


① 提供的POM简化Maven的配置,减少了大量的开发时间并提高了生产力;


② 避免了编写大量的样板代码,注释和XML配置,可以自动配置Spring,解决了Spring的弊端;


③ Spring Boot可以建立独立的Spring应用程序,使用Java开发基于Spring的应用程序非常容易;


④ 内嵌了如Tomcat,Jetty和Undertow等容器,直接运行,减少了部署工作。


SpringBoot的缺点


① 修复bug较慢,报错时难以定位到该点;


② 集成度较高,不易了解底层;


③ 缺少服务注册发现、监控集成、安全管理等外围方案。


详细原理及项目实例

基于SpringBoot框架的管理系统【完整项目源码】

相关文章
|
1月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
149 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
405 37
WXM
|
4月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
Eclipse运行SSM/SSH项目教程
WXM
136 0
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的投票评选系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的投票评选系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
前端开发 Java 应用服务中间件
Spring Boot 2.x 嵌入式 Servlet 容器
Spring Boot使用内嵌Tomcat,默认端口8080,可通过`application.properties`配置端口、上下文路径等。配置方式有两种:1) 直接在配置文件中添加`server.port`和`server.servlet.context-path`;2) 创建`WebServerFactoryCustomizer` Bean来自定义配置,如设置端口`factory.setPort(8083)`,这种方式优先级更高。
|
4月前
|
XML Java 应用服务中间件
springboot定制嵌入式的servlet
SpringBoot允许定制嵌入式Servlet容器,如修改配置或更换默认的Tomcat。配置可通过`application.properties`设置`server.port`和`server.tomcat.*`属性。此外,可创建`EmbeddedServletContainerCustomizer` Bean来自定义容器,例如改变端口。要替换默认的Tomcat,需排除`spring-boot-starter-tomcat`依赖,并引入`spring-boot-starter-jetty`。
|
6月前
|
JavaScript Java 测试技术
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
47 1
|
6月前
|
JavaScript Java 测试技术
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
41 1
|
6月前
|
JavaScript Java 测试技术
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
39 1
|
5月前
|
Java 应用服务中间件 容器
手写SpringBoot(二)之动态切换Servlet容器
我们在切换serlvet容器的时候,会将SpringBoot默认的tomcat jar包给排除掉,换上我们需要的jar包,比如jetty。
39 0