在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 View有紧密的耦合度,因为在Controller代码中夹杂了组件部份的名称!
那么在这一篇我,我再改用Struts框架来构建这个系统,要注意的是,构建Struts应用程序时,一般不用自己去写中心控制器ActionServlet代码,因为ActionServlet是Struts框架的一个内置组件。但我们需要编写ActionForm和Action等组件的代码。
开发步骤如下:
Step1:设计数据表,与构建一个简单的基于MVC模式的JavaWeb 里面的表相同。
Step2:构建JSP页面,注意要把JSP中的HTML梅花鹿改为Struts特有的标记。
Step3:构建ActionForm,ActionForm其实是一个JavaBean,可以手工编写它,也可以使用工具生成!
Step4:构建Action,可以手工编写,也可以用工具!
Step5:构建模型组件和数据访问组件,与构建一个简单的基于MVC模式的JavaWeb 的相同!
Step6:构建Struts配置文件!
Step7:编译,打包,部署!
详细设计:
A:构建视图组件JSP页面,可以直接COPY构建一个简单的基于MVC模式的JavaWeb 中的三个页面,我们仅仅修改login.jsp页面,引入Struts标记,如下:
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
<%@ page language="java" pageEncoding="GBK"%>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<html>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<head>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<title>JSP for LoginHandlerForm form</title>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</head>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<body>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<html:form action="/loginHandler">
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
userName : <html:text property="userName"/><html:errors property="userName"/><br/>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
userPwd : <html:text property="userPwd"/><html:errors property="userPwd"/><br/>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<html:submit/><html:cancel/>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</html:form>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</body>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</html>
B:构建数据访问组件,与构建一个简单的基于MVC模式的JavaWeb 一样,COPY过来
C:构建模型组件LoginHanlder,与构建一个简单的基于MVC模式的JavaWeb 一样,COPY!
D:构建ActionForm,代码如下:
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/*
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Generated by MyEclipse Struts
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Template path: templates/java/JavaClass.vtl
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
package struts.form;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import javax.servlet.http.HttpServletRequest;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionErrors;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionForm;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionMapping;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/**
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Struts框架的ActionForm对象,它可用来在用户和业务层之间舆用户的输入数据。
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* ActionForm也叫FormBean.Struts框架会自动从请求中惧输入数据,再将 这些
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* 数据交给一个使用FormBean的Action对象,接着FormBean可以再交给业务层
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public class LoginHandlerForm extends ActionForm {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/*
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Generated fields
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/** userName property */
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
private String userName;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/** userPwd property */
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
private String userPwd;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//验证方法,主要用于验证视图上的数据,例如非空之类,
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//如果要进行业务验证,则应该在Action中进行!
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
public ActionErrors validate(ActionMapping mapping,
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
HttpServletRequest request) {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
return null;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//初始化首先调用的方法
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public void reset(ActionMapping mapping, HttpServletRequest request) {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
// TODO Auto-generated method stub
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public String getUserName() {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
return userName;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public void setUserName(String userName) {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
this.userName = userName;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public String getUserPwd() {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
return userPwd;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public void setUserPwd(String userPwd) {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
this.userPwd = userPwd;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
E:构建Action
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/*
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Generated by MyEclipse Struts
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Template path: templates/java/JavaClass.vtl
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
package struts.action;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import java.util.ArrayList;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import javax.servlet.http.HttpServletRequest;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import javax.servlet.http.HttpServletResponse;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import javax.servlet.http.HttpSession;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import model.LoginHandler;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.Action;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionForm;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionForward;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import org.apache.struts.action.ActionMapping;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
import struts.form.LoginHandlerForm;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/**
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* MyEclipse Struts
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Creation date: 01-06-2007
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
*
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* XDoclet definition:
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @struts.action path="/loginHandler" name="loginHandlerForm" input="/login.jsp" scope="request" validate="true"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
public class LoginHandlerAction extends Action {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
/**
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* Method execute
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @param mapping
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @param form
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @param request
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @param response
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
* @return ActionForward
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
*/
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
public ActionForward execute(ActionMapping mapping, ActionForm form,
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
HttpServletRequest request, HttpServletResponse response) {
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
LoginHandlerForm loginHandlerForm = (LoginHandlerForm) form;// TODO Auto-generated method stub
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//从Form中取得表单数据
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
String userName = loginHandlerForm.getUserName();
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
String userPwd = loginHandlerForm.getUserPwd();
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//生成一个Session对象
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
HttpSession session = request.getSession(true);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
session.removeAttribute("userName");
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
session.setAttribute("userName", userName);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//生成一个ArrayList
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
ArrayList arr = new ArrayList();
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
arr.add(userName);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
arr.add(userPwd);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
String forward;
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//调用模型组件
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
LoginHandler login = new LoginHandler();
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
boolean flag = login.checkLogin(arr);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
if(flag)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
forward = "success";
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
else
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
forward = "fail";
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
//转向
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
return mapping.findForward(forward);
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
F:构建Struts的配置文件
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<?xml version="1.0" encoding="GBK"?>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<struts-config>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<data-sources />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- 表单配置 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<form-beans >
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<form-bean name="loginHandlerForm" type="struts.form.LoginHandlerForm" />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</form-beans>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- 全局异常 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<global-exceptions />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- 全局转发 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<global-forwards />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- 表单Action映射 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<action-mappings >
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<action
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
attribute="loginHandlerForm"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
input="/login.jsp"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
name="loginHandlerForm"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
path="/loginHandler"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
scope="request"
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
type="struts.action.LoginHandlerAction" >
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- action与视图组件的联系在配置文件中写,这样就大大降低了Action和VIEW的耦合性 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<forward name="success" path="/main.jsp" />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<forward name="fail" path="/register.jsp" />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</action>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</action-mappings>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<!-- 资源文件 -->
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<message-resources parameter="struts.ApplicationResources" />
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</struts-config>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
WEB配置文件
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<?xml version="1.0" encoding="GBK"?>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<welcome-file-list>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<welcome-file>/login.jsp</welcome-file>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</welcome-file-list>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<servlet>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<servlet-name>action</servlet-name>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-name>config</param-name>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-value>/WEB-INF/struts-config.xml</param-value>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-name>debug</param-name>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-value>3</param-value>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-name>detail</param-name>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<param-value>3</param-value>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</init-param>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<load-on-startup>0</load-on-startup>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</servlet>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<servlet-mapping>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<servlet-name>action</servlet-name>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
<url-pattern>*.do</url-pattern>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</servlet-mapping>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
</web-app>
![struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
小结:在开发Struts时,不需要开发人员自己编写中心控制器 的代码,但需要开发ActionForm,和Action组件,而且它 的JSP页面中的HTML标记需要转化为Struts自定义标记。这是开发Struts应用程序与开发一般基于MVC模式的主要不同!