struts1入门教程
- 格式:docx
- 大小:345.92 KB
- 文档页数:7
struts1.x一、开发struts1应用的基本步骤1)首先导入struts1的所有jar包;2)在WEB-INF下创建struts-config.xml这个核心配置文件;3)在web.xml文件中配置struts的主控器ActionServlet;注:以上三步可以通过MyEclipse插件自动完成4)创建一个ActionForm类,继承ActionForm(可选),在这个类中提供属性和getter/setter方法来获得客户端提交的参数值;5)创建一个Action类,继承Action。
在execute方法中编写处理请求的代码,处理完成后返回一个ActionForward对象给主控器。
注:ActionForword实际上是一个包含了视图路径和转发请求方式的一个对象,这个对象可以有两种创建方式:1.直接new一个,在创建的时候,通过构造器传入视图路径和转发请求方式等信息。
2.通过ActionMapping对象的findForward方法创建,这种方式实际上是在配置文件中配置转发请求的一些信息,然后根据这些信息创建一个ActionForward对象。
6)在struts-config.xml文件中配置Action;7)在jsp页面上指定发送请求的路径,必须以.do结尾。
二、Struts的工作流程***装载并实例化ActionServlet***当Web Server启动装载Web应用(基于Struts)时,容器先将ActionServlet装载进虚拟机并实例化,接着调用init()方法,在init()中ActionServlet去解析struts-config.xml文件,将其中的元素信息封装到相应的对象中,对象被存放到Struts框架维护的集合中。
例如:<form-bean>元素 --> ActionFormBean对象<action>元素 --> ActionMapping对象元素中的属性 --> 对象中的属性注: ActionFormBean和ActionMapping对象被存放在Struts框架维护的HashMap 中HashMap formbeans(name,ActionFormBean对象引用)HashMap actionconfigs(path,ActionMapping对象引用)init()方法调用完毕后,ActionServlet处于service状态,可以接受客户端的请求。
对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中。
(struts的配置文件struts-config.xml:一个用户请求是通过ActionServlet来处理和转发的。
那么,ActionServlet如何决定把用户请求转发给哪个Action对象呢?这就需要一些描述用户请求路径和Action映射关系的配置信息了。
在Struts中,这些配置映射信息都存放在特定的XML文件struts-config.xml中。
在该配置文件中,每一个Action的映射信息都通过一个<action>元素来配置。
这些配置信息在系统启动的时候被读入内存,供Struts在运行期间使用。
在内存中,每一个<Action>元素都对应一个org.apache.struts.aciton.ActionMapping的实例)用户通过客户端向服务器发出一个请求,而我们已经在web.xml配置了所有符合某某格式的请求都将由指定的Servlet来处理。
比如说:只要是以.do结尾的请求(*.do)都由org.apache.struts.action.ActionServlet来对其进行处理。
而ActionServlet和ActionMapping都已经在服务器启动的时候被加载到内存里面。
结合登录例子:当用户登录时,地址栏的URL为:http://localhost:8080/struts_login/login.do ActionServlet会拿到用户的请求,并且去分析这个URL,它会截下/login(不包含.do)这一部分,截来之后,它的目的是为了去struts-config.xml这个配置文件里面找<action>标签path属性的值等于所截部分的那个Action。
1、从struts官方网站下载1.x版。
你可以只下载lib文件,就是几个jar包,放到我们自己项目的WEB-INF/lib目录下面即可。
我们下载他的的demo app,在他的struts-blank-1.3.10.war这个项目的基础上修改就很好。
这是一个压缩包,解压缩即可。
2、在eclipse中创建一个普通的java项目。
创建一个action,继承自org.apache.struts.action.Action即可,覆盖实现execute操作。
在该操作中写你的处理代码,结果用request.setAttribute传递到下一步。
3、创建一个form,继承自org.apache.struts.action.ActionForm,加几个属性,属性的名称与web客户端(或者手机软件)传来的参数的名称一致,做好get/set操作即可。
文件属性的类型是FormFile。
4、创建一个xml文件(这个xml文件,已经上述两个java文件,开发时在src目录下面,编译后放到classes下面)5、配置项目WEB-INF下面的web.xml文件。
将starts的配置文件修改为第4步的xml文件即可6、这里展示层用jsp,可以从request中取得action传来的数据。
success.jsp这个文件就放在项目根目录下面7、Ok了,部署后,在浏览器地址栏输入测试8、扩展struts-examples-1.3.10.war这个demo中,有一个文件上传的例子,看看他的代码,在你的项目中实现文件上传的功能9、简述struts1原理客户端发送请求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet 根据请求的地址,和struts-config.xml里的映射关系,找到对应的Action,若找不到就返回找不到页面的错误。
若有通过request取得请求参数,设置到ActionForm中,接着执行Action 里的excute()方法,这时就进入到我们编写的逻辑操作代码了,我们在这里处理,包括对数据库的增删改操作,结果setAttitude到request里面,返回包含控制字符的ActionForward,然后Struts1根据ActionForward,以及struts-config.xml里的result配置,找到相应的输出页面(jsp/ftl等文件),创建输出,返回给客户端。
01struts基础J2EE1.4ServletJspJDBCJTA(Java Transaction API)JPA(Java persistence API)---EJBJavaMailJSTLEJBJNDIModel_1的执行流程Mode2_2的执行流程Struts框架的版本Struts充当表现层的作用。
Struts框架的核心组件ActionServlet总控制器。
核心组件,用于将具体的请求分配到各自处理的Action组件中。
Action具体的业务处理过程组件ActionFrom(FormBean)获取表单参数,并将参数封装到Bean中。
ActionForward用来Action的请求转发ActionMapping帮助控制器[ActionServlet]将请求映射到操作类[Action]Struts-config.xml用来配置Stuts组件的关联关系。
Struts框架的工作流程Struts-config.xml<form-bean name="loginForm" type="com.softfz.login.LoginForm" />name:用来表示actionform的名称type:用来表示actionform的类路径<actionattribute="loginForm" name="loginForm"path="/loginAction" scope="request"type="com.softfz.login.LoginActionAction" validate="true"input="/index.jsp" />attribute:表示ActionFrom的实例放到作用域中的名称.LoginForm aa = new LoginForm();aa.setUsername(request.getParameter("username"));aa.setPassword(request.getParameter("password"));request.setAttribute("attribute的值",aa);name:表示Action和ActionFrom关联的名称。
struts 1 的使用一、搭建struts 1 的环境1、导入struts 1 的jar 包;2、新建struts-config.xml 配置文件;3、在web.xml 中配置struts 1 的ActionServlet。
二、开发ActionForm (也叫Form Bean)1、新建一个类,继承ActionForm;2、注册Form Bean,修改struts-config.xml 配置文件例如:在配置文件中添加一个FormBean,名称为loginForm<form-beans><form-bean name=”loginForm” type=”com.lightcom.form.LoginForm”/> </form-beans>三、开发Action1、建立一个类,继承Action覆盖execute 方法a)需要强制转型;b)调用其它模块;c)跳转(根据关键字,关键字参照该action 中forward 标签中的name 属性)。
2、注册Action,修改struts-config.xml 配置文件path:指明调用者(jsp)能通过中心控制器ActionServlet 找到该Action;type:指定该action 类全名;name:该action 引用的form 的名称;四、创建调用Action 和Action 转发的页面1、创建调用Action 的页面页面中的表单form 中的action 属性的值与struts-confgi.xml 中action 标记的path 属性值对应;2、创建Action 执行重写的execute 方法后转发的页面页面的名字与struts-config.xml 配置文件中的action 标记的标签forward 的path 属性值保持一致;例如:action 中的path=”/login”则form 表单中的action=”<%=request.getContextPath()%>/login.do”。
Struts1基本运作流程--------------------------------------------------------------------------------在Struts实现MVC/Model 2方式中,担任控制器(Controller)角色的是org.apache.struts.action.ActionServlet,它继承自javax.servlet.http.HttpServlet,通常会直接使用ActionServlet,在web.xml中配置相关的组态,就如同配置一般的Servlet一样,您也可以配置一些相关的初始参数给ActionServlet使用。
在MVC/Model 2的架构中,理想上客户端不会直接要求资源或指定请求的JSP 页面,所有客户的请求都必须发送至控制器,由控制器决定该转发给哪一个对象进行处理、决定该由哪一个视图页面进行显示与响应。
在Struts中,担任控制器的是ActionServlet,所有的请求都发送给ActionServlet,对于ActionServlet来说,doGet()会将调用doPost(),所以无论请求是GET或POST在行为上都是相同的,ActionServlet藉由组态档struts-config.xml知道如何分配对象来处理请求,这包括了org.apache.struts.action.ActionMapping、org.apache.struts.action.ActionForm、org.apache.struts.action.Action等物件的分配,struts-config.xml是整个Struts运作的重心。
ActionServlet会将处理的控制权暂时交给Action对象,在Action中,您可以藉由一些数据传输对象(Data Transfer Object)、辅助类别(Helper Class)等来完成业务请求,Action应当传回ActionForward对象给ActionServlet,之后ActionServlet根据ActionForward来进行forward给视图或include视图(Viewer)的动作,由视图显示处理的结果。
Java学习大全之Struts11、struts1是轻量级框架,设计思想是MVC。
SSH混用框架中struts1担任视图层。
action为单实例的,线程需要同步。
2、MVC是指模型视图控制器。
3、struts1流程:browser -request-> ActionServlet(根据struts-config.xml配置文件找到action与model层交互) -forward-> jsp -response-> browser4、ActionServlet类:用来控制导航action的。
根据url来决定哪个action被处理。
5、struts1配置文件struts-config.xml需要在WEB-INF目录下的。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/dtds/struts-config_1_2.dtd"> <struts-config><!--连接数据库级连接池配置,不需要时候可以不写--><data-sources><data-source type="mons.dbcp.BasicDataSource"><set-property property="driverClassName" value="org.postgresql.Driver" /><set-property property="url" value="jdbc:postgresql://localhost/mydatabase" /><set-property property="username" value="me" /><set-property property="password" value="test" /><set-property property="maxActive" value="10" /><set-property property="maxWait" value="5000" /><set-property property="defaultAutoCommit" value="false" /><set-property property="defaultReadOnly" value="false" /><set-property property="validationQuery" value="SELECT COUNT(*) FROM market" /></data-source></data-sources><form-beans><!--表示表单映射,子元素为form-bean--></form-beans><!--不需要时候可以不写--><global-exceptions><!--全局异常,子元素为exception--></global-exceptions><!--不需要时候可以不写--><global-forwards><!--全局异常处理去向,子元素为forward--></global-forwards><action-mappings><!--表示请求映射,子元素为action--></action-mappings><message-resources parameter="com.ApplicationResources" /></struts-config>6、使用流程一、web.xml的配置<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <!--初始化参数,可以不写,如果不写则加载默认名字的xml文件--> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value> </init-param><!--启动服务就实例化ActionServlet,可以不用写--><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>二、写一个action类继承Action抽象类三、写一个actionForm类继承ActionForm抽象类四、在struts-config.xml配置文件添加bean和action7、不使用数据源的例子登录页面index.jsp<body><form action="login.do" method="post">用户名:<input name="username" type="text" /><br/>密码:<input name="password" type="password"/><br/>登录:<input type="submit" value="提交"/></form></body>成功页面success.jsp<body>success跳转<br/>用户名:${ername}<br/>密码:${param.password}<br/></body>LoginForm.java类public class LoginForm extends ActionForm {private String username;//用户名private String password;//密码public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}LoginAction.java类public class LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm lf = (LoginForm) form;System.out.println(lf.getUsername());//后台打印用户输入的用户名System.out.println(lf.getPassword());//后台打印用户输入的密码return mapping.findForward("success");//表示去映射里找到本action的名字为success的forward获得去向,然后跳转。
Struts旅程(一)Struts简介和原理struts简介Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。
它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
Struts发展历史Struts是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、servlet、标签库以及面向对象的技术水准。
Struts这个名字的来源于在建筑和旧式飞机中使用的支持金属架。
之所以这个框架叫做“struts”,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷的基础支撑。
这也是解释struts在开发web应用程序中所扮演的角色的精彩描述。
Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSP,servlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以struts应运而生,帮助用户在最短的时间内解决这些问题。
Struts框架提供如下服务:(1)作为控制器的Servlet。
(2)提供大量的标签库。
(3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。
(4)提供了JDBC的实现,来定义数据源和数据库连接池。
(5)XML语法分析工具。
(6)文件下载机制。
Struts原理Struts是对JSPModel2设计标准的一种实现,下面分别从模型(Model)、视图(view)和控制器3个部分介绍Struts的体系结构和工作原理。
调用流程如下所示(图1.1)。
图1.1(1)视图(view)在Struts中,视图层包含两个部分,JSP页面和ActionForm。
Struts11.添加架包(Strust全部架包)出现问题就是所有架包都裸露在外,解决方法就解决了2.解压空架包F:\java资料\插件\struts-1.3.10\apps\struts-blank-1.3.10.war解压找到WEB-INF得到复制web.xml到项目中的web.xml,在把struts-config.xml整个文件复制到项目中WEB-INF中,再删除其中的文件,只保留<struts-config>标签,其中3.自己建LoginAction,继承类Action,重写execute方法其中重写executet中的方法是Httpservlet上的4.重写以后需要调用其中的方法publicclass LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {LoginActionForm la = (LoginActionForm)form;String username = la.getUsername();String password = la.getPassword();//String username = request.getParameter("username");//String password = request.getParameter("password");String path = "no";try{UserDao.login(username, password);path ="succee";}catch(UsernameNotFoundException e) {}catch(PasswordNotFoundException e) {}return mapping.findForward(path);}}5.其中的<struts-config><struts-config><form-beans><form-bean name="LoginForm"type="com.wuliang.actionForm.LoginActionForm"></form-bean>//name=区别接收的url参数名称,type是请求接收的类名</form-beans><action-mappings>//action中path是请求的地址,其中必须是…….do类型,而且必须需要“/”,//type是指定请求的分配到哪action上,类名//forword可以指定其中跳转的地址,根据传过来的name来动态跳转(path的值必须是有“/”)<action path="/login"type="com.wuliang.action.LoginAction"name="LoginForm"><forward name="succee"path="/login.jsp"></forward><forward name="no"path="/no.jsp"></forward></action></action-mappings>//mappings说明有多个action,根据</struts-config>5.struts自动接收参数ActionForm一:继承ActionForm//自动接收URL参数二:写入POpublicclass LoginActionForm extends ActionForm {private String username;private String password;public String getUsername() {return username;}publicvoid setUsername(String username) {ername = username;}public String getPassword() {return password;}publicvoid setPassword(String password) {this.password = password;}}6.问题1 :No action config found for the specified url.说明写错了<struts-config>没有path名称问题2:Path ./no.jsp does not start with a "/" character解决方法是:<struts-config>中<froword上path必须”/地址”问题3:总是没有拿到值,当报值为null,或者为初始值时,则是由于没有使用AutoActionFormaaf = (AutoActionForm)form;而是新new AutoActionForm();就得不到表单上面的值解决STRUTS中的A CTION与A CTION F ORM的设计膨胀的问题1.解决A CTION F ORM设计膨胀:1.把原来的<struts-config>中<form-bean>改为<form-beans><form-bean name="LoginForm"type="org.apache.struts.action.DynaActionForm"><form-property name="username"type="ng.String"/><form-property name="password"type="ng.String"/></form-bean></form-beans>2. 删除原来的ActionForm3. 修改Action,结果DynaActionFormdaf = (DynaActionForm)form;String username = daf.getString("username");String password = daf.getString("password");2.解决A CTION设计膨胀:一、其中A CTION全部删除,继承DISPATCH A CTION二、把每类只写一个种A CTION,例如用户中就全部写在U SER A CTION,每个操作用方法代替三、在<STRUTS-CONFIG>中ACTION写入parameter="command",修改其中的类名,并且还需要使用在跳转前的页面加入form action="./login.do?command=login"method="post">就可以了四、U SER A CTIONpublicclass UserAction extends DispatchAction {public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {DynaActionFormdaf = (DynaActionForm)form;String username = daf.getString("username");String password = daf.getString("password");String path = "no";try{UserDao.login(username, password);path ="succee";}catch(UsernameNotFoundException e) {}catch(PasswordNotFoundException e) {}return mapping.findForward(path);}public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {String path = "succee";System.out.println("---------add----------------");return mapping.findForward(path);}}配置文件:<struts-config><form-beans><form-bean name="LoginForm"type="org.apache.struts.action.DynaActionForm"><form-property name="username"type="ng.String"/><form-property name="password"type="ng.String"/></form-bean></form-beans><action-mappings><action parameter="command"path="/login"type="erAction"name="LoginForm"><forward name="succee"path="/login.jsp"></forward><forward name="no"path="/no.jsp"></forward></action></action-mappings></struts-config>3.解决A CTION F ORM动态跳转问题在方法中写入ActionForwardaf = new ActionForward();af.setPath("/ok.jsp+page"+page);return af;这样就动态的改变了跳转的方向,使用在分页上是最好的ActionForwardaf = mapping.findForward("succee");af.setPath("/ok.jsp");return af;这样会报500错误,由于MAPPING。
第一讲Struts开发步骤一、新建web工程,引入struts1.2的组件包二、打开struts-config.xml文件,通过设计视图创建实体类(FormBean类),新建formBean如下图所示:点add按钮加入属性1、建立自定义的Action必须继承自Action在login.jsp页面通过check.do提交表单数据到CheckAction进行处理,在CheckAction中需要重写execute方法,在此方法中接收用户的请求,接收到以后对请求进行处理,获取actionform对象,此ActionForm就是UserForm对象,此form对象中已经封装了用户的请求信息。
实际上就是将表单元素的值传递给了UserFrom对象。
在action的execute方法中对在execute方法中传递了四个参数,四个参数的意义如下:(1)、ActionMapping- 实现跳转到指定的路径,对应的是struts-config.xml文件的<action-mappings>节点,此对象由struts容器创建,并且调用findForward方法跳转到指定的路径。
(2)ActionForm—>实体类对象,由struts容器创建,用于封装jsp页面提交的表单元素或请求的信息。
ActionForm当中的属性名称必须要与jsp页面的表单元素的名称保持一致(一样),且属性要大于或等于表单元素的个数,继承自ActionForm类.(3)HttpServletRequest-→请求对象,由web容器创建(4)HttpServletResponse→响应对象, 由web容器创建在struts的html标签中name 属性表示作用域的名称。
Form表单的名称与action节点的name 属性名称一致。
第二部分动态的(DynaActionForm)ActionForm一、在当前的web工程中创建实体类UserBean类(此web工程已经引入了Struts组件包)通过UserBean ub=(UserBean) userForm.get("ubean");获取UserBean对象,ubean参数表示配置在struts-config.xml文件中:<form-property name="ubean"type="erBean"/>的name属性(1)使用struts的html标签获取动态formBean中的对象属性需要做以下的规范(login.jsp页面):<html:text property="ubean.uname"/>通过子属性ubean设置属性uname的值.Ubean是动态form(UserForm)的子属性。
第五讲 Struts 学习一. Struts基本知识介绍Struts最早是作为Apache Jakarta项目的组成部分问世运做的。
项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准。
它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。
你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP 的优点来建立可扩展的应用,Struts是一个不错的选择。
1. MVC框架介绍MVC即Model-View-Controller的缩写,是一种常用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
Model(模型)模型包含应用程序的核心功能(应用对象)。
模型封装了应用程序的状态。
有时它包含的唯一功能就是状态。
它对视图或控制器一无所知。
View(视图)视图提供模型的表示(它在屏幕上的表示)。
它是应用程序的外观。
视图可以访问模型的读方法(get),但不能访问写方法(set)。
此外,它对控制器一无所知。
当更改模型时,视图应得到通知。
Controller(控制器)控制器对用户的输入作出反应(定义用户界面对用户输入的响应方式)。
它创建并设置模型。
通常MVC框架的结构如下图:MVC框架可是,Web 应用向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器通过HTTP协议连接,而由于HTTP的无状态连接,使得控制器不能将应用程序的改变通知视窗。
为了发现对应用程序状态的修改,浏览器必须重新查询服务器。
所以,对于Web,需要修改标准的MVC 形式。
Struts 的体系结构实现了Model-View-Controller设计模式的概念,它将这些概念映射到web应用程序的组件和概念中。
形成了开发WEB应用的过程中最常用的框架:模型――视窗――控制器(MVC)框架。
1.什么是Struts1
基于MVC的轻量级,WEB应用框架
2.struts1工作原理
a> 初始化: struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.
b> 发送请求: 用户提交表单或通过URL向WEB服务器提供请求,请求的数据用HTTP协议传给WEB服务器.
c> form填充: Struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中
d> 派发请求: 控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给Action的excute()方法
e> 处理业务: Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象.服务器通过ActionForward对象进行转发工作
f> 返回响应: Action将业务处理的不同结果返回一个目标相应对象给总控制器
g> 查找响应: 总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面
h> 响应用户: 目标响应对象将结果传递给资源对象,将结果展现给用户
struts1原理图:
3.开发指南
准备工作:
1>到/下载struts的安装文件struts-1.3.10-all.zip
2>解压struts-1.3.10-all.zip
3>创建一个web project,并将上步中解压的lib文件下的jar包引进去
4>配置web文件
5>新建struts-config.xml
6>创建数据库(mysql
4. 项目开发
4.1 页面制作index.jsp
4.2 在struts-config.xml中需要修改
4.3 创建com.javakc.struts1.action.StudentAction 业务类
4.4 创建com.javakc.struts1.action.StudentForm类
1)继承org.apache.struts.action.ActionForm类
2)属性名要和表单中的属性名一一对应,并生成其对应的getter、setter方法
4.5 在StudentAction中处理提交的请求
1) 通过form表单或超链接可以将用户的请求提交到服务器进行处理,在系统架构中,服务器处理用户请求的场地就是StudentAction类的execute方法.
4.6 在student_info.jsp中展示数据。