开源框架之struts2笔记归纳Word文档格式.doc
《开源框架之struts2笔记归纳Word文档格式.doc》由会员分享,可在线阅读,更多相关《开源框架之struts2笔记归纳Word文档格式.doc(17页珍藏版)》请在冰豆网上搜索。
b.使用EL表达式 6
1.Struts2框架Action组件的核心应用 7
1)Action组件基本原理 7
*3)Action属性注入 8
*4)如何利用一个Action处理多个请求 8
1.前期课程回顾 9
1.Result组件原理 9
1)Result组件的作用 9
2)Result组件实现规则 9
*2.常用的几种Result组件 10
2)Action响应 11
1.Struts2标签 12
1)通用标签 12
2)表单标签 12
2.拦截器组件 12
*2)掌握自定义拦截器的使用 13
======================Day01=========================
1)为什么要学习Struts框架
Struts框架是MVC设计模式的实现,基于Struts开发可以简化开发难度,提高开发效率。
MVC是一个非常优秀的设计思想,基于该思想架构程序,可以提高程序的结构灵活性,便于日后维护、扩展和升级。
3)MVC在JavaWeb中的实现
Servlet,JSP,Filter,JDBC
a.原ShoppingCart程序就是一个MVC结构实现
View实现部分:
采用JSP组件实现
Model实现部分:
采用DAO、Entity等组件实现
Controller实现部分:
采用ActionServlet组件实现
b.ShoppingCart程序虽然基于MVC,但结构还有一些问题:
当请求数量比较多时,需要在Servlet中编写大量的if...else分支语句,而且Servlet代码量非常多。
改造方案:
为Servlet提供一个XML配置文件,用于定义请求和Action组件的对应关系。
然后将if...else分支中的代码提取到对应的Action组件中。
*4)Struts2的主要工作流程
a.首先客户端浏览器发送一个请求,请求到达控制器。
b.控制器根据xml配置信息调用相应的Action组件(XML配置了请求和Action对应关系)
c.执行Action组件业务处理,该组件可以调用DAO,Cart,Entity等组件。
d.控制器调用JSP视图组件生成一个响应界面给浏览器
5)Struts的内部原理:
编程原理:
用户发送http请求---》Web服务器(tomcat)--》加载
web.xml(web部署描述文件)文件-执行struts核心控制器(
StrutsPrepareAndExecuteFilter或者filterDispatcher)-->
加载struts.xml文件,通过请求action名字找到匹配的action
-->
在action中调用(execute)(业务层|数据层)
-->
执行result=“"
-->
通过result找到struts.xml与result名字匹配结果--》转发到
页面返回给调用者
程序调用:
struts内部原理图:
(1)用户发送http请求--》启动web服务器---》加载web.xml(web部署描述文件)配置文件---》执行web.xml中相应过滤器
ActionContextCleanUp:
清除页面中的属性
otherfilter(SiteMesh:
装饰过滤器)
SiteMesh作用:
页面布局、装饰
FilterDispatcher:
struts2核心控制器
注意:
(a)使用SiteMesh(装饰过滤器),struts2容器不在管理页面中属性,需要调用ActionContextCleanUp完成销毁
(b)过滤器执行是有顺序
ActionContextCleanUp-->
SiteMesh-->
FilterDispatcher
(2)中央控制器FilterDistpacher询问ActionMapper是否需要请求action
(3)如果需要请求action,FilterDispatcher就会调用它的代理(ActionProxy)加载配置文件
(4)ActionProxy会调用ConfigurationManager读取strus.xml配置文件
注意:
只加载一次
(5)根据请求名字,ActionProxy(action代理)调用所有拦截器(Inertceptor),ActionProxy(action代理)创建ActionInvocation,去执行所对应action类,根据Action类中名字找到匹配result页面
(jsp、freeMarker、Velocity)等技术,在此执行拦截器
注意:
struts2拦截器和servlet过滤器功能相同,并比filter强大
拦截器执行顺序:
先进后出
(6)相应给用户(HttpServletResponse)
3.Struts2框架的历史
Struts2框架和Struts1没有必然联系,它是将原来的WebWork框架核心部分Xwork提取,进行封装后发布为Struts2。
*4.Struts2框架基本使用
*1)Struts2使用步骤
*a.下载发布包,将核心包导入web工程
struts2-core-2.1.8.jar:
Struts2核心包
xwork-core-2.1.6.jar:
Xwork核心包
ognl-2.7.3.jar:
OGNL技术工具包,与EL相似,但比EL强大。
freemarker-2.3.15.jar:
界面模板技术,与JSP相似。
commons-fileupload-1.2.1.jar:
文件上传包。
*b.配置Struts2控制器,在src下添加struts.xml、Struts2控制器采用的是StrutsPrepareAndExecuteFilter组件实现。
在web.xml文件中配置该Filter组件。
c.根据请求编写Action,DAO,Entity等组件
*2)HelloWord示例
welcome.action-->
struts2控制器-->
WelcomeAction-->
welcome.jsp
----------------------Struts2详细工作流程---------------------------
a.浏览器发出welcome.action请求
b.请求到达Struts的Filter控制器(由于web.xml配置)
c.Struts控制器判断请求类型,如果是/welcome.action或/welcome格式请求,将调用struts.xml配置,寻找对应的Action组件
d.调用Action组件的execute方法处理请求,最后返回一个String视图标识
e.Struts控制器根据视图标识寻找相应的JSP(struts.xml中result配置)
f.调用JSP视图生成响应界面给浏览器显示。
======================Day02=========================
1.Struts2使用基本规则
1)web.xml配置
涉及了Struts2的Filter控制器配置
a.<
filter-class>
指定正确包名.类名
b.<
url-pattern>
指定/*,控制器可以识别Action组件请求
2)Action编写规则
a.执行方法的定义publicStringXXX(){}默认方法名是execute
b.属性变量的定义
publicclassUser{
privateStringusername;
//成员变量是username
//属性是user
publicvoidsetUser(Stringuser){
this.username=user;
}
publicStringgetUser(){
returnusername;
}
如果action需要接收请求数据或向JSP传递数据,需要与属性名保持一致。
3)struts.xml中的Action配置
1)元素嵌套顺序<
struts>
<
package>
action>
result>
2)<
元素的extends属性必须继承自struts-default
3)<
元素name请求名不要加.action,class指定的Action类要正确。
4)<
元素的name属性与Action方法返回值保持一致。
2.实现一个列表显示功能
/list.action-->
ProjectListAction-->
projectlist.jsp
1)开发步骤
a.引入struts2和数据库的驱动包
b.添加struts.xml配置文件,web.xml添加了Struts控制器配置
c.添加DBUtil工具类
d.添加Entity类
e.添加DAO编写方法
f.添加Action
g.添加Action配置(struts.xml)
h.添加JSP,显示列表
引入jstl标签库的jar包。
在JSP页面添加标签库引入指令
使用<
c:
forEach>
标签