总结-对各种开源框架的认识小结-struts2
2017-03-09 15:42
507 查看
初入java开发行业,还处于菜鸟阶段,俗话说好记性不如烂笔头,目前接触比较多的就是各种开源框架了,今天总结一下目前接触到的框架,以及其中的一些原理。
配合图像再看下面的说明应该会更加清晰:
客户端初始化一个指向Servlet容器(例如Tomcat)的请求
这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,
这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个ActionFilterDispatcher是控制器的核心,就是mvc中c控制层的核心。
如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类
,这里,我们一般是从struts.xml配置中读取。
ActionProxy创建一个ActionInvocation的实例。
ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
以下为必须加载的8个jar包:
2.配置web.xml
3.开发视图层页面-index.jsp
4.开发控制层Action-HelloAction
5.创建struts.xml文件
6.部署、运行项目
一.struts2定义
直接上百科上的定义:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一servlet,在MVC设计模式中, Struts2作为控制器(Controller)来建立模型与视图的数据交互。(定义成功解释了struts2是什么和作用)
二.struts2优势
Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点。 Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性。
三.struts2工作原理
这里借用一张很常见的工作原理图
配合图像再看下面的说明应该会更加清晰:
客户端初始化一个指向Servlet容器(例如Tomcat)的请求
这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,
这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个ActionFilterDispatcher是控制器的核心,就是mvc中c控制层的核心。
如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类
,这里,我们一般是从struts.xml配置中读取。
ActionProxy创建一个ActionInvocation的实例。
ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
四.struts2的使用步骤:
1.加载Struts2 类库以下为必须加载的8个jar包:
2.配置web.xml
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.开发视图层页面-index.jsp
<h1>Hello World</h1> <div> <h1> <!-- 显示Struts Action中message属性内容 --> ${message} </h1> </div> <hr /> <div> <form action=“hello"> 请输入您的姓名: <input name="name" type="text" /> <input type="submit" value="提交" /> </form> </div>
4.开发控制层Action-HelloAction
public class HelloWorldAction { private String name = ""; // 用户输入的姓名 private String message = ""; // 向用户显示的信息 /** * 当Struts 2处理用户请求时,在默认配置下调用的方法 */ public String execute() { // 根据用户输入的姓名,进行“Hello,XXXX!”的封装 this.setMessage("Hello,"+this.getName()+"!"); // 处理完毕,返回“ok”字符串 return “ok"; } … //省略setter、getter方法 }
5.创建struts.xml文件
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="demo" namespace="" extends="struts-default"> <action name="hello" method="excute" class="action.HelloAction"> <result name="ok">/index.jsp</result> </action> </package> </struts>
6.部署、运行项目
相关文章推荐
- 总结-对各种开源框架的认识小结-spring
- android各种开源框架总结(持续更新)
- 各种SmartPhone上的跨平台开源框架的总结
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- 【开发框架】谈谈对struts多模块的认识
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- nio socket 及其开源框架MINA学习总结(一)
- nio socket 及其开源框架MINA学习总结(一)
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- 转:开发框架--谈谈对struts多模块的认识
- nio socket 及其开源框架MINA学习总结(二)
- Struts Spring Hibernate 框架搭建并测试完毕,小结
- nio socket 及其开源框架MINA学习总结(一)
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- Java语言介绍(04)开源项目(02)WEB框架(03)Struts
- Struts 【Java开源Web开发框架】
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- nio socket 及其开源框架MINA学习总结