Struts在Web.xml中的配置及Struts1和Struts2的区别
(1)配置Struts的ActionServlet
<servlet>元素来声明ActionServlet
<servlet-name>元素:用来定义Servlet的名称
<servlet-class>元素:用来指定Servlet的完整类名
- <servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
- </servlet>
还要配置<servlet-mapping>元素,它用来指定ActionServlet可以处理哪些URL
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>*.do</url-pattern>
- </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在服务器开启时加载的次序,数值越低,越先加载。
- <servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
- <init-param>
- <param-name>config</param-name>
- <param-value>/WEB-INF/struts-config.xml</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>3</param-value>
- </init-param>
- <init-param>
- <param-name>detail</param-name>
- <param-value>3</param-value>
- </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
扩展:(1)当服务器启动后,加载ActionServlet,而ActionServlet会调用相关的方法去,会根据它下面的参数的初始值,对这个ActionServlet中的参数时行初始化
- <servlet>
- <servlet-name>action</servlet-name>
- <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>指定标签描述文件在文件资源系统中的物理位置。
任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。 标准配置文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <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">
- <display-name>Struts Blank</display-name>
- <filter>
- <filter-name>struts2</filter-name> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2核心Filter的名字 --></span>
- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2核心Filter的实现类 --> </span>
- <init-param>
- <param-name>actionPackages</param-name> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2框架默认加载的Action包结构,可以没有。 --> </span>
- <param-value>org.apache.struts2.showcase.person</param-value>
- </init-param>
- <init-param> <span style="font-family: Arial, Helvetica, sans-serif;"><!-- 配置Struts2框架的配置提供者类 --> </span>
- <param-name>configProviders</param-name>
- <param-value>lee.MyConfigurationProvider</param-value>
- </init-param>
- </filter>
- <!-- 配置Filter拦截的URL -->
- <filter-mapping>
- <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
- </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的区别的更多相关文章
- J2EE进阶(五)Spring在web.xml中的配置
J2EE进阶(五)Spring在web.xml中的配置 前言 在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制自动加载到容器中.在web ...
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
一.首先写一下代码结构. 二.再看web.xml中的配置情况. <?xml version="1.0" encoding="UTF-8"?> < ...
- 使用Spring时web.xml中的配置
使用Spring时web.xml中的配置: <?xml version="1.0" encoding="UTF-8"?> <web-app x ...
- spring 和springmvc 在 web.xml中的配置
(1)问题:如何在Web项目中配置Spring的IoC容器? 答:如果需要在Web项目中使用Spring的IoC容器,可以在Web项目配置文件web.xml中做出如下配置: <!-- Sprin ...
- SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息
在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...
- servlet中用注解的方式读取web.xml中的配置信息
在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...
- web.xml中JSP配置及 EL表达式
web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...
- Spring web.xml中的配置
转载博客:http://blog.163.com/zhangke_616/blog/static/191980492007994948206/ 在实际项目中spring的配置文件application ...
- java的web.xml中<url-pattern>配置[转]
<servlet-mapping> <servlet-name>downLoadFile</servlet-name> <url-pattern>*.l ...
随机推荐
- 用Visual C#创建Windows服务程序
一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...
- unity3d Start执行不同时问题
1.一个Scene的场景里有许多的GameObject,很多GameObject上绑定了Script,每个Script上又都有Start函数 using UnityEngine; using Syst ...
- iOS:自定义字体
转自: <iOS tips: Custom Fonts> Post by Steve Vlaminck My good friend google told me that using a ...
- OpenGL核心技术之帧缓冲
笔者介绍:姜雪伟.IT公司技术合伙人,IT高级讲师.CSDN社区专家.特邀编辑.畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- JavaScript高速掌握
.document.write(""); 输出语句 .JS中的凝视为//或/* */ .传统的HTML文档顺序是:document->html->(head,body) ...
- Oracle 高级查询
Oracle SQL 一些函数用法 以下sql环境都是在 Oracle 11g/scott完成 Group by 与GROUP BY一起使用的关建字 GROUPING,GROUP SET,ROLLUP ...
- Vue slot简单理解
情形一: 子组件定义了具名的slot,父组件使用具名的slot,slot显示顺序为子组件定义slot的顺序 子组件: Vue.component('child',{ template:`<div ...
- 9 云计算系列之Cinder的安装与NFS作为cinder后端存储
preface 在前面我们知道了如何搭建Openstack的keystone,glance,nova,neutron,horizon这几个服务,然而在这几个服务中唯独缺少存储服务,那么下面我们就学习块 ...
- java程序员如何编写更好的单元测试的7个技巧
详解 cppunit进行单元测试 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函 ...
- 2018-10-29 A股主要指数的市盈率(PE)估值高度
全指材料(SH000987) - 2018-10-29日,当前值:11.9289,平均值:30.66,中位数:26.1407,当前 接近历史新低.全指材料(SH000987)的历史市盈率PE详情 全指 ...