<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
当我为我的项目选择struts框架时,我的IDE会自动生成上面的代码。我没有看到任何名为action的servlet。请解释这个xml的含义是什么?
编辑:
我读过ActionServlet已经配置了struts-config.xml文件。它是如何配置的?
<struts-config>
<form-beans>
<form-bean name="HelloWorldActionForm"
type="com.vaannila.HelloWorldActionForm"/>
<action-mappings>
<action input="/index.jsp" name="HelloWorldActionForm" path="/HelloWorld" scope="session" type="com.vaannila.HelloWorldAction">
<forward name="success" path="/helloWorld.jsp" />
</action>
</action-mappings>
显示的配置文件说明:
.do
结尾的网址都将由名为action
的servlet处理action
的servlet对应于类org.apache.struts.action.ActionServlet
以下是Struts的工作原理:
Struts有一个FrontController。这意味着所有请求都通过此控制器。这是org.apache.struts.action.ActionServlet。该类使用struts-config将请求传递给其他类。
您已指定每次URL:/ HelloWorld请求ActionServlet将请求传递给类com.vaannila.HelloWorldAction当您的类返回成功时,ActionServlet将显示jsp:helloWorld.jsp
默认情况下,ActionServlet配置为Web应用程序项目目录下的/WEB-INF/struts-config.xml文件。
例如:如果您的项目名称是StrutsPractice,那么您可以在路径/StrutsPractice/src/main/webapp/WEB-INF/struts-config.xml中找到默认配置文件
要显式配置ActionServlet,或者要将其配置为不同路径中的配置文件,则可以在web.xml中对其进行如下配置
<servlet>
<servlet-name>strutspractice</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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>strutspractice</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>