xml常用标签(web.xml文件主要配置有哪些,都有什么含义)
本文目录
- web.xml文件主要配置有哪些,都有什么含义
- XML的主要特征有哪些
- web项目的启动流程
- build.xml 中 property的 location 和value的区别是什么呢
- 在部署servlet时,web.xml文件中标签应该包含哪些标签.a b c d
- 如何用java程序从xml文件中根据文本内容获取指定标签并删除标签和内容
- 关于xml非闭合标签的问题
- Struts2教程3:struts.xml常用配置解析
- XML文件里面使用的标签属于什么标签
web.xml文件主要配置有哪些,都有什么含义
①web.xml文件是用来配置:欢迎页、servlet、filter等配置文件用的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程 web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂, 也即标签元素的种类会越来越多,但有些是不常用的,我们只需记住一些常用的就可以了。 首先是定义头和根元素 声明为xml文件,版本为1.0,编码为utf-8 声明该文件的内容可以使用xsi的标签库 声明标签的使用范围是被javaee的开发使用的 声明可以使用的标签库和对应的具体的标签库版本地址。 web.xml的模式(Schema)文件中定义了多少种标签元素,它就能拥有定义出来的那些功能 随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,也即标签元素的种类会越来越多. 定义项目的名称. 项目名称 欢迎页面 servlet 配置springmvc DispatcherServlet( 前台控制器)--》example这个Servlet的名字是example,可以有多个DispatcherServlet,是通过名字来区分的。 async-supported 启动一个新的线程去处理你的请求,完成之后调用你指定的回调函数来完成整个异步操作。 一般的jsp是通过地址栏输入一个地址,或者提交表单的方式发送请求的,这样网页都会被刷新。但是如果你在jsp页面发送一个ajax请求的话,跟前两种不同, 后台会返回给jsp页面内容,页面不会直接刷新,这样可以把返回的数据写在页面的div中,这样就完成了页面的局部刷新。 举个例子,baidu你做一个查询功能,页面上有查询条件和查询结果显示区域,你可以点查询按钮的时候通过ajax异步发送你的查询条件, 而你得到后台返回的查询结果后,更新你的jsp页面的查询结果,jsp的其他部分,比如查询条件,都没有更新,jsp没有刷新,而是更新了查询结果这一块内容 url-pattern 默认匹配所有请求Servlet拦截匹配规则可以自已定义1、拦截*.do、*.htm, 例如:/user/add.do,这是最传统的方式,最简单也最实用。不会导致静态文件(jpg,js,css)被拦截。2、拦截/,例如:/user/add,可以实现现在很流行的REST风格。很多互联网类型的应用很喜欢这种风格的URL。弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。 监听器 Listener获取的是Web应用ServletContext(application)的配置参数。-为Web应用配置Listener的两种方式: 使用@WebListener修饰Listener实现类即可 在web.xml文档中使用进行配置。我们选择web.xml这种配置方式,只有一个元素指定Listener的实现类. ②启动WEB项目的时候,Tomcat容器首先会去它的配置文件读取两个节点listener和context-param。 然后Tomcat会创建一个ServletContext(application),WEB项目所有部分都将共享这个上下文 将applicationContext.xml存入ServletContext中 Tomcat容器根据class类路径来创建监听 上面这些都是在web项目还没有完全启动起来就完成的工作,而servlet是在第一次发起请求时被实例化的 而且一般不会被容器销毁,并服务于多个用户的请求. web.xml的加载顺序是: context-param-》 listener -》 filter -》 servlet. filter Filter可认为是Servlet的“增强版”,因此Filter配置与Servlet的配置非常相似,需要配置两部分:配置Filter名称和Filter拦截器URL模式。区别在于Servlet通常只配置一个URL,而Filter可以同时配置多个请求的URL。配置Filter有两种方式: 在Filter类中通过Annotation进行配置。 在web.xml文件中通过配置文件进行配置。 ①百度 ***隐藏网址*** 1.在web.xml里配置监听器、过滤器、拦截器,书写顺序有没有什么要求? 根据网上资料来分析,应该是没有书写顺序的要求,容器会按照自己的加载方式去加载顺序. 2.监听器是必须要配置的吗? 不是必须要配置. 3假设配置了多个listener,那么会先加载哪个listener 如果有多个listener的情况下,我们可以根据自己的需要去手动设置先去加载哪个listener. 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ 技能树.IT修真院 “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。 这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~ ***隐藏网址*** ***隐藏网址***
XML的主要特征有哪些
XML的主要特征: 1. XML是以文本形式来描述的一种文件格式由于XML是以文本形式描述的,所以适合于各种平台环境的数据交换。同样由于使用文本来描述内容,可以越过不同平台的障碍进行正常的数据交换。但是,文本形式也会因为文字代码的不同造成不能阅读的问题,在这一点上XML有着非常完美的解决方案。 2. XML使用有意义的标记(Tag)在XML中文件是由一个个称之为元素(Element)的部件构成。使用标记(Tag)来描述元素。由于使用了标记的描述方法,可以保持原数据的意思和构造在互联网上进行数据交换,进而可以保持不同系统之间数据交换的灵活性。
web项目的启动流程
一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。那什么时候需要,什么时候可以不需要呢?要想回答上面的问题,得先了解web.xml文件使用来干什么的。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。那么web.xml能做的所有事情都有那些?其实,web.xml的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素《web-app》中,都必须标明这个 web.xml使用的是哪个模式文件。如:《?xml version="1.0" encoding="UTF-8"?》《web-app version="2.5"***隐藏网址******隐藏网址******隐藏网址******隐藏网址***《/web-app》而且web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,也即标签元素的种类会越来越多,但有些是不常用的,我们只需记住一些常用的就可以了。下面列出web.xml常用的标签元素及这些标签元素的功能:1、指定欢迎页面,例如:《welcome-file-list》《welcome-file-list》《welcome-file》index.jsp《/welcome-file》《welcome-file》index1.jsp《/welcome-file》《/welcome-file-list》上面的例子指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。关于欢迎页面:访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但web.xml 并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时,如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,而在文中没有web.xml文件,或虽然有web.xml,但 web.xml也没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。如果没找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和 index.jsp都没找到,又没有用web.xml文件指定欢迎页面,那此时tomcat就不知道该返回哪个文件了,它就显示The requested resource (/XXX) is not available的页面。其中XXX表示web的根名。但如果你指定了具体页面,是可以正常访问的。2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。下面拿serlet来举例:(1)、为Servlet命名:《servlet》《servlet-name》servlet1《/servlet-name》《servlet-class》net.test.TestServlet《/servlet-class》《/servlet》(2)、为Servlet定制URL、《servlet-mapping》《servlet-name》servlet1《/servlet-name》《url-pattern》*.do《/url-pattern》《/servlet-mapping》3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。下面哪servlet来举例:《servlet》《servlet-name》servlet1《/servlet-name》《servlet-class》net.test.TestServlet《/servlet-class》《init-param》《param-name》userName《/param-name》《param-value》Tommy《/param-value》《/init-param》《init-param》《param-name》E-mail《/param-name》《param-value》Tommy@163.com《/param-value》《/init-param》《/servlet》经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。《error-page》《error-code》404《/error-code》《location》/error404.jsp《/location》《/error-page》-----------------------------《error-page》《exception-type》java.lang.Exception《exception-type》《location》/exception.jsp《location》《/error-page》5、设置过滤器:比如设置一个编码过滤器,过滤所有资源《filter》《filter-name》XXXCharaSetFilter《/filter-name》《filter-class》net.test.CharSetFilter《/filter-class》《/filter》《filter-mapping》《filter-name》XXXCharaSetFilter《/filter-name》《url-pattern》/*《/url-pattern》《/filter-mapping》6、设置监听器:《listener》《listener-class》net.test.XXXLisenet《/listener-class》《/listener》7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:《session-config》《session-timeout》60《/session-timeout》《/session-config》除了这些标签元素之外,还可以往web.xml中添加那些标签元素呢,那些标签元素都能起什么作用呢?我们只要去查看web.xml的模式文件就能知道。直接看模式文件看不懂,可以找一些中文教程来看看。
build.xml 中 property的 location 和value的区别是什么呢
可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计。Ant 与 makefileMakefile有一些不足之处,比如很多人都会碰到的烦人的Tab问题。最初的Ant开发者多次强调”只是我在Tab前面加了一个空格,所以我的命令就不能执行”。有一些工具在一定程度上解决了这个问题,但还是有很多其他的问题。Ant则与一般基于命令的工具有所不同,它是Java类的扩展。Ant运行需要的XML格式的文件不是Shell命令文件。它是由一个Project组成的,而一个Project又可分成可多target,target再细分又分成很多task,每一个task都是通过一个实现特定接口的java类来完成的。Ant的优点Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是存Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件,所以和容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。Ant 开发Ant的构建文件当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant构建文件默认命名为build.xml,也可以取其他的名字。只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。(1) src存放文件。(2) class存放编译后的文件。(3) lib存放第三方JAR包。(4) dist存放打包,发布以后的代码。Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调用所定义的任务。任务定义了Ant实际执行的命令。Ant中的任务可以为3类。(1) 核心任务。核心任务是Ant自带的任务。(2) 可选任务。可选任务实来自第三方的任务,因此需要一个附加的JAR文件。(3) 用户自定义的任务。用户自定义的任务实用户自己开发的任务。build.xml详解1.《project》标签每个构建文件对应一个项目。《project》标签时构建文件的根标签。它可以有多个内在属性,就如代码中所示,其各个属性的含义分别如下。(1) default表示默认的运行目标,这个属性是必须的。(2) basedir表示项目的基准目录。(3) name表示项目名。(4) description表示项目的描述。每个构建文件都对应于一个项目,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。2.《target》标签一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。例如,有一个target用于编译程序,另一个target用于声称可执行文件。在生成可执行文件之前必须先编译该文件,因策可执行文件的target依赖于编译程序的target。Target的所有属性如下。(1).name表示标明,这个属性是必须的。(2).depends表示依赖的目标。(3)if表示仅当属性设置时才执行。(4)unless表示当属性没有设置时才执行。(5)description表示项目的描述。Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。程序中的名为run的target的depends属性compile,而名为compile的target的depends属性是prepare,所以这几个target执行的顺序是prepare-》compile-》run。一个target只能被执行一次,即使有多个target依赖于它。如果没有if或unless属性,target总会被执行。3.《mkdir》标签该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:《mkdir dir=”$”/》通过以上代码就创建了一个目录,这个目录已经被前面的property标签所指定。4《jar》标签该标签用来生成一个JAR文件,其属性如下。(1) destfile表示JAR文件名。(2) basedir表示被归档的文件名。(3) includes表示别归档的文件模式。(4) exchudes表示被排除的文件模式。5.《javac标签》该标签用于编译一个或一组java文件,其属性如下。(1).srcdir表示源程序的目录。(2).destdir表示class文件的输出目录。(3).include表示被编译的文件的模式。(4).excludes表示被排除的文件的模式。(5).classpath表示所使用的类路径。(6).debug表示包含的调试信息。(7).optimize表示是否使用优化。(8).verbose 表示提供详细的输出信息。(9).fileonerror表示当碰到错误就自动停止。6.《java》标签该标签用来执行编译生成的.class文件,其属性如下。(1).classname 表示将执行的类名。(2).jar表示包含该类的JAR文件名。(3).classpath所表示用到的类路径。(4).fork表示在一个新的虚拟机中运行该类。(5).failonerror表示当出现错误时自动停止。(6).output 表示输出文件。(7).append表示追加或者覆盖默认文件。7.《delete》标签该标签用于删除一个文件或一组文件,去属性如下。(1)/file表示要删除的文件。(2).dir表示要删除的目录。(3).includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。(4).failonerror 表示指定当碰到错误是否停止,默认值是自动停止。(5).verbose表示指定是否列出所删除的文件,默认值为不列出。8.《copy》标签该标签用于文件或文件集的拷贝,其属性如下。(1).file 表示源文件。(2).tofile 表示目标文件。(3).todir 表示目标目录。(4).overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。(5).includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。(6).failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。(7).verbose 表示制定是否显示详细信息,默认值不显示。Ant的数据类型在构建文件中为了标识文件或文件组,经常需要使用数据类型。数据类型包含在org.apache.tool.ant.types包中。下面镜简单介绍构建文件中一些常用的数据类型。1. argument 类型由Ant构建文件调用的程序,可以通过《arg》元素向其传递命令行参数,如apply,exec和java任务均可接受嵌套《arg》元素,可以为各自的过程调用指定参数。以下是《arg》的所有属性。(1).values 是一个命令参数。如果参数种有空格,但又想将它作为单独一个值,则使用此属性。(2).file表示一个参数的文件名。在构建文件中,此文件名相对于当前的工作目录。(3).line表示用空格分隔的多个参数列表。(4).path表示路径。2.ervironment 类型由Ant构建文件调用的外部命令或程序,《env》元素制定了哪些环境变量要传递给正在执行的系统命令,《env》元素可以接受以下属性。(1).file表示环境变量值得文件名。此文件名要被转换位一个绝对路径。(2).path表示环境变量的路径。Ant会将它转换为一个本地约定。(3).value 表示环境变量的一个直接变量。(4).key 表示环境变量名。注意file path 或 value只能取一个。3.filelist类型Filelist 是一个支持命名的文件列表的数据类型,包含在一个filelist类型中的文件不一定是存在的文件。以下是其所有的属性。(1).dir是用于计算绝对文件名的目录。(2).files 是用逗号分隔的文件名列表。(3).refid 是对某处定义的一个《filelist》的引用。注意:dir 和 files 都是必要的,除非指定了refid(这种情况下,dir和files都不允许使用)。4.fileset类型Fileset 数据类型定义了一组文件,并通常表示为《fileset》元素。不过,许多ant任务构建成了隐式的fileset,这说明他们支持所有的fileset属性和嵌套元素。以下为fileset 的属性列表。(1).dir表示fileset 的基目录。(2).casesensitive的值如果为false,那么匹配文件名时,fileset不是区分大小写的,其默认值为true.(3).defaultexcludes 用来确定是否使用默认的排除模式,默认为true。(4).excludes 是用逗号分隔的需要派出的文件模式列表。(5).excludesfile 表示每行包含一个排除模式的文件的文件名。(6).includes 是用逗号分隔的,需要包含的文件模式列表。(7).includesfile 表示每行包括一个包含模式的文件名。5.patternset 类型Fileset 是对文件的分组,而patternset是对模式的分组,他们是紧密相关的概念。《patternset》支持4个属性:includes excludex includexfile 和excludesfile,与fileset相同。Patternset 还允许以下嵌套元素:include,exclude,includefile 和 excludesfile.6.filterset 类型Filterset定义了一组过滤器,这些过滤器将在文件移动或复制时完成文件的文本替换。主要属性如下:(1).begintoken 表示嵌套过滤器所搜索的记号,这是标识其开始的字符串。(2).endtoken表示嵌套过滤器所搜索的记号这是标识其结束的字符串。(3).id是过滤器的唯一标志符。(4).refid是对构建文件中某处定义一个过滤器的引用。7.Path类型Path元素用来表示一个类路径,不过它还可以用于表示其他的路径。在用作揖个属性时,路经中的各项用分号或冒号隔开。在构建的时候,此分隔符将代替当前平台中所有的路径分隔符,其拥有的属性如下。(1).location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。(2).refid 是对当前构建文件中某处定义的一个path的引用。(3).path表示一个文件或路径名列表。8.mapper类型Mapper类型定义了一组输入文件和一组输出文件间的关系,其属性如下。(1).classname 表示实现mapper类的类名。当内置mapper不满足要求时,用于创建定制mapper.(2).classpath表示查找一个定制mapper时所用的类型路径。(3).classpathref是对某处定义的一个类路径的引用。(4).from属性的含义取决于所用的mapper.(5).to属性的含义取决于所用的mapper.(6).type属性的取值为identity,flatten glob merge regexp 其中之一,它定义了要是用的内置mapper的类型。Ant 的运行安装好Ant并且配置好路径之后,在命令行中切换到构建文件的目录,输入Ant命令就可以运行Ant.若没有指定任何参数,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为构建文件。如果使用了 –find 选项,Ant 就会在上级目录中找构建文件,直至到达文件系统得跟目录。如果构建文件的名字不是build.xml ,则Ant运行的时候就可以使用 –buildfile file,这里file 指定了要使用的构建文件的名称,示例如下:Ant如下说明了表示当前目录的构建文件为build.xml 运行 ant 执行默认的目标。Ant –buildfile test.xml使用当前目录下的test.xml 文件运行Ant ,执行默认的目标
在部署servlet时,web.xml文件中标签应该包含哪些标签.a b c d
《servlet》《servlet-name》《/servlet-name》这个是我们要注册servlet的名字,一般跟Servlet类名有关《servlet-class》《/servlet-class》 这个就是指向我们要注册的servlet 的类地址, 要带包路径《load-on-startup》0《/load-on-startup》《/servlet》《servlet-mapping》是用来配置我们注册的组件的访问路径《servlet-name》《/servlet-name》《url-pattern》《/url-pattern》配置这个组件的访问路径,如果是路径,对应路径下的请求都会通过这个servlet,如果是资源格式例如*.do等,凡是符合这种格式的请求都会由指定的servlet处理。《/servlet-mapping》
如何用java程序从xml文件中根据文本内容获取指定标签并删除标签和内容
XML文件的表现:以“.xml”为文件扩展名的文件;
存储结构:树形结构;
节点名称区分大小写。
1、《book id="1"》《/book》 id为属性, 《book》《id》1《/id》《/book》 id为节点2、xml文件开头要加上版本信息和编码方式《?xml version="1.0" encoding="UTF-8"?》
比如:
为什么要使用XML?
思考1:不同应用程序之间的通信?
思考2:不同平台间的通信?
思考3:不同平台间的数据共享?
答案就是我们要学习的XML文件。我们可以使用相同的xml把不同的文件联系起来
回到顶部
二、应用 DOM 方式解析 XML
在Java程序中如何获取XML文件的内容
解析的目的:获取节点名、节点值、属性名、属性值;
四种解析方式:DOM、SAX、DOM4J、JDOM
DOM、SAX :java 官方方式,不需要下载jar包DOM4J、JDOM :第三方,需要网上下载jar包
示例:解析XML文件,目标是解析XML文件后,Java程序能够得到xml文件的所有数据
思考:如何在Java程序中保留xml数据的结构?
如何保留节点之间的层级关系?
注意常用的节点类型:
下面介绍DOM方式解析XML:
功能说明:
关于xml非闭合标签的问题
这是闭合的标签。一个元素如果没有内容,那么它可以写成《item》《/item》,也可以简写成《item/》。这都是符合规定的闭合标签。上面的就是这样,item元素没有内容只有属性,所以不用单独写结束标签,而是在起始标签的最后加上/,表示已经闭合。 c#如何添加我不了解,你可以试一试。我感觉应该是不添加内容的话会自动写成上面的格式。其实对于XmlDocument对象来说,这两种写法是没有区别的。
Struts2教程3:struts.xml常用配置解析
使用<include>标签重用配置文件
在Struts 中提供了一个默认的struts xml文件 但如果package action interceptors等配置比较多时 都放到一个struts xml文件不太容易维护 因此 就需要将struts xml文件分成多个配置文件 然后在struts xml文件中使用<include>标签引用这些配置文件 这样做的优点如下
结构更清晰 更容易维护配置信息
配置文件可以复用 如果在多个Web程序中都使用类似或相同的配置文件 那么可以使用<include>标签来引用这些配置文件 这样可以减少工作量
假设有一个配置文件 文件名为newstruts xml 代码如下
<?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><packagename= demo extends= struts default ><actionname= submit class= action MoreSubmitAction ><resultname= save >/result jsp</result><resultname= print >/result jsp</result></action></package></struts>
则struts xml引用newstruts xml文件的代码如下
<?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><includefile= newstruts xml /><packagename= test extends= struts default >……</package></struts>
大家要注意一下 用<include>引用的xml文件也必须是完成的struts 的配置 实际上<include>在引用时是单独解析的xml文件 而不是将被引用的文件插入到struts xml文件中
action的别名
在默认情况下 Struts 会调用动作类的execute方法 但有些时候 我们需要在一个动作类中处理不同的动作 也就是用户请求不同的动作时 执行动作类中的不同的方法 为了达到这个目的 可以在<action>标签中通过method方法指定要指行的动作类的方法名 并且需要为不同的动作起不同的名子(也称为别名) 如下面代码所示
<?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><packagename= demo extends= struts default ><actionname= test class= action MyAction >……</action><actionname= my class= action MyAction method= my >……</action></package></struts>
上面代码的两个动作的class属性都指向同一个类 name为这个类起了两个动作别名 test和my 在动作my中 使用了method属性指定要要运行的方法名为my
在MyAction类中必须要有my方法 代码如下
packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupport{……publicStringexecute()throwsException{//处理test动作的代码}publicStringmy()throwsException{ //处理my动作的代码}……}
除了在struts xml中配置别名 还可以通过请求参数来描述指定动作(并不需要在struts xml中配置) 请求参数的格式如下
//localhost /contextPath/actionName!method action
关于通过请求指定动作的详细内容 请参阅笔者写的《Struts 教程 处理一个form多个submit》
为action指定参数
在struts 中还可以为action指定一个或多个参数 大家还记着struts x是如何设置的action参数不? 在struts x中可以使用<action>标签的parameter属性为其指定一个action参数 如果要指定多个 就只能通过逗号( )或其他的分隔符将不同的参数隔开 而在struts 中可以通过<param>标签指定任意多个参数 代码如下
<actionname= submit class= action MyAction ><paramname= param >value </param><paramname= param >value </param><resultname= save >/result jsp</result> ……</action>
当然 在action中读这些参数也非常简单 只需要象获取请求参数一样在action类中定义相应的setter方法即可(一般不用定义getter方法) 如下面的代码将读取param 和param 参数的值
packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupport{privateStringparam ;privateStringparam ;publicStringexecute()throwsException{System out println(param +param );}publicvoidsetParam (Stringparam ){this param =param ;}publicvoidsetParam (Stringparam ){this param =param ;}……}
当struts 在调用execute之前 param 和param 的值就已经是相应参数的值了 因此 在execute方法中可以直接使用param 和param
选择result类型
在默认时 标签的type属性值是 dispatcher (实际上就是转发 forward) 开发人员可以根据自己的需要指定不同的类型 如redirect stream等 如下面代码所示
<result name= save type= redirect > /result jsp</result>
这此result type可以在struts core jar包或struts 源代码中的struts default xml文件中找到 在这个文件中找到<result types>标签 所有的result type都在里面定义了 代码如下
<result types> <result typename= chain class= opensymphony xwork ActionChainResult /> <result typename= dispatcher class= apache struts dispatcher ServletDispatcherResult default= true /> <result typename= freemarker class= apache struts views freemarker FreemarkerResult /> <result typename= header class= apache struts dispatcher HttpHeaderResult /> <result typename= redirect class= apache struts dispatcher ServletRedirectResult /> <result typename= redirectAction class= apache struts dispatcher ServletActionRedirectResult /> <result typename= stream class= apache struts dispatcher StreamResult /> <result typename= velocity class= apache struts dispatcher VelocityResult /> <result typename= xslt class= apache struts views xslt XSLTResult /> <result typename= plainText class= apache struts dispatcher PlainTextResult /> <! DeprecatednameformscheduledforremovalinStruts ThecamelCaseversionsarepreferred Seeww > <result typename= redirect action class= apache struts dispatcher ServletActionRedirectResult /> <result typename= plaintext class= apache struts dispatcher PlainTextResult /></result types>
全局result
有很多时候一个<result>初很多<action>使用 这时可以使用<global results>标签来定义全局的<result> 代码如下
<struts><packagename= demo extends= struts default ><global results><resultname= print >/result jsp</result></global results><actionname= submit class= action MoreSubmitAction > ……</action><actionname= my class= action MoreSubmitAction method= my >……</action></package></struts>
lishixinzhi/Article/program/Java/ky/201311/27860
XML文件里面使用的标签属于什么标签
可扩展标记语言,里面的标签当然是可扩展的啦,不像HTML是不可扩展的... 标签就是标签,XML的是可扩展的而已
本文相关文章:
phpstorm配置xdebug(如何在xampp环境下配置phpstrom xdebug)
2024年9月10日 02:30
oracle11g 数据库创建失败(oracle 11g_r2 创建数据库时 Enterprise Manager 配置失败)
2024年9月6日 19:50
centos7网卡配置(centos 7虚拟机怎么配置网卡eno 16)
2024年8月31日 12:35
feignclient(Feign Client超时时间配置以及单独给某接口设置超时时间方法记录)
2024年8月20日 09:55
hibernate二级缓存有什么用(如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性)
2024年8月16日 14:55
vscode配置python(mac下VScode怎么配置编译Python)
2024年8月11日 06:07
java获取项目中的文件(java文件怎么获取项目下的配置文件)
2024年8月9日 18:30
centos java环境配置(如何在阿里云Centos7.0上配置java web环境)
2024年8月5日 22:10
超详细tomcat安装及配置教程(apache_tomcat_7.0.69怎样安装及配置)
2024年8月5日 04:15
vmware开100个虚拟机(我电脑要开100个虚拟机电脑需要什么样的配置)
2024年8月5日 03:25
web服务器的配置(ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点)
2024年8月4日 12:35
apache一键安装(怎样在windows下配置apache vhost)
2024年8月3日 20:50
qt creator怎么配置vs2013编译器?跪求啊!STM32编译开发板串口例程,总是出现错误
2024年8月3日 20:26
cmakelist语法(怎样编写Cmake的配置文件Cmakelist.txt)
2024年8月2日 15:46
pycharm使用教程unittest(一、unittest通过main()方法运行的配置)
2024年7月27日 23:55
console线驱动(笔记本没有console口想连线配置交换机和路由怎么办)
2024年7月27日 20:25
更多文章:
手机字体ttf下载(vivoy97手机如何下载ttf字体安装字体)
2024年6月21日 03:37
t20天正建筑官网下载(天正建筑2019过期补丁哪里可以下载,求数据包一份,要可以用的,小弟万分感谢)
2024年6月15日 21:10
鬼泣5 3dm(《鬼泣5》、《只狼》即将上线,新年还有什么值得期待的游戏大作)
2024年6月12日 16:06
怎样把炮炮兵的动态头像设置成自己的头像?我找了个炮炮兵的动态图片,想把它作为QQ头像怎么办(我不是QQ会员)
2024年3月20日 19:05
微信怎么借钱马上到账(微信怎么借钱马上到账 这些平台来助攻)
2024年7月26日 20:25
u盘识别不出来解决方法 修复(u盘在电脑上读不出来怎么修复)
2024年4月11日 18:20