Struts2 ●一个HTTP请求到达Struts的FilterDispatcher之后, 就会被转换成一个 action command 这个 action command在穿越了一系列 Struts2和 WOrk 的拦截器(1-3)之后,最后执行用户编写的 Action实例 在 Action执行后,响应还会穿越相同的拦截器,按照 与请求相反的顺序即拦截器(3-1) 最后通过 Struts2的 Http Servletresponse转换成Web可 识别的响应,如JSP
Struts2 一个HTTP请求到达Struts2的FilterDispatcher之后, 就会被转换成一个action command. 这个action command在穿越了一系列Struts2和XWork 的拦截器(1~3)之后,最后执行用户编写的Action实例。 在Action执行后,响应还会穿越相同的拦截器,按照 与请求相反的顺序即拦截器(3~1). 最后通过Struts2的HttpServletResponse转换成Web可 识别的响应,如JSP
Struts2 拦截器34 Http请求 XWork2+ 拦 用户的 拦截器2 Actione 截 器 Http响应 Srut与 WOrk2之间的交互图
Struts2与XWork2之间的交互图 Struts2与XWork2之间的交互图
搭建 Struts2开发环境 搭建 Struts环境时,我们一般需要做以下几个步骤的工 作 1.找到开发 Struts应用需要使用到的jar文件 2.编写 Struts的配置文件 3在 web.xn中加入 Struts框架启动配置
搭建Struts2开发环境 搭建Struts2环境时,我们一般需要做以下几个步骤的工 作: 1. 找到开发Struts2应用需要使用到的jar文件. 2. 编写Struts2的配置文件 3. 在web.xml中加入Struts2框架启动配置
Filter Dispatcher核心控制器 控制器负责拦截所有的客户端请求,然后通过读取配置文件来 确定交给哪个 Action继续处理 Filter Dispatcher只需要在 web. xml文件中配置一下。init0方法中 将会读取类路径下默认的配置文件 struts.xm完成初始化操作 <filter> <filter-name>struts2</filter-name> <filter-class>org. apache struts 2. dispatcher FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/</url-patterr /filter-mapping>
FilterDispatcher核心控制器 控制器负责拦截所有的客户端请求,然后 通过读取配置文件来 确定交给哪个Action继续处理。 FilterDispatcher只需要在web.xml文件中配置一下。init()方法中 将会读取类路径下默认的配置文件struts.xml完成初始化操作。 注意:struts2读取到struts.xml的内容后,以javabean形式存放在内 存中,以后struts2对用户的每次请求处理将使用内存中的数据,而 不是每次都读取struts.xml文件 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Struts2控制器 ●拦截器( Interceptor) 拦截器能在 action被调用之前和被调用之后执行 些“代码”。 Struts2框架的大部分核心功能 都是通过拦截器来实现的,如防止重复提交 类型转换、对象封装、校验、文件上传、页面 预装载等等,都是在拦截器的帮助下实现的。 每一个拦截器都是独立装载的( pluggable),我 们可以根据实际的需要为每一个 action配置它所 需要的拦截器
Struts 2控制器 拦截器(Interceptor) 拦截器能在action被调用之前和被调用之后执行 一些“代码” 。Struts2框架的大部分核心功能 都是通过拦截器来实现的,如防止重复提交、 类型转换、对象封装、校验、文件上传、页面 预装载等等,都是在拦截器的帮助下实现的。 每一个拦截器都是独立装载的(pluggable),我 们可以根据实际的需要为每一个action配置它所 需要的拦截器