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项目中使用;

最新文章

  1. CentOs中yum安装LAMP+PHPMYADMIN
  2. XAF学习笔记之-多表头设计
  3. Python:将utf-8格式的文件转换成gbk格式的文件
  4. ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
  5. C++学习30 重载++和--(自增自减运算符)
  6. MySQL中部分系统变量介绍
  7. GridBagLayout()的使用方法
  8. Spring3之JDBC
  9. easyui总结
  10. struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
  11. 说一说高级男装面料_SuMisura_新浪博客
  12. 检测android的网络链接状态
  13. 爬虫必备 User-Agent 列表
  14. c++中sort()函数的用法
  15. 下载MNIST数据集脚本input_data源码
  16. 一些最常见的SNMP的OID自动翻译成zabbix数字进行表示(华为9306)
  17. 小程序组件 scroll-view 滑动
  18. redis在游戏服务器中的使用初探(二) 客户端开源库选择
  19. JDBC事务保存点(setSavepoint, releaseSavepoint )实例
  20. [PY3]——threading.Event

热门文章

  1. [css] vertical-align和line-height
  2. alertdialog.builder 自定义弹窗
  3. 1到N中1出现的次数
  4. xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
  5. js生成验证码
  6. Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
  7. Sql Server判断某列字段是否为空或判断某列字段长度
  8. js解码
  9. (03)odoo模型/记录集/公用操作
  10. 学习HTML5之塔克大战(详细记录)