标签:
一。
首先服务器接收到url请求之后,会先到web.xml中运行过滤器,看看符合什么样的请求可以被接受。
<filter> <filter-name>Struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>Struts2</filter-name> <url-pattern>*</url-pattern> </filter-mapping>
像*这种的话说明只要是url输入的请求都可以被接受运行,如果是*.action的话说明只有后缀为action的请求才会被处理。
然后再到struts.xml中去匹配是否有配置此action,如果有的话就去执行。比如说我们的请求路径为localhost:8080/a/b/register.action,那么就会去struts.xml中看有没有此路径下的action,如果没有的话就看localhost:8080/a/register.action里面有没有,知道没有找到为止。这就涉及到命名空间的问题
找到相应的action之后就去处理相应的请求
二。
如果有涉及到表单提交的问题,我们一般是先获得表单提交的页面(不是先过滤请求),这个的话只要部署了项目,我们自然可以访问得到,然后点击“提交”的时候就会去处理form表单的action,看看这个请求是否满足过滤器的要求,然后接着做“一”的步骤
这个时候url会由访问时候的路径变成web.xml中过滤器要求的url,实现了跳转。
标签:
原文地址:http://www.cnblogs.com/2027437606qq/p/5051399.html