Java学习笔记(一)

5 篇文章 0 订阅
1 篇文章 0 订阅

从今天起开始每天书写Java的学习笔记,零零碎碎的写吧,改天系统的整理一下。
今天写一下Java的框架之一Struts2的学习笔记,因为项目需要今天重新拾起来了Struts2,从头开始学习比刚开始强多了。
要说框架那就不得不先提一下MVC机制:
MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。MVC模式的这三个部分的职责非常明确,而且相互分离,因此每个部分都可以独立的改变而不影响其他部分,从而大大提
高了应用的灵活性和重用性。
(再次附上一些基础的概念:

  • 所谓框架:就是能完成一定功能的半成品软件。在没有框架的时候,所有的工作都要乖乖的从零做起;但是,有了框架,它为我们提供了一定的功能,就可以在框架的基础上做起了,大大提高开发的效率和质量。
  • web应用框架,这说明Struts2的应用范围是Web应用而不是其它地方。换句话说Struts2更注重将Web应用领域的日常工作和常见问题抽象化,为我们提供一个平台,让我们能基于这个平台快速的完成Web应用开发。
  • 轻量级:是相对于重量级而言,指的是Struts2在运行的时候,对Web服务器的资源消耗较少,比如CPU、内存等,但是运行速度相对较快。
  • 基于MVC,说明基于Struts2开发的Web应用自然就能实现MVC,同时也说明Struts2着力于在MVC的各个部分为我们的开发提供相应帮助。

所以称Struts2为一种基于MVC的轻量级的web应用框架。


在理解了MVC的概念之后我们再来看Struts2,首先Struts2提供了一种拦截机制,举个例子,消费者买菜,远古时期消费者从菜农手里直接买菜,很便宜,但是后来随着发展有了上商贩,商贩首先从菜农那里买了菜然后卖给了消费者,这样消费者变成了间接的买了菜。Struts2在此处相当于商贩,当前台的Action传送消息给后台的Servlet时,Struts2的拦截机制将该HttpServletRequest的消息给拦截了下来。进而对该消息进行处理,然后对其转发。这就是其主要的机制。
下面介绍一下Struts2的基本组成情况: WebWork与Struts合并之后,根据功能的细分和设计,拆分出一个叫xwork的部分,用来处理与Web无关的部分,也就是与Servlet无关的部分,比如:用户数据的类型转换、动作调用之前的数据验证、动作的调用等等。
Struts2功能:
Struts2能为我们带来什么?我们会这么问,下面将今天看的Struts2的功能贴在下面:
  • Struts2通过简单、集中的配置来调度动作类,使得我们配置和修改都非常容易。
  • Struts2提供简单、统一的表达式语言来访问所有可供访问的数据。
  • Struts2提供内存式的数据中心,所有可供访问的数据都集中存放在内存中,所以在调用中不需要将数据传来传去,大家都去这个内存数据中心访问即可。
  • Struts2提供在动作类执行的前或后附加执行一定功能的能力,能实现AOP。
  • Struts2提供标准的、强大的验证框架和国际化框架,而且与Struts2的其他特性紧密结合。

类似这样的功能很多,不胜枚举。

       在Struts2官方文档的首页上,Struts2开发团队列出了Struts2的一些优势,一起来看看:

  • 简单的建立 - 直接拷入自带的空项目(struts-blank.war)的各种配置即可。
  • 改进的设计 - 代码不直接依赖各种HTTP(如HttpServletRequest)的API。这样可以使得单元测试简单、高效。
  • 强大的标签 - 使用标签可以有效的减少页面代码。
  • 良好的ajax支持 - 增加了有效的、灵活的ajax标签,就像普通的标准struts标签一样。
  • 简单的spring集成 - 使用spring注入Action依赖的其他bean,而不需要额外的代码。
  • 强大的结果 - 除了简单的JSP或Freemarker等标签,还支持JasperReports, JFreeChart和文件下载等,使得这些技术就像在Struts2中内置一样,而不需要其他结合代码。
  • POJO(不实现特殊接口或继承特殊父类的普通对象)的forms - 不再有struts1的ActionForm。任何JavaBean都可以用来向Action传入或传出request的参数,甚至二进制的OutputStream等也可以。
  • POJO的Actions - Action也不用实现特定的接口或继承特殊的类了。甚至可以使我们的Action不经过修改,就可以被其他框架重用。
  • 简单的插件 - 简单的放入一个jar包,任何人都可以扩展struts2框架,而不需要什么特殊的配置。Struts2不再是一个封闭的框架,任何人都可以为其添砖加瓦,我们可以通过实现Struts2的某些特殊的可扩展点,比如自定义拦截器、自定义结果类型、自定义标签等等,就可以为Struts2定制我们需要的功能,而且还可以快速的发布给别人使用,就像Eclipse的插件机制一样,超酷。
  • 明确的错误报告 - Struts2的异常简单而明了,直接指出错误的地方。
  • 简单的Action测试 - 不需要模拟HTTP对象就可以直接测试struts2的action。这使得我们的单元测试非常方便。
  • 智能的默认 - 跳过了冗余的设置。很多框架级对象都有一个默认的值,可以根本不用去关心它们,使用其默认设置就可以完成95%的日常工作。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值