(1)配置Struts的ActionServlet 
    <servlet>元素来声明ActionServlet
    <servlet-name>元素:用来定义Servlet的名称
    <servlet-class>元素:用来指定Servlet的完整类名

  1.  
    <servlet>
  2.  
    <servlet-name>action</servlet-name>
  3.  
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  4.  
    </servlet>

还要配置<servlet-mapping>元素,它用来指定ActionServlet可以处理哪些URL

  1.  
    <servlet-mapping>
  2.  
    <servlet-name>action</servlet-name>
  3.  
    <url-pattern>*.do</url-pattern>
  4.  
    </servlet-mapping> <span style="color:#ff0000;">注:<span style="font-family: Arial; font-size: 14px; line-height: 26px;">在显示层所有以*.do为扩展名提交的URL,都会交由这个Servlet来处理。</span></span>

(2)声明ActionServlet的初始化参数
     初始化参数用来对Servlet的运行时环境进行初始配置。

<servlet>的<init-param>子元素用于配置Servlet初始化参数: 
             config :以相对路径的方式指明Struts应用程序的配置文件位置,如不设置,则默认值为/WEB-INF/struts-config.xml
             debug : 设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
             detail : 设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的                          解析日志。默认为0,记录相对最少的日志信息。
             <load-on-startup>?</load-on-startup>中?号的值是此ActionServlet在服务器开启时加载的次序,数值越低,越先加载。

  1.  
    <servlet>
  2.  
    <servlet-name>action</servlet-name>
  3.  
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  4.  
    <init-param>
  5.  
    <param-name>config</param-name>
  6.  
    <param-value>/WEB-INF/struts-config.xml</param-value>
  7.  
    </init-param>
  8.  
    <init-param>
  9.  
    <param-name>debug</param-name>
  10.  
    <param-value>3</param-value>
  11.  
    </init-param>
  12.  
    <init-param>
  13.  
    <param-name>detail</param-name>
  14.  
    <param-value>3</param-value>
  15.  
    </init-param>
  16.  
    <load-on-startup>0</load-on-startup>
  17.  
    </servlet>

扩展:(1)当服务器启动后,加载ActionServlet,而ActionServlet会调用相关的方法去,会根据它下面的参数的初始值,对这个ActionServlet中的参数时行初始化

  1.  
    <servlet>
  2.  
    <servlet-name>action</servlet-name>
  3.  
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>

不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Struts框架只允许在应用中配置一个ActionServlet。

************************************************************初始化参数对Servlet的运行环境进行初始化配置*************************************************************************

<init-param>

<param-name>config</param-name><!—config指明Struts应用程序的配置文件相对位置-->

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

这里是以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。 **************************************************************设置Servlet的debug级别**********************************************************************

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。 *

************************************************************设置Digester的debug级别*****************************************************

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,


**************************************************************这里也是配置ActionServlet****************************************************************************************

<servlet-mapping><!—标识着与URL进行匹配时,Web服务器就会将控制权移交给ActionServlet-->

<servlet-name>action</servlet-name><!—与<servlet-name>必须一样-->

<url-pattern>*.do</url-pattern>

</servlet-mapping>

就是将所有的*.do请求提交给action,从这里又找到上面那个配置可以读到ActionServlet的位置。

*************************************************************配置Struts标签库******************************************************************************************************

<taglib>

   <tag-uri>/WEB-INF/struts-html.tld<tag-uri>

   <taglib-location>/WEB-INF/struts-html.tld</taglib-location>  

</taglib>

其中<tag-uri>用于指定标签库的相对或者绝对URI地址,Web应用根据这一URI来访问标签库。 <taglib-location>指定标签描述文件在文件资源系统中的物理位置。


Struts2 在web.xml中的配置

任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。        通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。 标准配置文件如下:

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  3.  
     
  4.  
    <display-name>Struts Blank</display-name>
  5.  
     
  6.  
    <filter>
  7.  
    <filter-name>struts2</filter-name> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2核心Filter的名字 --></span>
  8.  
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2核心Filter的实现类 --> </span>
  9.  
    <init-param>
  10.  
    <param-name>actionPackages</param-name> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2框架默认加载的Action包结构,可以没有。 --> </span>
  11.  
    <param-value>org.apache.struts2.showcase.person</param-value>
  12.  
    </init-param>
  13.  
    <init-param> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2框架的配置提供者类 --> </span>
  14.  
    <param-name>configProviders</param-name>
  15.  
    <param-value>lee.MyConfigurationProvider</param-value>
  16.  
    </init-param>
  17.  
    </filter>
  18.  
    <!-- 配置Filter拦截的URL -->
  19.  
    <filter-mapping>
  20.  
    <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
  21.  
    <filter-name>struts2</filter-name>
  22.  
    <url-pattern>/*</url-pattern>
  23.  
    </filter-mapping>
  24.  
     
  25.  
    <welcome-file-list>
  26.  
    <welcome-file>index.html</welcome-file>
  27.  
    </welcome-file-list>
  28.  
    </web-app>

比较Struts1和Struts2在Web.xml中的配置:

Struts1中的核心控制器是ActionServlet,是一个Servlet;而到了Struts2核心控制器是FilterDispatcher,是一个Filter;

Struts1是封装了Servlet的框架,而Struts2是封装了过滤器Filter的框架,原因是struts2基于webwork,机制完成不一样!是两个不同的                    框架,之间没多大关系。

转自https://blog.csdn.net/qmw19910301/article/details/52921571

Struts在Web.xml中的配置及Struts1和Struts2的区别的更多相关文章

  1. J2EE进阶(五)Spring在web.xml中的配置

     J2EE进阶(五)Spring在web.xml中的配置 前言 在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制自动加载到容器中.在web ...

  2. Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

    一.首先写一下代码结构. 二.再看web.xml中的配置情况. <?xml version="1.0" encoding="UTF-8"?> < ...

  3. 使用Spring时web.xml中的配置

    使用Spring时web.xml中的配置: <?xml version="1.0" encoding="UTF-8"?> <web-app x ...

  4. spring 和springmvc 在 web.xml中的配置

    (1)问题:如何在Web项目中配置Spring的IoC容器? 答:如果需要在Web项目中使用Spring的IoC容器,可以在Web项目配置文件web.xml中做出如下配置: <!-- Sprin ...

  5. SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息

    在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...

  6. servlet中用注解的方式读取web.xml中的配置信息

    在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...

  7. web.xml中JSP配置及 EL表达式

    web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...

  8. Spring web.xml中的配置

    转载博客:http://blog.163.com/zhangke_616/blog/static/191980492007994948206/ 在实际项目中spring的配置文件application ...

  9. java的web.xml中<url-pattern>配置[转]

    <servlet-mapping> <servlet-name>downLoadFile</servlet-name> <url-pattern>*.l ...

随机推荐

  1. Tomcat 的 DefaultServlet

    问题描述: 群里有人测试 Spring MVC,没有配置任何Controller,只配置了一个view resolver,指定了前缀后缀. 然后,他问的是 当访问 localhost:8080/tes ...

  2. SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整 ...

  3. 解决Eclipse代码分析插件SonarLint在Console输出乱码问题

    在Eclipse安装目录下的eclipse.ini文件末尾加上一行   -Dfile.encoding=UTF-8   即可.

  4. Xianfeng轻量级Java中间件平台:一期开发计划

    关于Xianfeng轻量级Java中间件平台,考虑到需要控制开发周期,通过分期开发的方式来实现一些基础的.常用的功能,这样有利于跟踪开发计划.一期的开发计划,主要实现的目标如下: 系统架构: 1.确定 ...

  5. vimdiff的常用命令

    ★ 跳转到下一个diff点: 请使用 ]c 命令★ 跳转到前一个diff点: 请使用 [c命令如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远.比如如果在位于第一个差异点的行输入& ...

  6. 长姿势 教你在qq空间上显示iPhone6尾巴

    下午刚午休完的时候,广州很多童鞋都感受到了震感,半青也感受到了,不仅如此,我还感受到了更大震感,那就是翻一下QQ空间动态,竟然看到有一位好友的尾巴竟然显示为“iPhone6”,顿时觉得该好友逼格太高了 ...

  7. 基于HBase Hadoop 分布式集群环境下的MapReduce程序开发

    HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上 ...

  8. Objective-C语法之NSDictionary和NSMutableDictionary

    Java 有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷.在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也 ...

  9. 使用DataSource绑定一维数组时,DataTextField只需绑定空字符串

    方法定义: public static void InitDropDownList(DropDownList ddl, bool isAddTopItem, DropDownList ddlSub, ...

  10. Unity三消算法

    消除算法图文详解 三消算法首要实现的就是找到所有三个或三个以上的可消除对象,但直接找到这些对象是不太现实的,所以我们要将需求拆分.可不可以先获取所有图案相连的对象,进而在获取三消对象,这个算法也是众多 ...