Struts中配置文件的详解

 我来答
黑科技1718
2022-10-14 · TA获得超过5886个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:82.3万
展开全部

  Struts应用采用两个基于XML的配置文件来配置 分别是web xml和struts cofig xml文件 web xml文件是配置所有web应用的而struts config xml文件是struts专用的配置文件 事实上也是可以根据需要给这个配置文件起其他名称的

  Web应用的发布描述文件:

  web应用发布描述文件可以在应用开著者 发布者和组装者之间传递配置信息 Web容器在启动的时候从该文件中读取配置信息 根据它来装载和配置web应用 文档类型定义DTD对XML文档的格式做了定义 DTD吧XML文档划分为元素 属性 实体每一种XML文档都有独自的DTD文件 可以从网上下载 <web app>元素是web xml的根元素 其他元素必须嵌入在<web app>元素之内 要注意的是子元素也是有顺序的比如必须是首先<servlet> 然后<servlet mapping>最后<taglib>

  为Struts应用配置Web xml文件:

  首先最重要的一步是配置ActionServlet 这个用<servlet>标签的servlet name属性起一个名字叫action 然后用servlet class属性指定ActionServlet的类

  然后用<servlet mapping>标签的servlet name属性指定action 在用url pattern指定接收范围是* do的请求 不管应用中包含了多少子应用 都只需要配置一个ActionServlet 类来出来应用中的不同的功能 其实者就是不必要的 因为Servlet本身就是多线程的 而且目前Struts只允许配置一个ActionServlet 声明ActionServlet的初始化参数:<servlet>的<init param>子元素用来配置Servlet的初始化参数 param name设置config参数名 param value设置struts config xml的路径参数值

  配置欢迎使用清单:

  如果客户访问Web的时候值是访问了WEB应用的根目录URL 没有具体的指定文件 Web会自动调用Web的欢迎文件 <wele file list>元素来配置的 通过其中的<wele file>欢迎页面</wele file>来配置

  配置错误处理:

  尽管Struts框架功能强大的错误处理机制 但是不能保证处理所有的错误或者异常 当错误发生时 如果框架不能处理这种错误 把错误抛弃给Web容器 在默认的情况下web容器会想客户端返回错误信息 如果想避免让客户看到原始的错误信息 可以在Web应用发布描述文件中配置<error page>元素 通过<error code> 来定义错误的类型 然后通过<location>要处理错误的JSP页面来对错误进行处理 还可以用<exception type>来设置异常 然后通过<location>来处理异常的JSP页面来处理异常

  配置Struts标签库:

  这个就和以前学到的JSP自定义标签类似 配置元素为<taglib>来配置 <taglib uri>这个指定标签库的uri 类似起一个名称 <taglib location>这个是标签库的位置也就是实际所在的路径 通过这样的方法引入一个标签库 然后在前台JSP页面就可以通过自己定义的URI来调用标签

  Struts配置文件:

  struts config xml文件

  首先研讨一下onfig包 在struts应用启动的时候会把Struts配置文件信息读取到内存中 并把它们存放在config包中相关的JavaBean类的实例中 包中的每一个类都和struts配置文件中特定的配置元素对应 ModuleConfig在Struts框架中扮演了十分重要的角色 它是整个config包的核心 在Struts运行时来存放整个应用的配置信息 如果有多个子应用都会有一个ModuleConfig对象 它和Struts文件根元素的<struts config>对应 根元素中包含<form bean><action><forward>等元素

  <struts config>元素:时Struts配置文件的根元素 和它对应的配置类ModuleConfig类 <struts config>元素有 个子元素 他们的DTD定义是data sources?form bean? global exception?global forwards?action mapping?controller?message resources?plug in*在Struts配置文件中 必须按照DTD指定的先手顺序来配置<struts config>元素的各个子元素 如果颠倒了这些子元素的顺序 会产生错误

  <data sources>元素:用来配置应用所需要的数据源 数据源负责创建和特定的数据库的连接 许多数据源采用连接池的机制实现 以便提高数据库访问的性能 JAVA语言提供了javax sql DataSource接口 所有的数据源都必须实现这个接口 许多应用服务器和Web服务器都提供了数据源组件 很多数据库厂商也提供了数据源的实现 <data sources>元素包含多个<data source>子元素永远配置特定的数据源 他们可以包含多个<set property>子元素用于设置数据源的各种属性 配置了数据源以后 就可以在Action类中访问数据源 在Action中定义了getDataSource(HttpRequest)方法 用于获取数据源对象的引用 然后可以利用DataSource对象调用getConnection获取一个连接对象对数据库进行操作 在配置文件中声明多个数据源的时候需要为每一个数据源分配唯一的Key值 通过这个来表示特定的数据源 获取特定的数据源的时候可以用dataSource = getDataSource(reqeust A );

  <form beans>元素:用来配置多个ActionForm 包含一个或者N个<form bean>子元素 每个<form bean>元素都包含多个属性 className指定和<form bean>匹配的类 name指定该ActionForm的唯一标识符 这个属性是必须的以后作为引用使用 type指定ActionForm类的完整类名 这个属性也是必须的 注意包名也要加上 <form property>是指定动态的Form的元素 以后会深入了解

  <global exception>元素:用于配置异常处理 元素可以包含一个或者多个<exception>元素 用来设置JAVA异常和异常处理类ExceptionHandler之间的映射 className指定和元素对应的配置类 默认的不用动 handler指定异常处理类默认是ExceptionHandler key指定在本地资源文件中异常的消息Key path指定当前异常发生的时候转发的路径 scope指定ActionMessages实例存放的范围 type指定需要处理异常类的名字 必须的 bundle指定Resource Bundle

  <global forwards>元素:用来声明全局转发 元素可以有一个或者N个<forward>元素组成 用于把一个逻辑名映射到特定的URL 通过这种方法Action类或者JSP页面无需指定URL 只要指定逻辑名称就可以实现请求转发或者重定向 这样可以减少控制组件和视图的聚合 易于维护 className对应的配置ntextRelative如果为true表示当path属性以/开头的时候 给出的是对应的上下文URL默认是false name转发路径的逻辑名 必须写 path转发或者重定向的URL 必须写必须是以/开头 redirect设置为true的时候表示执行重定向操作 此项为false的时候 表示执行请求转发操作 重定向与请求转发的区别以后就是重定向是把请求生成应答给客户端然后在重新发送给定向的URL 浏览器地址栏会有显示 而转发就是直接把请求转发给本应用的另一个文件 不生成应答所以客户端IE没显示

  <action mapping>元素:包含一个或者N个<action>元素 描述了从特定的请求路径到响应的Action的映射 在<action>元素中可以包含多个<exception>和<forward>子元素 他们分别配置局部异常处理和局部转发 attribute设置Action关联的ActionForm在request或者session范围内的key 就是在request或者session共享内的名称 className对应配置元素的类 默认的是ActionMapping forward指定转发URL路径include指定包含URL路径 input指定包含表单的URL 当表单验证失败的时候发送的URL name 指定和该Action关联的Form名字 该名字必须是在form bean中定义过的 可写可不写 path必须/开头的方位Action的路径 parameter指定Action配置参数 在Action的execute()方法中可以调用ActionMapping的getParameter()方法来读取匹配的参数 roles指定允许调用该Action的安全角色 多个角色之间逗号格开 scope指定Form的存在范围 默认是session tyep指定Action的完整类名 unknown如果是true表示可以处理用户发出的所有的无效的ActionURL默认是false validate指定是否调用ActionForm的validate方法

  <controller>元素:用于配置ActionServlet buffreSize指定上载文件的输入缓冲大小 该属性为可选默认 className指定元素对应的配置类 ControllerConfig 然后是contentType指定响应结果内容类型和字符编码 该属性为可选 默认是text/如果在Action或者JSP网页也设置了类型内容 会覆盖这个 locale指定是否把Locale对象保存到当前用户的session中默认false tempDir指定处理文件上载的临时工作目录 nochache如果是true在响应结果中加入特定的头参数

  <message resources>元素:用来配置Resource Bundle 用于存放本地文本消息文件 className元素对应的配置类 MessageResourcesConfig factory指定消息的工厂类 key指定文件存放的Servlet对象中采用的属性Key null指定如何处理未知消息 parameter指定消息的文件名

  <plug in>元素:用于配置Struts插件

  配置多应用模块:所有的子应用都可以共享同一个ActionServlet实例 但是每个子应用都有单独的配置文件 把应用划分为多个子应用模块 首先为每个应用创建单独的Struts配置文件 在web xml的ActionServlet配置代码中添加几个子应用信息 采用元素来实现应用之间的切换

  Digester组件:是一个Apache的另一个开源代码项目 当Struts被初始化的时候 首先会读取并解析配置文件 框架采用Digester组件来且西配置文件 然后创建config包中的对象 者对象用于存放配置信息

lishixinzhi/Article/program/Java/ky/201311/27936

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式