1:package 定义一个包。 包作用,管理action。 (通常,一个业务模板用一个包)
  常见属性及其说明:

    (1)name  包的名字;以方便在其他处引用此包,此属性是必须的。 包名不能重复;

    (2)extends 当前包继承自哪个包,用于声明继承的包。在struts中,包一定要继承struts-default ;

        struts-default在struts-default.xml中定的包

   (3)abstract  表示当前包为抽象包; 抽象包中不能有action的定义,否则运行时期报错
                    abstract=true  只有当当前的包被其他包继承时候才用!
                    如:
                        <package name="basePackage" extends="struts-default" abstract="true"></package>
                        <package name="user" extends="basePackage">

   (4) namespace   指定名称空间,也就是访问此包下的Action需要访问的路径,默认为"/"
                  作为路径的一部分
                  访问路径=  http://localhost:8080/项目/名称空间/ActionName
2:action   配置请求路径与Action类的映射关系,                                        常见属性及其说明:
         (1)name  请求路径名称,用于配置Action对象被请求的URL映射
         (2)class 请求处理的aciton类的全名
         (3)method 请求处理方法,设置请求Action对象时,调用对象的哪一个方法。       
3:result                                                          常见属性及其说明:
       (1)name  action处理方法返回值 。
       (2)type  跳转的结果类型,用于设置返回结果的类型,如请求转发,重定向等。
       (3)标签体中指定跳转的页面。


简单的配置如下所示:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6 <struts>
 7     <!-- 生命包 -->
 8     <package name="helloWorld" extends="struts-default" abstract="false" namespace="/">
 9         <!-- 定义action -->
10         <action name="hello" class="com.bie.HelloAction" method="execute">
11             <!-- 显示成功的jsp页面 -->
12             <result name="success" type="dispatcher">success.jsp</result>
13         </action>
14     </package>
15 </struts>


4:通配符实现简化配置

第一步:引包,略过,前面已经写过

第二步:配置web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3   <display-name>struts2_20170219</display-name>
 4   <welcome-file-list>
 5     <welcome-file>index.html</welcome-file>
 6     <welcome-file>index.htm</welcome-file>
 7     <welcome-file>index.jsp</welcome-file>
 8     <welcome-file>default.html</welcome-file>
 9     <welcome-file>default.htm</welcome-file>
10     <welcome-file>default.jsp</welcome-file>
11   </welcome-file-list>
12
13   <!-- 引入struts2的核心过滤器 -->
14   <filter>
15       <!-- 过滤器的名称 -->
16       <filter-name>struts2</filter-name>
17       <!-- 过滤器类 -->
18       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
19   </filter>
20   <filter-mapping>
21       <!-- 过滤器名称 -->
22       <filter-name>struts2</filter-name>
23       <!-- 过滤器映射 -->
24       <url-pattern>/*</url-pattern>
25   </filter-mapping>
26 </web-app>

第三步:开发action

 1 package com.bie;
 2
 3 import com.opensymphony.xwork2.ActionSupport;
 4
 5 /**
 6 * @author BieHongLi
 7 * @version 创建时间:2017年2月20日 下午1:29:55
 8 *
 9 */
10 public class RegisterAction extends ActionSupport{
11
12     private static final long serialVersionUID = 1L;
13
14     public String login(){
15         System.out.println("登陆的方法");
16         return SUCCESS;
17     }
18
19     public String register(){
20         System.out.println("注册的方法");
21         return SUCCESS;
22     }
23 }

第四步:配置struts.xml,先使用了普通的方法,后使用了通配符进行配置;

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6 <struts>
 7     <!-- 声明包 -->
 8     <package name="helloWorld" extends="struts-default" abstract="false" namespace="/">
 9         <!-- 定义action -->
10         <action name="hello" class="com.bie.HelloAction" method="execute">
11             <!-- 显示成功的jsp页面 -->
12             <result name="success" type="dispatcher">success.jsp</result>
13         </action>
14     </package>
15
16     <!-- 声明包 -->
17     <package name="login" extends="struts-default" abstract="false" namespace="/">
18         <action name="login" class="com.bie.RegisterAction" method="login">
19             <result name="success">success.jsp</result>
20         </action>
21
22         <action name="register" class="com.bie.RegisterAction" method="register">
23             <result name="success">success.jsp</result>
24         </action>
25     </package>
26
27     <!-- 通配符的实现简单配置 -->
28     <package name="loginRegister" extends="struts-default" abstract="false" namespace="/">
29         <action name="login_*_*" class="com.bie.RegisterAction" method="{1}">
30              <result name="success">success.jsp</result>
31         </action>
32     </package>
33 </struts>

结果如下,访问的时候如此访问即可。


5:struts-default.xml详解
目录:struts-core.jar/struts-default.xml详解
内容:
    (1):bean节点指定了struts在允许的时候创建的对象类型
    (2):指定struts-default包【用户写的package一样要继承此包】
    (3):package struts-default中定义了:
        a:跳转的结果类型:
            dispatcher转化,不指定默认为转发;
            redirect重定向;
            redirectAction重定向到action资源;
            stream文件下载的时候使用;
        b:定义了所有的拦截器;

        定义了32个拦截器,
    为了拦截器引用方便,可以通过定义栈的方式引用拦截器
    此时如果引用了栈,栈中的拦截器都会被引用;
        c:默认执行的拦截器栈,默认执行的action;
            <default-interceptor-ref name="defaultStack"/>
            <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />


6:拦截器,拦截器功能与过滤器功能类似
相同点和不同点:
    共同点:都是拦截资源的;
    不同点:拦截器,拦截所有资源都可以,包括.jsp,servlet,css,js,img等等,过滤器是servlet的概念,可已在struts中使用和servlet中使用;
               过滤器,只拦截action请求;是struts的概念,拦截器只在struts2中使用。


7:struts2的执行流程
    服务器启动
    (1):加载项目web.xml
    (2):创建struts核心过滤器,执行filter--->init()方法
        struts-default.xml---》核心功能的初始化;
        struts-plugin.xml---》struts的相关插件;
        struts.xml用户编写的配置文件;
    访问:
        (3):用户访问action,服务器根据访问路径名称,找到对应的action配置,创建action对象。
        (4):执行默认的拦截器栈中定义的18个拦截器。
        (5):执行action的业务处理方法。

Struts2的常见的配置文件介绍相关推荐

  1. 5 分钟掌握 Python 中常见的配置文件

    为什么要写配置文件 在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁. 这个固定文件 ...

  2. Python中常见的配置文件写法分享!

    相信学习Python或者正在进行Python工作的小伙伴都会有一个疑问,为什么要写配置文件呢?在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定 ...

  3. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

    1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...

  4. Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...

    上两张博文: < Linux网络服务-Web Service之[HTTP协议简介](一) > <Linux网络服务-Web Service之[Apache-Prefork.Worke ...

  5. java生成world文件_Hello World 项目创建与项目配置文件介绍

    Hello World 项目创建 如上图标注 1 所示,点击 Create New Project 进入向导式创建项目 如上图标注 1 所示,如果此时 IntelliJ IDEA 还没有配置任何一个 ...

  6. python设置ini文件中的值_5分钟掌握Python中常见的配置文件

    为什么要写配置文件 在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁. 这个固定文件 ...

  7. iOS开发UI篇—常见的项目文件介绍

    iOS开发UI篇-常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要 ...

  8. 1、Centos之常见目录作用介绍

    1.Centos之常见目录作用介绍[1] 我们先切换到系统根目录 / 看看根目录下有哪些目录 [root@localhost ~]# cd / [root@localhost /]# ls bin   ...

  9. 常见充值方式介绍及对比 (转)

    常见充值方式介绍及对比 1:银联充值 1:环境部署 安装NetPay4NTSetup.exe,将MerPrk.key和PgPubk.key两个文件放到C:\WINDOWS目录下,环境部署完成了. 2: ...

  10. Python 中常见的配置文件写法

    相信学习Python或者正在进行Python工作的小伙伴都会有一个疑问,为什么要写配置文件呢?在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定 ...

最新文章

  1. solr5.5在centos7上的安装
  2. python怎么打开shell界面-使用IDLE的Python shell窗口实例详解
  3. Reverse Linked List II leetcode java
  4. BMS开发日记 - One day
  5. 【2016年第6期】情境大数据建模及其在用户行为预测中的应用
  6. Python基础教程笔记——条件,循环和其他语句
  7. Mac 上无法使用netstat的-p参数
  8. STM8学习笔记---IAR工程重命名
  9. linux 终端 qmake,qt中的qmake命令设置
  10. JDK17下载和配置及官网地址教程(新版JDK12之后,较简单)
  11. 【LitJson】如何判断字符串中是否有某个key
  12. 实验二:运算器数据通路
  13. php 判断某一天是周几,php如何判断一个日期是周几
  14. window.addEventlistener和document.addEventlistener区别
  15. 立创eda学习笔记三十:布局传递
  16. 2019年二级造价工程师讲义视频课件免费下载地址
  17. 码神-day8-java
  18. 什么是Java SDK
  19. Vue-cli构建步骤
  20. 盛世昊通上市美国纳斯达克,汽车后市场再变亿万级存量市场

热门文章

  1. 让Fiddler调试localhost和127.0.0.1
  2. Slob分配器的数据结构和分配逻辑
  3. Android 存储学习之在内部存储中读写文件
  4. 漫画:图的最短路径问题
  5. Android-7.0-Nuplayer-启动流程
  6. windows 编译FFMPEG
  7. linux percpu机制解析
  8. session timer(一)
  9. 高通camx clock配置
  10. mysql源码安装linux,Linux下mysql源码安装笔记