Strust2学习之一(struts2 环境搭建)

Strust2学习之一(struts2  环境搭建)

     Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

 

这里先写开发流程后面解释原理

添加struts的支持:

 

我们看看这都做了什么

 

 

 

第一步: 添加struts2的核心jar包

第二步: 添加struts2的配置文件

<package name="sbj" extends="struts-default">
		<action name="login" class="com.wfg.action.LoginActin">
			<param name="name">ss</param>
			<param name="password"></param>
			<result name="success">/ok.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>


上例中的技能点  
技能点 1:package 定义上例中的技能点  
技能点 1:package 定义上例中的技能点  
技能点 1:package 定义

定义:  <package name="com.wangwang" extends="struts-default">
含义:使用package可以将逻辑上相关的一组 Action,Result,Interceptor 等组件分为一组,
package有些像对象,可以继承其他的package,也可以被其他package继承,甚至可以定义
抽象的Package。它有以下要点:
  name 属性。package的别名,为了让其他的package引用或继承。
  abstract,抽象的package中不需要定义action。
  extends,继承的父package配置,struts-default 在Struts2核心包下的struts-default.xml
中声明,读者可以先看下,后期我们详细讲解。
技能点 2:action 定义
定义:  <action name="helloAction"  
class="com.wangwang.HelloAction" method=””>
含义:一个package下面可以有多个action,每个action表示一个受管理的Bean它。有以下
要点:
  name 属性。客户端通过此名称访问action。
  class,具体的类。
  method,默认调用action的execute方法,或者调用此属性标记的方法。
技能点 3:result 定义
定义:<result name="ok">result.jsp</result>
含义:类似于struts1下的forward节点。一个action下可以有多个result。表示执行完跳转的目
标地址。name必须与Bean执行方法返回值一致,默认的是请求转发,添加type="redirect"表示
重定向。chain表示转发给下一个action

第三步: 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>*.action</url-pattern>
	</filter-mapping>


这里大家注意与Struts1不同的是,Struts1 在web.xml中配置的是一个Servlet,而
Struts2配置是一个过滤器(Filter)。并且最早时使用的是FilterDispatcher,而现在新版
本使用的是StrutsPrepareAndExecuteFilter。它的url-pattern为/*,表示过滤所有请
求。这里大家注意与Struts1不同的是,Struts1 在web.xml中配置的是一个Servlet,而
Struts2配置是一个过滤器(Filter)。并且最早时使用的是FilterDispatcher,而现在新版
本使用的是StrutsPrepareAndExecuteFilter。它的url-pattern为/*,表示过滤所有请
求。这里大家注意与Struts1不同的是,Struts1 在web.xml中配置的是一个Servlet,而
Struts2配置是一个过滤器(Filter)。并且最早时使用的是FilterDispatcher,而现在新版
本使用的是StrutsPrepareAndExecuteFilter。它的url-pattern为/*,表示过滤所有请
求。

 

受管理的bean

//action 可以不继承任何类,但是有时会继承ActionSupport类 未来使用里面已有的功能
public class LoginActin extends ActionSupport {

	private String name;
	private String password;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	//默认调用调用execute 
	public String execute() {
		System.out.println(name+";;;"+password);
		if("aa".equals(name)&&"bb".equals(password)){
			return SUCCESS;
		}else {
			return ERROR;
		}
		
	}

 

上例中的技能点  
技能点 1:受管理的 Bean
定义:   public class HelloAction {}  
含义: 我们把HelloAction称为受管理的Bean。它有以下要点:
  Struts1中FormBean需要继承之 ActionForm,ActionBean需要继承 Action;而此
Bean不需要继承任何框架类或实现任何框架接口,与框架相脱离;当您的项目需要由
Struts2迁移到JSF时,此类可以直接使用。
  受管理的Bean=ActionBean+FormBean。Struts2包括JSF一样把其合而为一。
  Struts1中 ActionBean是单态,无状态的,FormBean是多态,有状态的;受管理的
HelloAction会为每个请求产生一个实例,因为其中定义了保存客户端数据的变量,它是多
态,有状态的。
技能点 2:execute 与自定义 login 方法
定义:   String execute();  String login()
含义: 系统默认调用受管理Bean的execute()方法,当然您也可以在主配置文件中通过
action节点的 method属性或者/contextPath/actionName!methodName.action方式访问。

 

 

jsp代码

 

<form action="login.action">
  	name:<input type="text" name="name">
  	password: <input type="text" name="password">
  	<input type="submit">
  </form>



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值