WebMVC框架 之 Struts
2015-08-31 16:07
232 查看
在上一篇博客中我们介绍了WebMVC框架主要实现的功能,它为我们提供了基础性服务,使我们在基于MVC模式的开发上变得简单灵活、可配置。本篇文章将主要介绍WebMVC框架中的Struts主要的内容。
在web.xml中配置好ActionServlet所拦截的请求,Struts提供的ActionServlet作为前端控制器,将会对客户端请求进行处理,其处理的主要内容还是和上一篇博客中介绍到的内容相同:如图中所示,ActionServlet主要是读取struts-config.xml中的配置信息截取URL地址、转换表单数据类型、封装表单数据、分发请求到Action(业务控制器)、获取转向信息进行转向……
可以看出Struts主要是对MVC中的C进行了增强,使我们不必过多的去关心具体转向的逻辑判断功能等。
上图中,列出了Struts为开发人员提供的主要功能服务,其中Controller部分是主要内容,涵盖了基于Struts的开发流程中需要掌握的内容。
核心对象里:
ActionServlet、Action作为控制器前面已经重点提过;
ActionForward封装转向信息,也是在执行完Action内的方法需要给ActionServlet返回的对象
ActionMapping封装的信息,其实是针对struts-config.xml中的配置来说的,提供了对前面几个对象的运行时支持,也就是说在服务启动时,将配置信息已经封装到了ActionMapping中,程序运行过程中,主要是从中获取相关配置,进而执行操作。
除以上核心对象外,ActionForm对象也是Struts的一大特点,它主要封装表单提交数据,ActionServlet在接收到浏览器请求后,调用注册好的类型转换器将请求中的表单数据进行类型转换,然后封装到具体的ActionForm中,进而解决了手动转换表单数据的繁琐问题。
不得不提的是,为了减少配置量、代码量以及应对灵活处理的要求,Struts对ActionForm、ActionForward都提供了动态创建的机制,ActionForm不是必须要写的,如果有必要,可以采用配置的方式动态创建。ActionForward也可以在程序内部动态创建,灵活应对转向页面的不同需求。
另外,在减少配置、减少代码量方面,Struts根据约定优于配置的思想,也提供了模式匹配以及使用DispathAction减少Action个数的功能
国际化方面,Struts基于java的国际化处理(Locale、ResourceBundle等)进行了进一步的封装。首先国际化资源文件由BaseName+Locale.property命名存储,ActionMessage进行存储传递,页面JSP上,采用Struts提供的标签很方便的读取。其余Struts的异常处理结合比较紧密。
总结
通过Struts的学习、实践,掌握了基于MVC的开发流程,也明白了一个WebMVC框架大致提供的功能,这也为后面其他相类似框架的使用提供了大概的方向。
开发流程
基于Struts的基本开发流程如下图所示:在web.xml中配置好ActionServlet所拦截的请求,Struts提供的ActionServlet作为前端控制器,将会对客户端请求进行处理,其处理的主要内容还是和上一篇博客中介绍到的内容相同:如图中所示,ActionServlet主要是读取struts-config.xml中的配置信息截取URL地址、转换表单数据类型、封装表单数据、分发请求到Action(业务控制器)、获取转向信息进行转向……
可以看出Struts主要是对MVC中的C进行了增强,使我们不必过多的去关心具体转向的逻辑判断功能等。
主要内容
Struts的主要功能总结如下图所示:上图中,列出了Struts为开发人员提供的主要功能服务,其中Controller部分是主要内容,涵盖了基于Struts的开发流程中需要掌握的内容。
核心对象里:
ActionServlet、Action作为控制器前面已经重点提过;
ActionForward封装转向信息,也是在执行完Action内的方法需要给ActionServlet返回的对象
ActionMapping封装的信息,其实是针对struts-config.xml中的配置来说的,提供了对前面几个对象的运行时支持,也就是说在服务启动时,将配置信息已经封装到了ActionMapping中,程序运行过程中,主要是从中获取相关配置,进而执行操作。
除以上核心对象外,ActionForm对象也是Struts的一大特点,它主要封装表单提交数据,ActionServlet在接收到浏览器请求后,调用注册好的类型转换器将请求中的表单数据进行类型转换,然后封装到具体的ActionForm中,进而解决了手动转换表单数据的繁琐问题。
不得不提的是,为了减少配置量、代码量以及应对灵活处理的要求,Struts对ActionForm、ActionForward都提供了动态创建的机制,ActionForm不是必须要写的,如果有必要,可以采用配置的方式动态创建。ActionForward也可以在程序内部动态创建,灵活应对转向页面的不同需求。
另外,在减少配置、减少代码量方面,Struts根据约定优于配置的思想,也提供了模式匹配以及使用DispathAction减少Action个数的功能
国际化方面,Struts基于java的国际化处理(Locale、ResourceBundle等)进行了进一步的封装。首先国际化资源文件由BaseName+Locale.property命名存储,ActionMessage进行存储传递,页面JSP上,采用Struts提供的标签很方便的读取。其余Struts的异常处理结合比较紧密。
通过Struts的学习、实践,掌握了基于MVC的开发流程,也明白了一个WebMVC框架大致提供的功能,这也为后面其他相类似框架的使用提供了大概的方向。
相关文章推荐
- jdk版本不一致——UnsupportedClassVersionError
- JAVA中的TTL
- Spring Bean Validation Example with JSR-303 Annotations
- java普通算法
- Java 7之多线程第1篇 - 线程的状态转换
- java security 的jdk的工具
- JavaWeb中的四大域对象
- java集合中对象某属性比较排序Comparable与Comparator
- leetcode Roman to Integer java基本编程学习(四)
- Spring MVC Display, Validate and Submit Form Example
- Spring MVC上传文件的两种方式
- fail to create java virtual machine..
- spring data jpa 配置
- java security接口和类的分布
- 常用的JavaXML解析技术
- JSch - Java实现的SFTP(文件上传详解篇)
- Java中使用jcraft进行SFTP的上传下载
- java 日期相减时分秒
- CRC32之JAVA实现
- [转]Spring Security 可动态授权RBAC权限模块实践