1.什么是Struts2框架。
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。它是一个开源,免费, 轻量级的MVC框架。
轻量级:如果一个框架没有侵入性,就说该框架是轻量级的。(侵入性:如果使用一个框架,必须实现框架提供的接口,或者继承框架提供的类)。
创建简单的Struts2项目:
新建web项目
导入所需
jar包asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.jar
xwork-core-2.3.4.jar
配置 struts2 的核心控制器 web.xml 文件
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.Stru
tsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
public class HelloAction {
public String execute(){
System.out.println("hello struts2");
return "success";
}
}
注:在 servlet 中,默认执行 service 方法。在 struts2 中,默认执行 execute 方法。在 servlet 中,service 方法参数时HttpServletRequest 和 HttpServletResponse,无返回值。在 struts2 中,方法都是 public 的,并且返回值都是 String 类型,而且方法都是没有参数的。
<!--extends 必须写,直接或者间接继承 struts-default name 自定义 -->
<package name="hello" extends="struts-default">
<!-- name 是请求名称,不要写/;class 对应 action 完全限定名=包
名+类名 -->
<action name="hello" class="cn.sxt.action.HelloAction">
<!-- result 是结果集 name 和对应 action 中的方法的返回值匹
配,默认是 success -->
<result name="success">/index.jsp</result>
</action>
</package>