前一篇博客中小编向大家分享了《【SSH】SSH框架(一)——宏观介绍》,整体介绍了SSH框架的宏观结构,接下来小编会依次向大家详细介绍。在本博客中向大家介绍的是Struts2。
小编是第一次接触Java的项目,这个项目用到的框架之中就有Struts2,刚开始的时候小编自己都被这些整的蒙头转向的,刚接触后自己查了查资料,知道了它主要是采用拦截器的机制来处理用户的请求。
在正式学习一种新的技术之前,我们要知道使用Struts2的目的是什么?
Struts2主要是使用了MVC框架,它的目的是使Model和View分离,中间由Controllor进行中转。在以前的.Net项目中有自己也用过Spring MVC,也体验了一下它的灵活性,了解了数据到后台的变活流程。
要使用Struts2框架,首先要引入相应的jar包。然后在web.xml配置文件中配置Struct2的核心过滤器,然后在struts.xml配置文件中配置struts的基本映射信息。
引入jar包:
struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib*.jar
struts-2.3.15.3\lib\struts2-json-plugin-2.3.15.3.jar
struts-2.3.15.3\lib\struts2-spring-plugin-2.3.15.3.jar
Struts2 应用程序的入口点,将是一个部署描述符(web.xml)中定义的过滤器。因此,我们将定义在web.xml中的FilterDispatcher是类的项。需要创建的文件夹的WebContent/ WEB-INF下web.xml文件。
<!--web.xml 文件中配置的Struts2--> <!-- 配置Struts2的核心过滤器 --> <filter> <!--定义过滤器的名字--> <filter-name> struts2 </filter-name> <!--过滤器的类--> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <!--元素过滤器映射,映射 servlet或一个URL模式--> <filter-mapping> <!--过滤器名称--> <filter-name>struts2</filter-name> <!--所有的URL将被解析struts的过滤器--> <url-pattern>/*</url-pattern> <!-- 请求走核心过滤器 --> <dispatcher>REQUEST</dispatcher> <!-- 转发也走核心过滤器 --> <dispatcher>FORWARD</dispatcher> </filter-mapping> <!----> <display-name></display-name> <!----> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
请注意,我们Struts 2的过滤器映射为/, /.action这意味着所有的URL将被解析struts的过滤器。我们将覆盖时,我们将通过“注释”一章。
<struts> <!-- 开发模式 --> <constant name="struts.devMode" value="false" /> <package name="shop" extends="struts-default" namespace="/"> <!-- 全局的映射-Ares-2016年9月25日22:21:37 --> <!-- 全局results配置 --> <global-results> <result name="msg">/WEB-INF/jsp/msg.jsp</result> </global-results> <!-- 配置首页访问的Action --> <action name ="index" class="indexAction"> <result name = "index"> /WEB-INF/jsp/index.jsp </result> </action> </package> </struts>
web.xml配置文件字段解释:
package-name:用于区别不同的package;必须是唯一的、可用的变量名;用于其它package来继承;
package--namespace:用于减少重复代码(和struts1比较);是调用action时输入路径的组成部分;
package--extends:用于继承其它package以使用里面的过滤器等;
action--name:用于在一个package里区别不同的action;必须是唯一的、可用的变量名;是调用action时输入路径的组成部分;
action--class:action所在的路径(包名+类名);
action--method:action所调用的方法名;
Struts已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。Struts 2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。
Struts1分化出来的另外一个框架是Shale。这个框架远远超出了Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts1的升级。
小编完成了这个框架的搭建,但是还是不是很清楚,还是需要多多的了解,在以后的学习过程中,会很大的帮助小编前进的。在不断的尝试中,不断前进。