Struts2的常见的配置文件介绍
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)标签体中指定跳转的页面。
简单的配置如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<!-- 生命包 -->
<package name="helloWorld" extends="struts-default" abstract="false" namespace="/">
<!-- 定义action -->
<action name="hello" class="com.bie.HelloAction" method="execute">
<!-- 显示成功的jsp页面 -->
<result name="success" type="dispatcher">success.jsp</result>
</action>
</package>
</struts>
4:通配符实现简化配置
第一步:引包,略过,前面已经写过
第二步:配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>struts2_20170219</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!-- 引入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>
</web-app>
第三步:开发action
package com.bie; import com.opensymphony.xwork2.ActionSupport; /**
* @author BieHongLi
* @version 创建时间:2017年2月20日 下午1:29:55
*
*/
public class RegisterAction extends ActionSupport{ private static final long serialVersionUID = 1L; public String login(){
System.out.println("登陆的方法");
return SUCCESS;
} public String register(){
System.out.println("注册的方法");
return SUCCESS;
}
}
第四步:配置struts.xml,先使用了普通的方法,后使用了通配符进行配置;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<!-- 声明包 -->
<package name="helloWorld" extends="struts-default" abstract="false" namespace="/">
<!-- 定义action -->
<action name="hello" class="com.bie.HelloAction" method="execute">
<!-- 显示成功的jsp页面 -->
<result name="success" type="dispatcher">success.jsp</result>
</action>
</package> <!-- 声明包 -->
<package name="login" extends="struts-default" abstract="false" namespace="/">
<action name="login" class="com.bie.RegisterAction" method="login">
<result name="success">success.jsp</result>
</action> <action name="register" class="com.bie.RegisterAction" method="register">
<result name="success">success.jsp</result>
</action>
</package> <!-- 通配符的实现简单配置 -->
<package name="loginRegister" extends="struts-default" abstract="false" namespace="/">
<action name="login_*_*" class="com.bie.RegisterAction" method="{1}">
<result name="success">success.jsp</result>
</action>
</package>
</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的常见的配置文件介绍的更多相关文章
- struts2:struts.properties配置文件介绍及常量加载顺序
1. 背景 struts2框架中有两个核心配置文件,其中struts.xml文件主要负责管理应用中的action映射,以及该action包含的result定义等.除此之外,struts2框架还包括一个 ...
- struts2中struts.xml配置文件详解【未整理】
1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1. 包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...
- iOS开发UI篇—常见的项目文件介绍
iOS开发UI篇—常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要 ...
- Apache源码包安装和子配置文件介绍--update.2014-12-5
安装apache: 官网:http://httpd.apache.org/download.cgi#apache24 1.wget http://mirror.bit.edu.cn/apache//h ...
- web页面相关的一些常见可用字符介绍
首先是一张图片,是一张一些字符以及想对应的HTML实体表示的对照图片.如下: 一.引号模样或内心的些字符 请选择该表格要呈现的字体: 字符以及HTML实体 描述以及说明 " " 这 ...
- .Net Core配置文件介绍
Net Core中的配置文件介绍 1 简单回顾.Net Framework配置文件 .Net Core中的配置文件操作较.Net Framework有了很大的改动.介绍.Net Core中配置文件操作 ...
- 4 Redis 配置文件介绍
2016-12-22 14:28:39 该系列文章链接NoSQL 数据库简介Redis的安装及及一些杂项基础知识Redis 的常用五大数据类型(key,string,hash,list,set,zse ...
- Logstash配置文件介绍
Logstash配置文件介绍 Logstash配置文件有两种,分别是pipeline配置文件和setting配置文件. Pipeline配置文件主要定义logstash使用的插件以及每个插件的设置,定 ...
- C++编译器详解(二)常见precompiling 指令介绍
VC++编译器中一些常见precompiling 指令介绍 我们在利用vc6.0 project wizard生成的代码中,经常看到大量的precompiling指令.本文讲解了常见的这些指令的作用 ...
随机推荐
- webkitAnimationEnd事件与webkitTransitionEnd事件
写一个焦点图demo,css3动画完成以后要把它隐藏掉,这里会用到css3的事件,以前没有接触过,结果查了一下发现这是一片新天地啊,而且里面还有好多坑,比如重复动画多次触发什么的.anyway,我还是 ...
- 夏令时(DST)测试
夏令时测试是比较小众的测试,主要针对在有夏令时的国家使用的软件,如果你接触到了这方面的测试,说明你在挣国外的钱:). 话不多说,先来介绍下什么是夏令时: 夏时制,夏时令(Daylight Sa ...
- Javaweb学习笔记——(五)——————DOM&XML目录
1.表单提交方式 *使用submit提交 <form> <input type="submit" /> </form> *使用button提交表 ...
- 八、IIC 接口
8.1 IIC接口介绍 8.1.1 IIC 总线的概念 I2C总线是由Philips公司开发的一种简单.双向二线制同步串行总线.它只需要两根线即可在连接于总线上的器件之间传送信息. 主器件用于启动总线 ...
- 20155215 2016-2017-2 《Java程序设计》第9周学习总结
20155215 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 JDBC入门 - JDBC(Java DataBase Connectivity) ...
- pyqt5的安装
第一步:需要安装:pip3 install pyqt5 安装工具:pip3 install pyqt5-tools 第二步:打开Pycharm,进入设置,添加外部工具 file-->sett ...
- WPS 表格筛选两列相同数据-完美-2017年11月1日更新
应用: 1.选出A列中的数据是否在B列中出现过: 2.筛选出某一批序号在一个表格里面的位置(整批找出) 3.其实还有其他很多应用,难描述出来... ... A列中有几百的名字,本人想帅选出B列中的名字 ...
- 【转】Python之装饰器
[转]Python之装饰器 本节内容 必要知识回顾 情景模拟 装饰器的概念及实现原理 回马枪(带参数的装饰器) 一. 必要知识回顾 在开始说装饰器之前,需要大家熟悉之前说过的相关知识点: 函数即“变量 ...
- mysql系列六、mysql创建用户、授权、备份及恢复命令
一.创建用户和授权 下面的操作中,其中someusername为用户名,somepassword为密码,somedbname为数据库名 1.创建用户 create user 'someusername ...
- llinux除了软连接本地文件夹同步:mount
mount --bind /srv/dir1 /srv/dir2dir1:被共享的文件夹dir2:需要同步的文件夹