Struts2的浅入研究

Struts2是Java Web项目开发中最经典的框架技术,受到许多软件开发人员的喜欢和追捧,是软件企业招聘Java软件人才时要求必备的技能之一。

Struts2是基于MVC设计模式的Java Web框架技术之一,Struts2框架按照MVC的设计思想把Java Web应用程序分为三层:控制器层(包括核心控制器StrutsPerpareAndExecuteFilter和业务控制器Action);模型层(包括业务逻辑组件和数据库访问组件);视图层(包括HTML、JSP、Struts2的标签等)
Struts2中使用拦截器来处理用户请求,从而允许用户的业务控制器Action与Servlet分离。
Struts2的工作原理
一个客户请求在Struts2框架中处理的过程大概有以下几个步骤:
1、客户提交请求到服务器。
2、请求被提交到一系列的过滤器或者拦截器,最后到达StrutsPerpareAndExecuteFilter;StrutsPerpareAndExecuteFilter是核心控制器,是Struts2中MVC模式的控制器部分。
3、StrutsPerpareAndExecuteFilter读取配置文件struts.xml,根据配置信息调用某个Action来处理客户请求。
4、Action处理后,返回处理结果,StrutsPerpareAndExecuteFilter根据struts.xml的配置找到对应的页面跳转。

Struts2的控制器主要有核心控制器StrutsPerpareAndExecuteFilter和业务控制器Action。
那么我们就来分别了解一下这些控制器。

1、StrutsPerpareAndExecuteFilter控制器
StrutsPerpareAndExecuteFilter是一个过滤器,是Struts2的核心控制器,控制着整个Java Web项目中数据的流向和操作。而且StrutsPerpareAndExecuteFilter需要在web.xml中进行配置。除了用web.xml配置文件配置核心控制器StrutsPerpareAndExecuteFilter外,Struts2控制数据的操作时,还需要用到Struts2的另一个配置文件struts.xml。

2、Action控制器
Action时Struts2的业务控制器,它可以不实现任何接口或者不继承任何Struts2类。Action类是一个基本的Java类,具有很高的重用性。Action类不实现任何的业务逻辑,只负责组织调度业务模型组件。(就只是申明一个类,类里面只有属性和它的get、set方法,不过也可以重写Action类的execute()方法——仅返回一个字符串作为处理结果,例如 success、false)。

下面我们举一个银行存款的模型组件和业务控制器的代码:

Bank模型组件(Bank.java)

public class Bank{
	private String accounts;   //账号
	private String money;      //资金
	private String getAccounts(){
		return accounts;
	}
	public void setAccounts(String accounts){
		this.accounts=accounts;
	}
	public String getMoney(){
		return money;
	}
	public void setMoney(String money){
		this.money=money;
	}
	//模拟存款功能的方法
	public boolean saving(String accounts,String money){
		.............     //调用其它类对数据库进行操作,这里省略的代码部分表示数据库查询的数据
		boolean b1;
		if(getAcccounts().equals("accounts")&&getMoney().equals("money")){
			b1=true;
		}
		else{
			b1=false;
		}
		return b1;
	}
}

业务控制器(BankSavingAction.java)

public class BankSavingAction{
	private String accounts;   //账号
	private String money;      //资金
	private String getAccounts(){
		return accounts;
	}
	public void setAccounts(String accounts){
		this.accounts=accounts;
	}
	public String getMoney(){
		return money;
	}
	public void setMoney(String money){
		this.money=money;
	}
	public String execute(){
		Bank bk=new Bank();
		if(bk.saving(accounts,money)){
			return "success";
		}
		else{
			return "error";
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值