[b]struts2的工作原理(面试经常问到的)[/b]
[color=blue]
当客户端发起一个请求到服务器,那么在web.xml中会有一个Filter,在fiflter-mapping这个标签里配置为“/*”的形式,这就会过滤掉所有的请求路径。之后该Filter就会去找到一个叫strtus2的配置文件,并找到想对应的namespace,再找到namespace下相对应的Action去处理客户端的请求,在Action中的某个方法中执行业务逻辑处理,该方法会返回一个字符串类型的值,根据这个字符串的值到struts.xml中找到相对应的result,执行result里的jsp页面,显示用户想要的数据。这就是struts2的执行过程。struts2的核心本质就是将用户的请求和结果分开,增加了程序的灵活性以及可维护性。[/color]
[color=blue]
当客户端发起一个请求到服务器,那么在web.xml中会有一个Filter,在fiflter-mapping这个标签里配置为“/*”的形式,这就会过滤掉所有的请求路径。之后该Filter就会去找到一个叫strtus2的配置文件,并找到想对应的namespace,再找到namespace下相对应的Action去处理客户端的请求,在Action中的某个方法中执行业务逻辑处理,该方法会返回一个字符串类型的值,根据这个字符串的值到struts.xml中找到相对应的result,执行result里的jsp页面,显示用户想要的数据。这就是struts2的执行过程。struts2的核心本质就是将用户的请求和结果分开,增加了程序的灵活性以及可维护性。[/color]
<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>