导航:首页 > 编程语言 > javaweb开发架构

javaweb开发架构

发布时间:2023-09-18 21:39:49

‘壹’ 常用的java Web框架简介

Web框架是人们在使用某种语言编写Web应用服务端时关于架构的最佳实践

有些Web框架是从实际的Web项目抽取出来的 也就是说 做一个具体的应用项目时 采取的架构比较理想 就把这部分和领域无关 而仅和Web的请求和响应处理有关的设计拿出来 形成一个基础 在开发别的应用项目的时候则可以从这基础做起 让开发者更关注领域问题 而不是Web的请求和响应的控制

也有些Web框架是直接设计出来的 很多Web框架在设计的时候也都借鉴了别的框架 吸取优点 修改不足 并根据自己的框架的定位 在特定方面有自己的发挥 形成了自己的特点 比如有的web框架追求的是松耦合性 层次 结构之间都不密切绑定 有的Web框架则追求敏捷性 强调约定而不是配置

Java 的 Web框架虽然各不相同 但基本也都是遵循特定的路数的 使用Servlet或者Filter拦截请求 使用MVC的思想设计架构 使用约定 XML或 Annotation实现配置 运用Java面向对象的特点 面向抽象实现请求和响应的流程 支持Jsp Freemarker Velocity等桐氏视图

JSF

优点

Java EE标准 这意味着有很大的市场需求和更多的工作机会

上手快速并且相对容易

有大量可用的组件库

缺点

大量的JSP标签

对REST和安全支持不好

没有一个统一的实现 既有SUN的实现 又有Apache的实现——MyFaces

国内的OperaMasks还支持AJAX 以及有开发工具 支持

Spring MVC

优点

对覆盖绑定(overriding binding) 验证(validation)等提供生命周期管理

与许多表示层技术/框架无缝集成 JSP/JSTL Tiles Velocity FreeMarker Excel XSL PDF 等

便于测试——归功于IoC

缺点

大量的XML配置文件

太过灵活——没有公共的父控制器

没有内置的Ajax支持

Stripes

优点

不需要书写XML配置文件

良好的学习文档

社区成员很热心

缺点

社区比告埋较小

不如其他的项目活跃

ActionBean里面的URL是硬编码的

Struts

优点

架构简单——易于扩展

标记库很容易利用FreeMarker或者Velocity来定制

基于控制器或者基于页面的导航

缺点

文档组织得很差

对新特征过分关注

通过Google搜索到的大多是Struts x的文档

Tapestry

优点

一旦学会它 将极大地提高生产率

HTML模板——对页面设计师非常有利

每出一个新版本 都会有大量的创新

缺点

文档过于概念性 不够实用

学习曲线陡峭

发行周期长——每年都有较大的升级

Wicket

优点

对Java开发者有利(不是Web开发者)

页面和显示绑定紧密

社区活跃——有来自创建者的支持

缺点

HTML模板和Java代码紧挨着

需要对OO有较好的理解

Wicket逻辑——什么都用Java搞定

在Java的Web框架中 我使用过Struts Struts 试用过Stripes Wicket 了解过JSF SpringMVC 以我使用的经验 我觉得看一局友散个Java Web框架应看看下面几个方面

设计理念

一个框架设计出来应该有一个基本的思路 它为什么要要被设计出来?有的框架的目标 就是提高效率 有的框架的目标的给用户充分的选择 有的框架的目标是充分了解实际需求 给用户一个尽量合理的默认选择 有的框架是要给使用者开发桌面程序的感觉 应该说 一个好的框架应该是实现了预期目标 体现出了自己的设计理念的

设计的合理性

设计的合理性表现在框架在一些关键问题上的处理 比如灵活性和敏捷性之间的权衡 硬编码和文本配置之间的权衡 灵活性指的是可以适应用户多样的需求 很特殊的要求也能得到支持 有的框架的实现基于太多的约定 使得用户只能遵循 而敏捷性指的是用户在解决绝大多数常规问题的时候 能尽量少做工作 提高效率 框架设计者只能在这两者见达到一个平衡点 权衡的怎么样 就很见水平了 硬编码和文本配置之间的权衡也很有意思 文本配置的意义在于Java是一个编译语言 强调代码的封闭 讲究扩展而不是修改 这种情况下文本配置信息可以很方便的在不修改程序的情况下改变程序行为 但是随着一些灵活的脚本语言实现的 Web框架的出现 人们发现在这样的框架中 脚本语言即做程序编码语言 也做配置语言 还做视图上的标记语言 这使我们对Java实现的框架有了一番新的审视 既然配置文件并没有消除对程序的修改 为什么不能在应编码上下下功夫呢?

设计的平衡性

设计的平衡性指的是 框架在设计流程中各阶段 各层次的实现方式时 所达到的上述权衡(灵活性和敏捷性之间的权衡等)应该是具有一致的水平 一个在控制上过分灵活 而视图上具有非常大限制的框架是不能算做一个好的框架的

框架真的解放了开发者吗

框架的目的是让开发者把更多的精力放在领域问题 而非Web的请求和响应的处理问题上 而事实上框架都做到这一点了吗?不可否认 框架的使用提高代码的可维护性 但是框架在解放开发者这点上就未必了 有时还给开发者带来了额外的负担 事实上 直接使用Servlet 只要维持好代码风格 一样可以很有效率 当然 直接使用Servlet的灵活性就不用说了

在我接触的Web框架中 我最推崇的是Struts 设计优雅 偏重灵活 也基本不造成额外的负担 当然这些评价是和我参与的项目的规模有关的 其他规模的项目Struts 就未必合适了 我希望Struts 能在下面几个方面有些改善

在提供文本配置方式的基础上给一个约定配置的方式 让开发者在大多数情况下可以不配置

配置也支持硬编码 因为有时候维护可修改的硬编码是很有效率的

lishixin/Article/program/Java/hx/201311/26313

‘贰’ java web现在流行用什么框架

主流 Java Web 开发框架有Spring 框架、MyBatis 框架、 Hibernate 框架、 Struts 2 框架等。

1、Spring 框架

Spring 框架是一个轻量级的框架,渗透了 Java EE 技术的方方面面。Spring 框架是由于软件开发的复杂性而创建的,是一个开源框架。Spring 框架的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合性角度而言,绝大部分 Java 应用都可以从 Spring 框架中受益。

2、MyBatis 框架

MyBatis 框架是一个优秀的数据持久层框架,可在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM 实现。Mybatis 的封装性要低于 Hibernate 框架,且性能优异、简单易学,因此应用较为广泛。

3、Hibernate 框架

Hibernate 框架不仅是一个优秀的持久化框架,也是一个开放源代码的对象关系映射框架。它对 JDBC 进行了轻量级的对象封装,将 POJO 与数据库表建立映射关系,形成一个全自动的 ORM 框架。Hibernate 框架可以自动生成 SQL 语句,且自动执行。

4、Struts 2 框架

Struts 2 框架以 WebWork 的优秀设计思想为核心,吸收 Struts 框架的部分优点,提供了一个更加简洁的基于 MVC 设计模式实现的 Web 应用程序框架,它本质上相当于一个 Servlet。在 MVC 设计模式中,Struts 2 框架作为控制器(Controller)来建立模型与视图的数据交互。

(2)javaweb开发架构扩展阅读:

Java Web 开发框架应用要点:

搭建Java Web应用的开发环境-----部署Tomcat服务器、用eclipse创建Server服务、构建Java Web项目、建立第一个JSP文件、 运行JSP文件。

第一个要点是掌握tomcat的安装和部署。在Windows系统上安装Tomcat相对简单,下载压缩解压缩到任意目录即可(目录名称不要含有中文字符)。进入tomcat的bin目录,可以直接运行startup.bat启动tomcat服务。

第二个要点是在eclipse中添加Server服务。把tomcat与eclipse进行关联,方便eclipse管理tomcat。

第三个要点是构建Java Web项目。Web项目开发的第一步就是要建立项目。在新建Project项目时,选择Dynamic Web Project项目类型,即可创建Web项目。

第四个要点是建立的项目如何在Server中运行。选择要运行的JSP文件,单击右键,在弹出的菜单中选择Run on Server命令即可,初次运行项目时,需要配置项目在哪个Server中运行(如有多个Server)。

‘叁’ 当前java web 开发用得一般都是哪些框架

1.S2SH(struts2+spring+hibernate)

基于Struts2+Spring3+Hibernate4开发java Web企业应用开源框架s2jh源码分享
spring+hibernate+struts2开发OA企业办公管理系统源码分享
Struts2+Hibernate3+Spring三大框架技术实现MySQL数据分页
Spring+struts2+hibernate+easyui基础权限管理框架
Spring+Struts2+Hibernate三大框架开发企业人力资源管理系统源代码下载
Spring mvc+struts2+Hibernate整合实例代码(注解详解)
2.S2SM(struts2+spring+mybatis)
Spring+Struts2+mybatis手动配置三大框架整合源代码下载
Struts2+mybatis开发音乐分享系统
3.SSH(spring mvc+spring+hibernate或struts+spring+hibernate)
Spring MVC+Spring+Hibrenarte实现的简单的CRUD项目实例
springMVC注解与hibernate完美结合完成基本的增删改查demo源码下载
springmvc+hibernate+spring+easyui开发bsalse进销存后台管理系统源代码下载
spring 3.0+spring MVC+Hibernate框架搭建教程(附:springMVC文件上传功能)
spring+struts2+Hibernate三大框架开发某制药厂管理系统源代码下载
Spring mvc+struts2+Hibernate整合实例代码(注解详解)
4.SSM(spring mvc+spring+mybatis)
SpringMVC+Mybatis整合实现简单权限控制系统代码

‘肆’ 现在java web主要用什么框架

三大框架:Struts+Hibernate+Spring
Java三大框架主要用来做WEN应用。
Struts主要负责表示层的显示
Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作)
Hibernate主要是数据持久化到数据库
再用jsp的servlet做网页开发的时候有个 web.xml的映射文件,里面有一个mapping的标签就是用来做文件映射的。当你在浏览器上输入URL得知的时候,文件就会根据你写的名称对应到一 个JAVA文件,根据java文件里编写的内容显示在浏览器上,就是一个网页。
一 .Struts框架:struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
1.流程:服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
2.架构:Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。
Model部分:由JavaBean组 成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给 Action,Action根据ActionFrom里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分:该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。
Controller组件:Controller组件有两个部分组成——系统核心 控制器,业务逻辑控制器。 系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet 类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处 理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。
二.Spring框架
Spring是一个解决了许多在J2EE开发中常见的的问题的强大框架。 Springle提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类变成的好习惯。Spring的架构基础是基于使用JavaBean属性 的Inversion of Control 容器。然而Spring在使用IoC容器作为构建玩关注所有架构层层的完整解决方案方面是独一无二的。Spring提供了唯一的数据管理 抽象包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping 解决方案。
三.Hibernate框架
Hibernate 是一个开源代码的对象关系映射框架,对JDBC惊醒了费城轻量级的 的对象封装,使得Java程序员可以随心所欲的使用对象变成思维来操作数据库。Hebernate可以应用在任何使用JDBC的场合,既可以在java的 客户端程序使用,也可以在Servlet/JSP的Web应用中使用最具革命意义的事,Hibernate可以在应用EJB的J2EE架构中取代CMP, 完成数据持久化的重任
Hibernate的核心接口一共有5个,分别为:Session、 SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口, 不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。
1.Session接口:负责执行被持久化对象的CRUD操作(CRUD的任务是完成与 数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于 JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将 HttpSession对象称为用户session。
2.SessionFactory接口:负责初始化Hibernate。它充当数据存储 源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常 只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
3.Configuration接口:负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
4.Transaction接口:负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
5.Query和Criteria接口:负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

阅读全文

与javaweb开发架构相关的资料

热点内容
打开微信收付款加密 浏览:400
小度app怎么关闭看护助手 浏览:739
服务器方舟boss属性怎么调 浏览:345
acos系统终端命令 浏览:915
宁德云服务器最新行情 浏览:475
压缩性骨折五十天 浏览:656
如何在服务器里把方块替换 浏览:909
变频空调摘板用什么替代压缩机 浏览:46
怎么在苹果手机上玩安卓和平精英 浏览:237
python异步调用框架 浏览:963
安卓手机如何拍live图 浏览:823
供应链管理系统源码 浏览:944
方舟编译器会适配哪些型号 浏览:470
主流云服务器哪个牌子好 浏览:267
导航怎么看服务器在那 浏览:932
广石化单片机 浏览:281
和教育连接服务器失败是什么原因 浏览:1003
建行app怎么存定期 浏览:830
mc服务器地址183 浏览:73
为什么会解压软件解压失败 浏览:110