不是所有应用都适合ajax处理

这几日在学校生产实训,写基于struts2的web站点。struct2属于拦截型框架,会将http请求拦截下来,进行自己对应的过滤处理(包括上传等一些基本请求),若框架本身不能处理的,则回调所写的action处理,因为请求中涉及http协议相关,若对协议不是很明了,可能会处理起来较为麻烦,struts2封装了这些请求,只需要在action中实现相关业务逻辑,同时action给出set和get接口作为数据的请求处理。让使用者只关心核心业务的开发,屏蔽原有技术跟业务无关的技术问题。

BS基本模型
BS基本模型

java web中Servlet作用是接受浏览器传给服务端的请求,并将服务端处理完的响应返回给用户的浏览器。

java web基本处理模型(红色部分为使用ajax的请求处理流向)
java web基本处理模型

struts2这是一个非常不错的框架,作为前端,自然是希望后端提供接口(即RESTFulAPI这种),我通过ajax访问接口就可以实现请求。

struts2处理模型(红色部分为使用ajax的请求处理流向)
struts2处理模型

但是我在使用过程中发现这种拦截并不适合处理ajax请求,所有的ajax请求都是action处理的,相当于原生java web中servlet处理一样,就失去的框架本身的意义(简化req,res除外)。

总结:不能因为学了前端就妄想所有的接口都是RESTFulAPI,有些时候后端渲染会更好,特别是当有了EL标签和JSTL标签之后,不需要用js访问大量DOM节点,这种时候当个小美工就可以啦~