Struts2 处理结果类型介绍
Struts2的处理结果标签是告诉系统下一步是要做什么。处理结果是通过标签<result></result>来实现的。在讲述struts2的处理结果前,先讲述一下forward和redirect存在着什么区别。
Forward 和 Redirect的区别
简单的说Forward是发生在服务器内部,客户端不知道发生了request的转向。客户A向服务器B请求,服务器B处理完请求并发生forward转向,请求不会经过客户端,而是在内部请求另外一个服务器资源。对于客户A来说,该操作是透明的。
Redirect则是客户端A向B请求后,服务器B处理完请求结果,并把结果返回值客户端A,并要求客户端A向服务器C发出请求。对于客户端A来说,其实是发生了两次请求。一个重要的区别还在于,Redirect会重新发起请求,所以会丢失请求参数,请求属性,Action实例和Action中封装的属性。
Struts2的处理结果
Struts2支持的处理结果类型:
- plaintext 系统不做代码解析,直接把页面代码传至浏览器
- dispatcher 用于JSP页面的整合。
- chain Action链式处理的结果类型
- redirect 直接跳转至另外的URL的结果类型(属性,参数都会丢失)
- redirectAction 直接调至另外的Action的结果类型(属性,参数都会丢失)
- stream 用于向浏览器返回一个InputStream(一般用于文件的下载)