Struts 2期末考试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、MVC模式(View-model-controller)
2、MVC模式的优点:
(1)低耦合性。视图层、模型层和控制层分离,很容易改变应用程序的数据层和业务规则,只需改变MVC的模型层就可以了。
(2)高重用性。多个视图可以对应一个模型,这样减少了代码的重复性及维护量,一旦模型发生改变,也易于维护。
(3)可实用性。MVC允许使用各种不同的表现层技术来访问同一个服务器端的代码。如jsp、velocity等。
(4)可维护性。3个模块层相分离,是的web应用更易维护和修改。
3、model2模式下,模型用javaBean充当,视图有jsp页面充当,控制器由servlet充当。
4.struts2是在struts1的基础上发展起来的,以webwork 为核心,采用webwork的设计理念。Struts2是webwork 的升级。
5、webwork是基于MVC架构模式的J2EE Web框架,现在的最新版本被拆分为XWork和WebWork2两个项目。WebWork的优点:
(1)action不需要与WebWork耦合,提高了代码的重用率。
(2)支持更多表现层技术,从而有更好的适用性。Webwork的特征:
(1)灵活的validation框架。运行开发者在XML文件中定义验证内容,在运行时通过interceptor自动应用,这样可以脱离Action类。
(2)Interceptor。在action处理的前后实现动态拦截,简化action代码。
(3)支持I18N
(4)支持OGNL表达式语言
(5)Type Conversion.允许类之间很容易实现对象的转换。(6)允许动态对象图表遍历和方法执行,使用valuestack 透明访问多beans的属性。
(7)Ioc容器。管理组件的生命周期,使客户不需要通过创建注册类获得组件实例。
(8)velocity templates .使UI组件可重用,从而允许开发者很容易地定制Web页面的look&feel。
(9)容易和第三方软件集成。例如hibernate、spring和sitemesh。
(10)支持多种视图技术。如jsp、velosity、freemarker 和xml等。
6、struts2框架的大致处理流程:
(1)客户端浏览器发送一个请求。
(2)核心控制器filterdispatcher根据请求决定调用合适的action。
(3)webwork的拦截器链自动对请求应用通过功能,如验证。
(4)回调action的execute()方法,该方法根据请求的参数来执行一定的操作。
(5)execute()方法的处理结果信息将被输出到浏览器中,struts2支持多种形式的视图。如jsp、html。
7、web.xml
xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/j avaee /xml/ns/javaee/web-app_2_5. xsd"> org.apache.struts2.dispatcher.FilterDispatcher
(2)
ShowWords.java
package action;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ShowWords extends ActionSupport{
private String name;
private String words;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getWords() {
return words;
}
public void setWords(String words) {
this.words = words;
}
public String execute(){
return INPUT;
}else{
words = "欢迎您:" + name;
return SUCCESS;
}
}
}
(3)
Struts.Xml
"-//Apache Software Foundation//DTD Struts
Configuration 2.0//EN"
"/dtds/struts-2.0.dtd">
312"/> extends="struts-default"> class="action.ShowWords"> name="success">/showWords.jsp name="input">/inputWords.jsp 8、核心控制器FilterDispatcher: 核心控制器是struts2框架的基础,它包含了框架内部的 控制流程和处理机制。在web应用中,FilterDispatcher作 为一个filter运行,负责拦截所有的用户请求。如果用户 请求以.action结尾,则该请求被转入Struts框架处理。 Struts2框架按模块可以分为Servlet Filters、struts核心模 块、拦截器和用户实现模块。P33 Srtuts2框架处理一个请求的步骤: (1)客户端提交一个请求(HttpServletRequest). (2) 请求被提交到一系列的过滤器(filter),首先提交 ActionContextCleanUp然后提交到其他过滤器(SiteMesh等) 最后提交到FilterDispatcher。 (3) FilterDispatcher询问ActionMapper是否需要调用某个 Action来处理这个请求。如果ActionMapper决定需要调 用某个Action,则FilterDispatcher把请求的处理交给 ActionProxy。 (4) ActionProxy通过Configuration Manager(struts.xml)询问 框架的配置文件,找到需要调用的Action类。 (5) ActionProxy创建一个ActionInvocation实例,同时 ActionInvocation通过代理模式调用Action,在调用之前, ActionInvocation会根据配置加载Action相关的所有拦截 器。 (6)一旦Action执行完毕,ActionInvocation负责根据 struts.xml中的配置找到对应的返回结果。 9、使用 属性名name,必选,指定包的名称,该名称是该包被其他 包引用的key值。 属性名extends,可选,指明该包继承的其他包。 用extends继承包,父包在子包前定义。 Struts.xml "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd"> value="gb2312" /> class="ActionClass1"> name="success">/success.jsp extends="default" namespace="/skill">