<filter>
<!-- 配置Struts2核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 配置Struts2核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<!-- 配置Struts2框架默认加载的Action包结构,可以没有。 -->
<param-name>actionPackages</param-name>
<param-value>org.apache.struts2.showcase.person</param-value>
</init-param>
<!-- 配置Struts2框架的配置提供者类,struts.xml等 -->
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
</init-param>
</filter>
<!-- 配置Filter拦截的URL -->
<filter-mapping>
<!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<!-- filter-name相当于申明一个变量,后面mapping里会使用此处配置的过滤器名 -->
<filter-name>BFilter</filter-name>
<filter-class>xx.xx.xx.BFilter</filter-class>
<init-param>
<!-- 把/A.do排除在拦截的URL之外 -->
<param-name>excludedPages</param-name>
<param-value>
/A.do,
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>BFilter</filter-name>
<!-- 通过URL中的请求,匹配 /b1下的所有资源,例:http://localhost:8080/we/b1-->
<url-pattern>/b1/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>BFilter</filter-name>
<!-- 通过URL中的请求,匹配 /b2下的所有资源,例:http://localhost:8080/we/b2---->
<url-pattern>/b2/*</url-pattern>
</filter-mapping>
关于http://localhost:8080/wr/login的理解:
http://localhost:8080 我们可以理解为是我们的服务器地址,而该地址之后的部分我们统称为:RequestURI
RequestURI是我们需要重点注意的部分,其又可以分解为几部分
/wr 是我们的ServletConext的上下文地址,我们称为ServletContext Path,可以简单理解为部署项目时的webapps目录下的项目名
/login是我们的Servlet的地址,我们称为Servlet Path,这里就是需要与我们的匹配的内容
注:在/index后边我们还可以跟其他的信息,例如:/login?name=admin&pass=admin 这是其中一种明文表示的方式