【Struts】Struts2简介及实现用户登录代码示例

Struts2是由传统的Struts1和WebWork两个经典的MVC框架发展起来的,无论是从Struts2设计的角度来看,还是从Struts2在实际项目中的易用性来看,Struts2都堪称是一个非常优秀的MVC框架。


与传统的Struts1相比,Struts2允许使用普通的、传统的Java对象作为Action;Action的execute()方法不再与Servlet API耦合,因而更易于测试;支持更多的视图技术;基于AOP思想的拦截器机制,提供了极好的可扩展性;更强大、更易用的输入校验功能;并且将Ajax技术整合到了框架里面等等,这些都是Struts2具有更大的吸引力的原因所在。


下面我们来看一张经典的Struts2架构图:

【Struts】Struts2简介及实现用户登录代码示例_第1张图片
对比着上面的图片,我们一起来简单了解下Struts2的执行流程:
         所有请求被Struts2核心控制器FilterDispather拦截
         根据ActionMapper提供的信息决定如何进行下一步
         ActionMapper主要依赖Struts2的配置文件struts.xml
         接下来为每个Action创建Action代理类ActionProxy
         执行ActionProxy的execute()方法
         在执行execute()方式时会逐个执行Struts2中的拦截器
         执行完成拦截器后才会真正执行目标Action
         目标Action需要返会转向的视图名称
         ActionProxy取得视图名称对象Result完成转向

         生成resposne对象完成本次请求

了解了Struts2框架的整体内容和执行流程,依旧以一个用户登录的示例来说明如何使用Struts2进行项目开发。


第一步:在MyEclipse中创建Java Web项目(需要注意的是Struts2需要运行在JRE1.5及其以上版本的环境中)


第二步:下载Struts2的开发包,并且将依赖包拷贝到WEB-INF/lib下(必要的jar如下)

【Struts】Struts2简介及实现用户登录代码示例_第2张图片


第三步:在web.xml配置文件中,配置Struts2的核心控制器FilterDispatcher或者StrutsPrepareAndExecuteFilter,具体配置信息如下:


    
        struts2
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    

    
        struts2
        /*
    

第四步:提供struts2的配置文件struts.xml,放到源码文件src下

第五步:编写Action源码文件和JSP页面,进行程序开发

        LoginAction

public class LoginAction {

	private String username;
	
	private String password;
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

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

	public String execute() throws Exception {
		if ("admin".equals(username) && "admin".equals(password)) {
			return "success";
		}else {
			return "error";
		}
	}
	
}
        login.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>




Insert title here


	
用户:
密码:

        login_success.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>




Insert title here


	${username },登录成功

        login_error.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>




Insert title here


	登录失败

第六步:将开发好的Action类和JSP页面配置到struts.xml配置文件中,具体配置如下:





	
	
		
			/login_success.jsp
			/login_error.jsp
		
	

第七步:部署到Tomcat中,启动并且运行程序
小结一下;
从上面的例子中,不难发现,Struts2框架在实际开发中更加的便捷和高效,并且在Struts1的基础上有了很大的提升,但是Struts2依然是一个基于请求驱动的MVC框架,其核心设计来自于另一个MVC框架WebWork,是对WebWork的一个升级,并且与Struts1的体系结构有很大的区别,具体有哪些不同的地方,敬请期待下篇。

你可能感兴趣的:(【Struts】)