Struts2之入门

     对于Struts2应用的开发者而言,Action才是应用的核心,开发者需要提供大量的Action类,并在struts.xml文件中配置Action.Action类里包含了对用户请求的处理,Action类也被称谓控制器。

1. 简单的Struts2应用

(1).        在web.xml文件中定义核心Filter来拦截请求。在服务启动时,web的容器将会自动去加载struts2的相关配置。

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
	http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<!-- 让Struts 2的核心Filter拦截所有请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

(2).        如果需要发POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是GET方法方式发送请求,则无须经过这一步。

(3).        定义处理用户请求的Action类。这个Action就是MVC设计中的C,也就是控制器,该控制器负责调用Model里的方法来处理请求。(这里的包是:com.owen.action)

 public class LoginAction extends ActionSupport
{
	// 定义封装请求参数的username和password成员变量
	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;
	}
	// 定义处理用户请求的execute方法
	public String execute() throws Exception
	{
		// 当username为crazyit.org,password为leegang时即登录成功
		if (getUsername().equals("crazyit.org")
			&& getPassword().equals("leegang") )
		{
			ActionContext.getContext().getSession()
				.put("user" , getUsername());
			return SUCCESS;
		}
		return ERROR;
	}
}

(4).        配置Action.Action配置主要就是要执行哪个Action类,及对于返回的处理所对应的物理视图是哪个(即中JSP的页面)。

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<!-- 指定全局国际化资源文件 -->
	<constant name="struts.custom.i18n.resources" value="mess"/>
	<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
	<constant name="struts.devMode" value="true" />
	<!-- 所有的Action定义都应该放在package下 -->	
	<package name="crazyit" namespace="/" extends="struts-default">
		<action name="login" class="com.owen.action.LoginAction">
			<!-- 定义三个逻辑视图和物理资源之间的映射 -->
			<result name="error">/WEB-INF/content/error.jsp</result>
			<result name="success">/WEB-INF/content/welcome.jsp</result>
		</action>
		<action name="*">
			<result>/WEB-INF/content/{1}.jsp</result>
		</action>
	</package>
</struts>

(5).        编写视图资源。

2. Struts2流程

Struts2之入门_第1张图片



你可能感兴趣的:(java,jsp,Web应用)