【Struts2框架学习】

前言

在网上商城的项目中,使用了SSH框架,在里面学习了Struts2框架,为什么我们要用这个Struts2呢?它有什么意义呢?这篇博文,咱们一起来讨论Struts2!      

核心

概念:

Struts2是一个开源框架,方便开发者深入研究了解其机制,越来越广泛的接受和应用。而且它提供一个好的控制器和一套定制的标签库Taglib,着力在控制器和视图上的应用,完美的体现了MVC设计思想。提供集中统一的权限控制、国际化提示和消息、输入校验和日志记录等技术支持。另外,它对其他技术和框架具有良好的融合性。如能与EJB、JDBC和Hibernate等数据库访问技术相结合,利用集成技术减少数据库的工作量。

理解:

struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。

为什么要用:

使用了MVC模式,减少了直接运用MVC模式来开发Web应用的周期。


架构:


实现步骤:

1 jsp出发action

2 struts2拦截请求,调用后台action

3 action返回结果,由不同的jsp展现数据

核心实现:

       Struts2主要是用来控制整个系统流程。它由三个部分组成,核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。本系统采用的核心控制器为2.3.15.3版本,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts 2调用名为login的Action来处理该请求。

<!-- Struts2的核心过滤器 -->
 <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>

       拦截器也是本系统中使用的一个Struts2重要组件功能,该组件功能提供一个事件拦截的方法,让你可以对某些动作进行拦截。例如本系统对所有后台操作都有一个检查是否登录的功能,如果没有登录则对其操作进行拦截。

public class PrivilegeInterceptor extends MethodFilterInterceptor{

	@Override
	protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
		// 获得Session中存的后台的用户:
		AdminUser adminExistUser = (AdminUser) ServletActionContext
				.getRequest().getSession().getAttribute("adminExistUser");
		if(adminExistUser == null){
			// 没有登录:
			ActionSupport support = (ActionSupport) actionInvocation.getAction();
			support.addActionError("您还没有登录!请先去登录!");
			return support.LOGIN;
		}else{
			// 已经登录
			return actionInvocation.invoke();
		}
		
	}
}

总结

不断进步中,项目中经常遇到spring与structs 2相结合,后面的博客会持续更新,欢迎各位伙伴们!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值