基于MVC模式的应用框架之struts
2024-09-11 00:33:13
1.struts开发步骤
- 引入struts的jar包;
- 在web.xml中引入struts的核心功能,配置struts核心过滤器;(如果项目中用到了其他过滤器,要放在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>
- 开发Action,一般继承自ActionSupport,业务方法必须返回String类型,方法不能有参数;
- 在src/struts.xml中配置Action;
<?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>
<package name="hello" extends="struts-default" >
<action name="hello" class="com.juaner.action.HelloAction" method="hello">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
2.struts的执行流程
服务器启动
- 加载项目的web.xml;
- 创建struts核心过滤器对象,并执行其init()方法,依次读取struts-default.xml、struts-plugin.xml、struts.xml配置文件;
访问
- 用户访问Action,服务器根据访问URL找对应的Action类,创建Action实例;
- 执行struts拦截器;
- 以后每次访问都创建Action的实例,然后执行拦截器;
3.struts-default.xml详解
- bean节点制定了struts在运行时创建的节点类型;
- 指定struts-default包,用户写的struts.xml中的package必须要继承此包,
其中包括:
- 跳转的结果类型
dispathcer:默认值
redirect:重定向
redirectAction:重定向到Action资源
stream:文件下载时使用
- 定义了32个拦截器,为了引用方便,可以通过定义栈的方式引用拦截器;
- 默认执行的拦截器(18个),按顺序执行;
- 默认值型的Action;
4.拦截器VS过滤器
拦截器和过滤器都起到拦截资源的作用。
过滤器:
拦截所有资源:jsp、servlet、css、js等;
在所有servlet项目中都可以使用;
拦截器:
只能拦截Action请求;
是struts的概念,只能在struts项目中使用;
最新文章
- CentOs中yum安装LAMP+PHPMYADMIN
- XAF学习笔记之-多表头设计
- Python:将utf-8格式的文件转换成gbk格式的文件
- ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
- C++学习30 重载++和--(自增自减运算符)
- MySQL中部分系统变量介绍
- GridBagLayout()的使用方法
- Spring3之JDBC
- easyui总结
- struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
- 说一说高级男装面料_SuMisura_新浪博客
- 检测android的网络链接状态
- 爬虫必备 User-Agent 列表
- c++中sort()函数的用法
- 下载MNIST数据集脚本input_data源码
- 一些最常见的SNMP的OID自动翻译成zabbix数字进行表示(华为9306)
- 小程序组件 scroll-view 滑动
- redis在游戏服务器中的使用初探(二) 客户端开源库选择
- JDBC事务保存点(setSavepoint, releaseSavepoint )实例
- [PY3]——threading.Event
热门文章
- [css] vertical-align和line-height
- alertdialog.builder 自定义弹窗
- 1到N中1出现的次数
- xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
- js生成验证码
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- Sql Server判断某列字段是否为空或判断某列字段长度
- js解码
- (03)odoo模型/记录集/公用操作
- 学习HTML5之塔克大战(详细记录)