Struts2框架是一个优秀的mvc框架,它的优点在于能够较好地将视图与后台实现分离开来,适合用于搭建网站,实现B/S模式。未使用struts2框架时,通过在html代码中使用<% %>标签内嵌java代码,实现后台与前端的交互,这样不仅代码臃肿而且不利于维护,struts2框架则解决了这一痛点。
要学会使用Struts2框架,先得理解它的工作原理。这里有几个关键字并将他们存在的位置对应列举出来
用户请求:request------------------------一个jsp页面
核心过滤器--------------------------------web.xml
拦截器--------------------------------------.java文件,实质是一个servlet
映射文件----------------------------------struts.xml,建立起用户请求和返回页面之间的一个映射
过滤器------------------------------------.java文件,实质是一个servet文件
服务器反馈:response------------------一个jsp页面
有了以上的基础,问题就清晰了。首先,我们的用户向服务器发送一个请求,这个请求携带着一个叫做“action”的信息以及其他的验证信息。
这个action有什么用呢?这里暂时先放一放。这个请求首先会通过web.xml文件,这个文件是必须的,但他具体实现了什么功能,可以不用理会,接下来才是关键。发送的请求会先经过拦截器,这个拦截器会检查发送的请求中所携带的验证信息是否符合可以使这个请求继续往下级传送的条件,如果不可以,则返回代表失败的页面,这时这个这个请求所携带的action根本不会起到任何作用。若是可以通过所有的拦截器,那么携带这个action的请求会进入struts.xml页面,实现这一功能的文件是一个叫做拦截器的.java文件。
接着,这个action进入struts.xml文件,并且和一个叫做过滤器的.java文件相映射,通过这个.java文件,返回对应的response页面。
由以上可以看出struts2框架中拦截器和过滤器的区别在于每个请求都会经过拦截器,而只有通过了拦截器的部分请求才会通过过滤器。