四、Struts2 开发流程

一、Struts2框架的作用

		
		+++ Struts2框架的来源
					Struts1最早的一种基于mvc模式的框架;
			
					Struts2 是在Struts1的基础上,融合了xwork的功能;
					也可以说,Struts2 = struts1  +  xwork

		+++ Struts2框架的作用
						Struts2框架预先实现了一些功能:
						1. 请求数据自动封装
						2. 文件上传的功能
						3. 对国际化功能的简化
						4. 数据效验功能
						……………….

二、Struts2框架开发流程

2.1 引入jar文件
			1. web项目,引入struts - jar包
							
							commons-fileupload-1.2.2.jar	  【文件上传相关包】
							commons-io-2.0.1.jar
							struts2-core-2.3.4.1.jar           【struts2核心功能包】
							xwork-core-2.3.4.1.jar           【Xwork核心包】
							ognl-3.0.5.jar					 【Ognl表达式功能支持表】
							commons-lang3-3.1.jar          【struts对java.lang包的扩展】
							freemarker-2.3.19.jar            【struts的标签模板库jar文件】
							javassist-3.11.0.GA.jar           【struts对字节码的处理相关jar】


2.2 配置web.xml
	
	1.配置web.xml的作用
			引入struts2的过滤器
	
			Tomcat启动- 加载自身web.xml---加载所有项目的web.xml
			通过在项目的web.xml中引入过滤器,
				-Struts的核心功能的初始化,通过过滤器完成
				 filter 【
						 init/      启动执行
						 doFilter/   访问执行
						 destroy
				 】
	
	2.struts2核心过滤器在哪里?
		
		struts2-core-2.3.4.1.jar/StrutsPrepareAndExecuteFilter 
		
		注意:
				 StrutsPrepareAndExecuteFilter  即为核心过滤器
				 使用的struts的版本不同,核心过滤器类是不一样的!
				 
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- 引入struts核心过滤器 -->
	<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>/*</url-pattern>
	</filter-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

2.3 开发 action
	
	1. action类,也叫做动作类; 一般继承ActionSupport类
	    即处理请求的类  (struts中的action类取代之前的servlet)
	
	2. action中的业务方法,处理具体的请求
		- 必须返回String
		  方法不能有参数
	
	
	public class HelloAction extends ActionSupport {
		// 处理请求
		public String execute() throws Exception {}
	}
	

2.4 配置struts.xml
	struts.xml:用于配置请求路径和action的映射
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
          "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="xxxx" extends="struts-default">
    	
    	
    	<action name="hello" class="org.jsoft.action.HelloAction" method="test">
    		<result name="success">/s.jsp</result>
    	</action>
    
    
    
    </package> 
</struts>

三、Struts2框架执行流程

3.1 Struts2 的执行流程
	
	+++ 服务器启动:
		1. 加载项目web.xml。
		   在web.xml中配置StrutsPrepareAndExecuteFilter过滤器。
		   	
				
		2. 服务器自动创建Struts核心过滤器对象。
		   执行filter -- init(),初始化struts2框架。该过滤器会自动加载:
					
					struts-default.xml,    核心功能的初始化
					struts-plugin.xml,     struts相关插件
					struts.xml			   用户编写的配置文件
					struts.properties      用户自定义的配置文件(该配置文件中定义的常量会覆盖default.properties中的配置)
					
		3.struts初始化完毕。
	
	+++ 访问:
	
		3. 用户发送请求, StrutsPrepareAndExecuteFilter过滤器拦截请求。
		4. 执行拦截器链( 默认执行拦截器栈中定义的18个拦截器)
		5. 服务器根据请求路径找到对应的action,反射,并创建对象。
		6. 执行action的业务处理方法,返回结果标记。
		7. 根据标记找到对应的路径,并跳转或转发。
		
		 用户请求
		         -- >  StrutsPrepareAndExecuteFilter 过滤器(被过滤器拦截)
				 -- >  拦截器链(默认执行18个拦截器)
				 -- >  找到对应的action,并执行业务方法。(根据请求路径找到对应的action)
				 -- >  返回结果标记
				 -- >  跳转和转发
								 

3.2 过滤器和拦截器的区别
		都是对于用户的请求起到拦截的作用,
		只不过Filter是Java EE规范的概念,而拦截器Interceptors是Struts2中提出的概念! 
	    Struts2中过滤器负责调用拦截器!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值