一、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中配置
<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>
5、 新建以下JSP页面
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<form action="test.action" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="text" name="pwd"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
ok.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>My JSP 'ok.jsp' starting page</title>
</head>
<body>
OK!!
</body>
</html>
no.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>My JSP 'no.jsp' starting page</title>
</head>
<body>
NO!!
</body>
</html>
6、 新建一个类
TestAction.java
/**
*
*/
package com.struts2.action;
/**
* @author Administrator
*
*/
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 version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="test" class="com.struts2.action.TestAction">
<result name="ok">/ok.jsp</result>
<result name="no">/no.jsp</result>
</action>
</package>
</struts>
8、 部署运行
//--------------------------------------------------------
总结:TestAction 中要有一个execute方法,并且返回的值在struts.xml中配置过。只要表单提交到TestAction下,Struts2会帮我们按名接收表单数据。返回的值,代表要跳转的页面。
分享到:
相关推荐
Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序,将它们改为基于Struts 2.1运行。...
这个一个实现程序的源代码,里面有sql文件,可以直接运行。里面涉及的技术有struts2和hibernate框架,以及dao层的抽象等。如果是入门参考,个人觉得还是蛮好的。详情可以看我的播客--struts2+hibernate实现简单的仿...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
入门1、简介 2、安装 2.1.下载struts 源代码和支持库 2.2.软件需求 2.3用原码build Struts 以如下运行环境为例 2.4在appserver上发布基于Struts的web应用程序
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,...
本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的一个模块...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
1.5 你的第一个struts应用程序 8 第2章深入Struts结构 8 2.1人介绍应用框架 mvc和model2 8 2.2 Struts原理、开发及项目实施 8 2.3使用STRUST控制流 8 2.4讨论STRUTS的优缺点 9 2.5 Struts入门经验 9 2.6用strtus制作...