当前位置:文档之家› Web.xml中配置Struts

Web.xml中配置Struts

Web.xml中配置Struts1:1.配置Struts的ActionServlet<servlet>元素来声明ActionServlet<servlet-name>元素:用来定义Servlet的名称<servlet-class>元素:用来指定Servlet的完整类名Eg:<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>注意:(1)<servlet-mapping>和<servlet>中的<servlet-name>?</servlet-name>的要填写一致,它就是一根线,把<servlet-mapping>和<servlet>联接在一起的。

(2)在Struts框架中只能有一个Servlet,因为Servlet支持多线程。

而<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>中的ActionServlet是在Struts.jar包中的.在导入Struts包时会导入。

(3)在显示层所有以*.do为扩展名提交的URL,都会交由这个Servlet来处理。

*.do可以改写成你想要的任何形式,例如:/do/* ,此时该Servlet会处理所有以"/do"为前缀的URL,如http://localhost:8080/helloapp/do/helloWord,扩展(1)我们可以继承org.apache.struts.action.ActionServlet 得到我们可以扩展的子类,在子类中重写一个方法init()。

这时<servlet-class>?</servlet-class>中的?是我们新建的类的路径,同样只能存在一个。

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

<servlet>的<init-param>子元素用于配置Servlet初始化参数。

config :以相对路径的方式指明Struts应用程序的配置文件位置,如不设置,则默认值为/WEB-INF/struts-config.xmldebug : 设置Servlet的debug级别,控制日志记录的详细程度。

默认为0,记录相对最少的日志信息。

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

默认为0,记录相对最少的日志信息。

<load-on-startup>?</load-on-startup>中?号的值是此ActionServlet在服务器开启时加载的次序,数值越低,越先加载。

eg:<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中的参数时行初始化(2)当多人协作开发项目时可以对Strutst的配置文件进行适当的扩充,但必须为config 开头。

如<init-param><param-name>config/XXXXXXXXX</param-name><param-value>/WEB-INF/XXXXX.xml</param-value></init-param>3.配置错误处理Struts框架中不能处理所有的错误或异常。

当Struts框架发生不能处理所有的错误或异常时,就把错误抛给Web容器。

在默认情况下,Web容器会向用户浏览器直接返回原始的错误,为了避免可以使用<error-page>。

<erro-page><error-code>4040</error-code><location>/commmon/404.jsp</location></error-page><erro-page><error-code>4040</error-code><location>/commmon/404.jsp</location></error-page>Weg容器捕获的Java异常配置<error-page>,这时需要设置<exception-type>子元素,它用于指定Java异常类。

Web容器可能捕获如下的异常:RuntimeException 或ErrorServletException 或它的子类IOException或它的子类Eg:<error-page><exception-type>javax.servlet.ServletException</exception-type><location>/system_error.jsp</location></error-page><error-page><exception-type>java.io.IOException</exception-type><location>/system_ioerror.jsp</location></error-page>4.配置Struts标签库Struts框架提供了一些实用的客户化标签标签库,如果在应用中使用可以在web.xml中配置<taglib><taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri><taglib-location>/WEB-INF/struts-bean.tld</taglib-location></taglib><taglib>元素有两个子元素:<taglib-uri>和<taglib-location>.<taglib-uri>元素指定标签库的相对或绝对URI地址,WEB应用将根据这一URI来访问标签库;<taglib-location>元素指定标签库描述文件在文件资源系统中的物理位置。

此外,也可以以上方式在web.xml文件中配置用户自定义的客户化标签库,eg:<taglib><taglib-uri>/WEB-INF/mytaglib.tld</taglib-uri><taglib-location>/WEB-INF/mytaglib.tld</taglib-location></taglib>Struts2 核心文件Web.xml的配置:所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts 2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载应用的Struts 2框架。

因为Struts 2将核心控制器设计成Filter,而不是一个普通Servlet。

故为了让Web应用加载FilterDispacher,只需要在Struts2 web.xml文件中配置FilterDispatcher即可。

配置的代码片段如下:<filter><!-- filter的名字 --><filter-name>struts2</filter-name><!-- filter的实现类 --><filter-class>org.apache.Struts2.dispatcher.FilterDispatcher</filter-class></filter><!-- 处理所有的web请求 --><filter-mapping><filter-name>Struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>。

相关主题