spring struts2,ibatis,hibernate知识点

本文介绍了Struts2框架的核心组成部分,包括FilterDispatcher、业务控制器及业务逻辑组件。详细阐述了Struts2如何通过FilterDispatcher拦截并处理用户请求,以及如何通过配置struts.xml文件来指定不同的Action处理特定请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2框架由3部分组成:核心控制器FilterDispatcher,业务控制器和用户实现的业务逻辑组件。

FilterDispatcher作为Struts2框架的核心控制器,该控制器作为web应用的中Filter,拦截所有的用户请求。如果用户请求以action结尾,该请求

将被转入Struts 2框架处理。

Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts 2调用名为login的Action来处理该请求。 
Struts 2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和 class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。 
Struts 2用于处理用户请求的Act ion实例,并不是用户实现的业务控制器,而是Act ion代理 ——因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。而Struts 2框架提供了系列拦截器,该系列拦截器负责将 HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。 
显然,上面的处理过程是典型的AOP(面向切面编程)处理方式。
<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
<filter-mapping>
<span style="white-space:pre">		</span><filter-name>struts2</filter-name>
<span style="white-space:pre">		</span><url-pattern>*.action</url-pattern>
<span style="white-space:pre">	</span></filter-mapping>



DelegatingFilterProxy<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgb(245, 245, 245);">其实主要作用就是一个代理模式的应用,可以把servlet 容器中的filter同spring容器中的bean关联起来。</span>
web.xml文件配置:
<filter>
		<filter-name>cookieFilter</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
		<init-param>
		    <param-name>targetBeanName</param-name>
		    <param-value>cookieFilter</param-value>
		</init-param>
	</filter>
<filter-mapping>
<span style="white-space:pre">		</span><filter-name>cookieFilter</filter-name>
<span style="white-space:pre">		</span><url-pattern>*.action</url-pattern>
<span style="white-space:pre">	</span></filter-mapping>

初始化spring IOC容器
<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值