1.struts2介绍
- 什么是框架,框架有什么用?
框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率。学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实现 ?
- 什么是struts2框架,它有什么用?
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反转控制)容器等
2.struts2快速入门
1.快速入门步骤
1.导入jar包
下载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解压)示例程序中copy
2.对struts2框架进行配置
-
-
-
- web.xml文件中配置前端控制器(核心控制器)-----就是一个Filter。目的:是为了让struts2框架可以运行。
-
-
<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>
-
-
-
- 创建一个struts.xml配置文件 ,这个是struts2框架配置文件。
-
-
目的:是为了struts2框架流程可以执行。
名称:struts.xml
位置:src下(classes下)
3.创建一个HelloAction类
要求,在HelloAction类中创建一个返回值是String类型的方法,注意,无参数。
public String say(){
return "good";
}
4.在struts.xml文件中配置HelloAction
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>
5.创建index.jsp页面,hello.jsp页面。
6.在index.jsp中添加连接,测试
<a href="${pageContext.request.contextPath}/hello">第一次使用struts2</a>
在地址栏中输入:http://localhost/struts2_day01/index.jsp 访问连接,就可以看到
HelloAction类中的say方法执行了,也跳转到了hello.jsp.
2.快速入门程序流程分析
3.struts2流程分析与工具配置
1.流程分析
请求 ---- StrutsPrepareAndExecuteFilter 核心控制器 ----- Interceptors 拦截器(实现代码功能 ) ----- Action 的execute --- 结果页面 Result
* 拦截器 在 struts-default.xml定义
* 执行拦截器 是 defaultStack 中引用拦截器
---- 通过源代码级别断点调试,证明拦截器是执行
2.关于手动配置struts.xml文件中提示操作
如果安装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版本一致
3.关联struts2源文件
如果是com.opensymphony.xxx 在xwork-core下
如果是org.apache.struts2 在core下
4.使用插件 struts2-config-browser-plugin-2.3.15.1
提供在浏览器中查看 struts2 配置加载情况
将解压struts2/lib/struts2-config-browser-plugin-2.3.7.jar 复制WEB-INF/lib下
访问 http://localhost/struts2_day01/config-browser/index.action 查看 struts2配置加载情况