框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提升开发效率。学习框架 ,清楚的知道框架能作什么? 还有哪些工做须要本身编码实现 ?前端
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
其全新的Struts 2的体系结构与Struts 1的体系结构差异巨大。Struts 2以WebWork为核心
struts2=struts1+webwork;
struts2框架是apache产品。
struts2是一个标准的mvc框架。 javaweb中的model2模式就是一个mvc模式。 model2=servlet+jsp+javaBean
struts2框架是在javaweb开发中使用的。
使用struts2框架,能够简化咱们的web开发,而且下降程序的耦合度。
XWork---它是webwork核心
Xwork提供了不少核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,
强大的表达式语言(OGNL – the Object Graph Navigation Language),
IoC(Inversion of Control反转控制)容器等java
下载struts2的jar包 struts-2.3.15.1-all 版本.
struts2的目录结构:
apps: 例子程序
docs:文档
lib:struts2框架所应用的jar以及插件包
src:源代码
core 它是struts2的源代码
xwork-core struts2底层使用了xwork,xwork的源代码
注意:在struts2开发,通常状况下最少导入的jar包,去apps下的struts2-blank(将struts2-blank.war改成struts2-blank.rar解压)示例程序中copyweb
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
目的:是为了struts2框架流程能够执行。
名称:struts.xml
位置:src下(classes下)apache
要求,在HelloAction类中建立一个返回值是String类型的方法,注意,无参数。
public String say(){
return "good";
}浏览器
1 <package name="default" namespace="/" extends="struts-default"> 2 <action name="hello" class="cn.itcast.action.HelloAction" 3 method="say"> 4 <result name="good">/hello.jsp</result> 5 </action> 6 </package>
<a href="${pageContext.request.contextPath}/hello">第一次使用struts2</a>
在地址栏中输入:http://localhost/struts2_day01/index.jsp 访问链接,就能够看到
HelloAction类中的say方法执行了,也跳转到了hello.jsp.缓存
请求 ---- StrutsPrepareAndExecuteFilter 核心控制器 ----- Interceptors 拦截器(实现代码功能 ) ----- Action 的execute --- 结果页面 Result
* 拦截器 在 struts-default.xml定义
* 执行拦截器 是 defaultStack 中引用拦截器 mvc
---- 经过源代码级别断点调试,证实拦截器是执行 app
若是安装Aptana编辑器 ,请不要用Aptana自带xml编辑器 编写struts2配置文件
struts.xml提示来自于 DTD约束,
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
若是能够上网,自动缓存dtd,提供提示功能
若是不能上网,也能够配置本地DTD提示 框架
*** 导入DTD时,应该和配置DTD版本一致 jsp
若是是com.opensymphony.xxx 在xwork-core下
若是是org.apache.struts2 在core下
提供在浏览器中查看 struts2 配置加载状况
将解压struts2/lib/struts2-config-browser-plugin-2.3.7.jar 复制WEB-INF/lib下
访问 http://localhost/struts2_day01/config-browser/index.action 查看 struts2配置加载状况