发表于: 2016-12-12 21:56:25
1 2256
day01
框架
l 什么是框架(半成品软件)
软件中相同的部分抽取出来形成了框架!
在框架的基础上进行开发,快!!!
l Struts2框架
Ø Struts是MVC框架!涉及JSP(Struts2标签)、Action(用来替代Servlet),其中Service和DAO,Struts没有涉及!!!
Ø Struts2 = WebWork + Struts名 + 杂七杂八,Struts2和Struts1是完全的两个不同的框架!
Ø WebWork的核心是Xwork!!!
l Struts2核心
Ø 类型转换;
Ø 输入校验;
Ø 上传下载;
Ø 拦截器;
Ø 国际化;
l Struts2控制流程分析
Ø 需要在web.xml中配置“前端控制器:StrutsPreparedAndExecuteFilter”
Ø 编写自己的Action
Ø 在src下配置struts.xml,它是用来配置Action的。这样前端控制器就可以通过本配置文件找到对应的Action了。
概述
l Struts2安装包结构
Ø apps:小demo
Ø docs:帮助文档
Ø lib:jar包
Ø src:源代码
l Struts2环境搭建
Ø 创建一个Web项目;
Ø 导包:找到Struts2安装目录,找到apps下的名为blank的war包,把它其中的lib中的11个jar包导入到我们的项目中;
Ø 在web.xml中配置前端控制器;
Ø 在src下创建struts.xml文件
l HelloWorld程序
Ø 创建一个Action,就是一个普通的java类。
Ø 必须要有如下方法:public String execute()。
Ø 配置struts.xml,为了让前端控制器找到我们自定义的Action
² 给出dtd:
² 为了提示(让struts-2.3.7\src\core\src\main\resources\struts2.3.dtd本地文件与doctype中给出的url绑定在一起!)
Ø struts.xml中配置如下:
² <struts> 为根元素
² <package> : name、namespace、extends
² <action> :name和class
Ø http://localhost:8080/day01_1/hello1.action
入门
l URL
l Action类
l struts.xml
Struts2流程图
l 拦截器
Struts2配置文件
l 6大配置文件
Ø default.propertiesà常量的默认值。(看)
Ø struts-default.xmlàbean、拦截器和拦截器栈、结果类型等。(看)
² 定义了一个包:struts-default,我们自定义的package需要继承它!
² 定义了N多个结果类型
² 定义了N多个拦截器和拦截器栈,其中有一个名为defaultStack的拦截器栈,会在每个Action之前执行!
Ø struts-plugin.xml:每个Struts插件都要有自己的配置文件,如果你没有自定义插件,那么不用理它!(看)
Ø struts.xml:最重要的配置文件!(自 行创建)
Ø struts.properties:常量!(自行创建)在这里给出的常量会覆盖default.properties中的
Ø web.xml:可以配置常量!(不用自行创建,它是很项目都有的!)给前端控制器配置初始化参数,就是常量了!
l <package>:1到多个,
Ø name:表示唯一标识,名字随便,只要名称与其他package不同的即可!
Ø namespace:名称空间,它与<action>的name共同来决定访问路径;访问路径=namespace + <action>的name + .action
Ø extends:指定父名的名称,这里我们一直都继承struts-default包!这个包在strtus-default.xml文件中定义的!
l <action>:它是<package>的子元素,可以包含0~N 个
Ø name:它与<package> 的namespace共同决定访问路径
Ø class:指定当前与路径绑定的Action类!当用户访问这个路径时,执行的就是class指定的Action的execute()方法。
l <default-action-ref>:指定默认Action。当用户访问的路径没有对应的Action时,让默认Action来执行;
Ø name:指定默认Action的名称
l <result>:它可以是<action>的子元素,称之为局部结果。也可以是<global-results>中配置<result>,称之全局结果!局部结果只能被当前的action使用,而全局结果可以被当前package下所有action使用。
Ø name:结果名称,在Action的execute()方法中返回结果名称!
Ø 结果值:它是<result>元素的内容。它通常表示一个页面的路径!
Ø type:结果类型,它表示当前结果是重定向到jsp还是转发到jsp,或者是重定向到action或转发到action。
² dispatcher:默认类型,表示转发到jsp
² chain:表示转发到action
² redirect:表示重定向到jsp
² redirectAction:表示重定向到action
² stream:下载时使用的结果类型!
l <default-class-ref>:用来指定<action>元素的class属性的默认值!
l <constant>:定义常量,它可以用来覆盖default.properties中的常量。
Ø struts.i18n.encoding=UTF-8:指定post的请求编码!等同于request.setCharacterEncoding(“utf-8”);
Ø struts.action.extension=action:指定action的访问后缀
Ø struts.serve.static.browserCache=false:浏览器是否缓存
Ø struts.configuration.xml.reload=true:当修改struts.xml后,不需要重启tomcat
Ø struts.devMode=true:指定为开发者模式,一个常量就可以顶替上面两个常量!而且还有其他的效果!!!我不喜欢它的其他效果,所以我不会使用它,而是自己使用上面两个常量!
l <include>:如果是多人共同开发一个项目,那么每个人都要自己写一个配置文件!我们可以使用<include>来导入其他的配置文件
Action实现方式
l 无耦合
l 实现Action接口
l 继承ActionSupport
Action处理请求
l 多个请求处理方法
l 通配符简化<action>配置
l 动态调用
Action与Servlet API
l ActionContext解耦方式;
l 感知接口;
l ServletActionContext
结果视图
l 全局结果和局部结果
l 结果类型
评论