HttpServletRequest-顾名思意,就是HTTP请求,它封装了部分HTTP协议,每次请求都会生成一个HttpServletRequest对象,无状态。
PageContext-JSP页面上下文,离开页面,就不存在了。
ServletContext—相当于ASP的Application,是整个web应用的上下文,唯一的。
HttpSession—就是Session,每个客户端一个放在服务器端,经常存放登录信息什么的,有状态。
前面几个都是JSP、Servlet规范中的对象。
ValueStack,ActionContext,ServletActionContext 是Struts2对上述对象的封装,目的是使得用户可以脱离web环境提供的各种API,并且可以方便的进行单元测试。
ONGL从值栈、request、session、servletcontext中都能获得信息,其实它只是一个表达式语言,准确的说,是struts2的tag可以使用OGNL从上述环境变量中获得信息。
Freemarker,你传给它什么对象,它就可以从这个对象中获得信息。比如一个Map、Bean、List等等。Fremarker有其独特的表达式语言。