Struts2总结

总结篇:

 

参考:https://github.com/ZhongFuCheng3y/3y/blob/master/src/struts2.md

https://blog.csdn.net/qq_35064774/article/details/64934709

 

1.拦截器和过滤器

拦截器和过滤器都是拦截资源的

拦截器只拦截Action请求,是struts的概念...

过滤器拦截web的所有资源,是Servlet的概念...

 

拦截器和过滤器有哪些区别?

* 拦截器是基于 java 的反射机制的,而过滤器是基于函数回调
* 拦截器不依赖与 servlet 容器,而过滤器依赖与 servlet 容器
* 拦截器只能对 action 请求起作用,而过滤器则可以对几乎所有的请求起作用
* 拦截器可以访问 action 上下文、值栈里的对象,而过滤器不能
* 在 action 的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一 次

 

 

 

2.OGNL 是 Object Graph Navigation Language (对象图形导航语言)的缩写。 

在 jsp 中使用 OGNL 需要引入 struts tag lib。

<%@ taglib prefix="s" uri="/struts-tags" %>
然后使用 标签 s:property:

<s:property value="'hello world'"/>

 

3.ValueStack 实际是一个接口,在 Struts2 中利用OGNL时,实际上使用的是该接口实现类 OgnlValueStack。

 

4Struts2 框架是一个按照 MVC 设计模式设计的 WEB 层框架。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求, 这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开即解耦。我们可以把 struts2 理解为一个大的 servlet,而这个 servlet 就是 ActionServlet。struts2 在处理客户端请求时,会先读取 web.xml 配置文件,根据请求 分给各个不同的 Action 处理。 JavaActionServlet 会把数据封装成一个 javaBean。

Struts2 框架提供了许多的拦截器,在封装数据的过程中,我们可以对数据进行一些操 作,例如:数据校验等等。当 Action 执行完后要返回一个结果视图,这个结果视图可以跟据 struts2 的配置文件中 配置,选择转发或者重定。

 

5.struts2封装方式:

(1)属性封装 :set()方法 

(2)模型驱动实现 ModeDriven 接口

(3)表达式封装:get()、set()

 

 

6.简单介绍一下 Struts2 的值栈。

值栈是Struts2数据存储的核心。通过缓存或模型驱动在 action 和页面之间传递数据,数据混乱,难以管理,缓存还有时间和数量限制,使用起来困难。值栈的引入解决了这个问题,它可以统一管理页面和action 之间的数据,供 action,result,interceptor 等使用。降低了开发人员的工作量和逻辑复杂性

 

7.Struts2 中的 # 和 % 分别是做什么。

(1)使用#获取 context 里面数据
<s:iterator value = “list” var=”user”>
<s:property value = “#user.username”>
</s:iterator>

(2)向 request 域放值(获取 context 里面数据,写 ognl 时候,首先添加符号#context 的 key 名称.域对象名称)
(3)在页面中使用 ognl 获取<s:property value = “#request.req“>
(4)%在 struts2 标签中表单标签

在 struts2 标签里面使用 ognl 表达式,如果直接在 struts2 表单标签里面使用 ognl 表达式不识别,只有%之后才
会识别。
<s:textfield name=”username” value=”%{#request.req}”>

 

8.

 

posted @ 2019-03-04 09:59  StingLon  阅读(125)  评论(0)    收藏  举报