(一)一个简单的Struts程序
来源:互联网 发布:网络教育报考公务员 编辑:程序博客网 时间:2024/05/16 02:03
一、Struts1.x介绍
众所周知,Struts是JavaWeb开发中的常用框架,但是框架有什么用?Struts又充当什么角色呢?
框架被设计出来,提高了代码的重用性,很多重复性的的底层操作都在框架中被封装好了,所以开发者只需要关注他的业务逻辑,开发效率就大大地提高了。
JavaWeb开发中经常用到MVC模式,M是指Model(模型),专注于业务逻辑、数据的存储和处理等,V是View(视图),顾名思义就是在客户端能看到的页面,而C是指Control(控制),在模型层和视图层之间搭建一条桥梁。MVC模式结构清晰、层次分明、高内聚低耦合、重用性好等特性是它成为JavaWeb开发中的主流模式。
Struts1.x在MVC中主要充当Control的角色,它既能调用模型层的操作,又能控制页面跳转,将数据传给前端页面。接下来,我们将要开始第一个Struts1.x程序。
二、Struts1.x程序的基本组成结构
1、ActionServlet:它是整个Struts框架的中央控制器,包括请求的接收、分发、处理和页面跳转及渲染。它是Struts自带的Servlet类,需要在web.xml中配置,并初始化config参数,这个参数指定struts配置文件的位置。
2、struts配置文件:是一个xml格式的文件,不配置的话默认是/WEB-INF/struts-config.xml。
3、ActionForm:封装、验证客户提交过来的表单数据,并传入Action中。
4、Action:用户自定义的Control类,需要继承Action类并重写execute方法,在execute方法里面进行逻辑代码的调用和处理,并返回ActionForward控制页面跳转。
5、ActionForward:根据配置文件的标签配置的数据,控制页面跳转。
三、一个简单的登录程序
1、web.xml配置文件
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
解析:
在这个文件中配置一个初始化的servlet,它是整个Struts1.x的中央控制器。它有一个config初始化参数,指定了struts配置文件的位置。它的映射是/。这里简析一下/和/的区别,/既可以控制页面跳转到CGI程序,即Action类,也可以控制页面跳转到.jsp等带有后缀的页面。但是/*只能控制页面跳转到Action,不能跳到前端页面。
2、struts配置文件
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config> <form-beans> <form-bean name="myForm" type="com.struts.form.LoginForm"></form-bean> </form-beans> <action-mappings> <action path="/login" type="com.struts.action.LoginAction" name="myForm" input="/error.jsp"> <forward name="success" path="/success.jsp"></forward> <forward name="fail" path="/login.jsp"></forward> </action> </action-mappings></struts-config>
解析:
“form-bean”标签是用来配置ActionForm的,用于接收客户端提交过来的数据,“action”标签是用来配置控制类的,即Action。这个标签中path属性配置用户请求Action所需要的路径;name属性是指这个Action用哪个ActionForm接收数据,在“form-bean”标签中有配置,填写“form-bean”标签中的name属性的值即可。“action”标签的子标签“forward”则控制页面跳转,与Action中excute的返回值ActionForward相呼应,“name”属性与ActionForward中的“forwardName”相呼应,“path”属性则是要跳转到的页面。
3、ActionForm
package com.struts.form;import com.struts.bean.Person;import org.apache.struts.action.*;import javax.servlet.http.HttpServletRequest;/** * Created by 程序猿 on 2017/5/15 0015. */public class LoginForm extends ActionForm { private String account; private String password; public String getAccount() { return account; } public String getPassword() { return password; } public void setAccount(String account) { this.account = account; } public void setPassword(String password) { this.password = password; }}
解析:
定义了全局属性和getter以及setter方法,用于封装用户提交过来的参数。用户提交过来的参数名要和属性名字一样。此外它还有validate方法,用于对用户提交的数据进行校验。这个放到以后再讲。
4、Action
package com.struts.action;import com.struts.form.LoginForm;import org.apache.struts.action.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Created by 程序猿 on 2017/5/15 0015. */public class LoginAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm loginForm = (LoginForm) form; if("1".equals(loginForm.getAccount()) && "2".equals(loginForm.getPassword())){ return mapping.findForward("success"); } return mapping.findForward("fail"); }}
解析:
这个类主要处理业务逻辑,并进行页面跳转,通过mapping.findForward(“xxx”)跳转到struts配置中“forward”标签中指定的页面。
四、总结
一个简单的Struts登录程序就到此为止,透过这个程序中我们可以看到Struts开发中最基础的部分,也是必不可缺的部分,最后我们在捋一下思路。
- ActionServlet:Struts框架自带Servlet,在web.xml中配置,初始化参数指定struts配置文件的位置。它是整个Struts程序中的核心程序。
- struts配置文件(默认是/WEB-INF/struts-config.xml):根结点是“struts-config”标签,下一级结点中比不可缺的是actionform有关配置和action有关配置。
ActionForm:封装客户端请求数据,全局属性名与客户端提交的参数名一样。
Action:主要是execute方法,在里面处理业务逻辑,并返回ActionForward控制页面跳转。
- (一)一个简单的Struts程序
- 一个简单的C++程序(一)
- 最简单的Struts程序(4)---Struts应用的国际化(参考孙卫琴的struts一书)
- 最简单的Struts程序(3)---处理表单跨页(参考孙卫琴的struts一书)
- 最简单的Struts程序(1)
- 最简单的Struts程序(1)
- 一个sqlite的简单程序(转)(一)
- 创建一个简单的WCF程序(一)
- 创建一个简单的WCF程序(一)
- Struts学习总结(一个简单的struts实例)
- 最简单的struts程序
- 最简单的Struts程序
- 一个简单的Struts例子
- 一个简单的Struts例子
- 一个简单的struts页面
- 一个简单的struts登陆
- 一个简单的 Struts 例子
- Struts的一个简单起步
- Activity具体是怎么创建的?又是怎么显示出来的?
- 优秀博客的整理
- Combotree loadFilter事件
- 安卓智能地图开发与实施九:地图缩放与旋转
- 【POI】自定义cell的颜色
- (一)一个简单的Struts程序
- Visual Studio 2015 debug 显示 utf-8 汉字
- USB驱动程序(四)——键盘驱动(控制传输)
- pyc和py文件的区别
- html模板引擎(doT.min.js)和分页插件
- Android中的子线程 和 组件service 区别。
- java实现有序数组
- [Java基础] 使用JMAP dump及分析dump文件
- Android BLE蓝牙4.0