一、MVC简介
概括起来MVC的优点主要有一下方面:
1)多个视图可以对应一个模型。按MVC设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变, 也易于维护
2)模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如,使用JSP页面、Velocity模板或者直接产生excel文档等
3)应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性
4)控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权 限的概念
5)MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代 码
对于MVC的概念性的东西也就废话到此,其关键的地方就是各个模块的实现技术分别是什么。
二、Struts2简介
Struts2是一个兼容Struts1和WebWork的MVC框架。
Struts2的简单处理流程如下:
1)浏览器发送请求
2)中心处理器根据struts.xml文件查找对应的处理请求的Action类
3)WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能
4)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Execute方法来处理用 户请求
5)将Action类中的对应方法返回的结果响应给浏览器
三、Struts2与Struts1对比
…………………………..
四、Struts2与WebWork对比
Struts2实际上就是WebWork2.3,不过,Struts2还是与WebWork有少许的差别:
1)Struts2不再支持内置IOC容器,改用Spring的IOC容器
2)Struts2对于Webwork的一些ajax的特性的标签改用Dojo进行替换
//—————————————————-
以上内容转载。
我就只说一句,Struts2是MVC的一种实现,Struts2运行机理相比Struts1有很大的不同,Struts2是基于WebWork的。
下面开始说怎么去运行一个Struts2程序。所需jar包等,请到http://struts.apache.org下载
1、myeclipse新建web project
2、下载Struts2之后加压,找到struts2-blank-xxx.war 再解压
3、找到Struts2-blank中lib,把所有的*.jar复制到 myeclipse所建的web project的lib中
4、配置Struts2的过滤器:在web project的web.xml中配置
Xml代码
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*
5、新建以下JSP页面
login.jsp
Html代码
ok.jsp
Html代码
no.jsp
Html代码
6、新建一个类
TestAction.java
Java代码
/** * */package com.struts2.action;/** * @author AdministraTor * --www.bianceng.cn */public class TestAction { /** * 注意:属性名字要和jsp页面的表单元素名字一样,并且提供getter setter方法 */ private String username; private String pwd; public String execute() { if (username.equals(pwd)) { return "OK"; } else { return "NO"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}
7、在src下建立struts.xml 并配置刚才建立的Action
Xml代码
/ok.jsp /no.jsp
8、部署运行
//——————————————————–
总结:TestAction 中要有一个execute方法,并且返回的值在struts.xml中配置过。只要表单提交到TestAction下,Struts2会帮我们按 名接收表单数据。返回的值,代表要跳转的页面。
幸福不是因为你拥有得多,而是由于你计较得少。