发表于: 2016-12-12 21:56:25

1 2250


day01

框架

 

什么是框架(半成品软件)

软件中相同的部分抽取出来形成了框架!

在框架的基础上进行开发,快!!!

Struts2框架

Ø StrutsMVC框架!涉及JSPStruts2标签)、Action(用来替代Servlet),其中ServiceDAOStruts没有涉及!!!

Ø Struts2 = WebWork + Struts+ 杂七杂八,Struts2Struts1是完全的两个不同的框架!

Ø WebWork的核心是Xwork!!!

Struts2核心

Ø 类型转换;

Ø 输入校验;

Ø 上传下载;

Ø 拦截器;

Ø 国际化;

 

Struts2控制流程分析

Ø 需要在web.xml中配置“前端控制器:StrutsPreparedAndExecuteFilter

Ø 编写自己的Action

Ø src下配置struts.xml,它是用来配置Action的。这样前端控制器就可以通过本配置文件找到对应的Action了。

 

概述

 

Struts2安装包结构

Ø apps:小demo

Ø docs:帮助文档

Ø libjar

Ø src:源代码

Struts2环境搭建

Ø 创建一个Web项目;

Ø 导包:找到Struts2安装目录,找到apps下的名为blankwar包,把它其中的lib中的11jar包导入到我们的项目中;

Ø web.xml中配置前端控制器;

Ø  src下创建struts.xml文件

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>  namenamespaceextends

² <action> nameclass

Ø http://localhost:8080/day01_1/hello1.action

 

 

 

入门

 

URL

Action

struts.xml

 

Struts2流程图

 

拦截器

 

 

Struts2配置文件

 

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:可以配置常量!(不用自行创建,它是很项目都有的!)给前端控制器配置初始化参数,就是常量了!

<package>1到多个,

Ø name:表示唯一标识,名字随便,只要名称与其他package不同的即可!

Ø namespace:名称空间,它与<action>name共同来决定访问路径;访问路径=namespace + <action>name + .action

Ø extends:指定父名的名称,这里我们一直都继承struts-default包!这个包在strtus-default.xml文件中定义的!

<action>:它是<package>的子元素,可以包含0~N 

Ø name:它与<package> namespace共同决定访问路径

Ø class:指定当前与路径绑定的Action类!当用户访问这个路径时,执行的就是class指定的Actionexecute()方法。

<default-action-ref>:指定默认Action。当用户访问的路径没有对应的Action时,让默认Action来执行;

Ø name:指定默认Action的名称

<result>:它可以是<action>的子元素,称之为局部结果。也可以是<global-results>中配置<result>,称之全局结果!局部结果只能被当前的action使用,而全局结果可以被当前package下所有action使用。

Ø name:结果名称,在Actionexecute()方法中返回结果名称!

Ø 结果值:它是<result>元素的内容。它通常表示一个页面的路径!

Ø type:结果类型,它表示当前结果是重定向到jsp还是转发到jsp,或者是重定向到action或转发到action

² dispatcher:默认类型,表示转发到jsp

² chain:表示转发到action

² redirect:表示重定向到jsp

² redirectAction:表示重定向到action

² stream:下载时使用的结果类型!

<default-class-ref>:用来指定<action>元素的class属性的默认值!

<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:指定为开发者模式,一个常量就可以顶替上面两个常量!而且还有其他的效果!!!我不喜欢它的其他效果,所以我不会使用它,而是自己使用上面两个常量!

<include>:如果是多人共同开发一个项目,那么每个人都要自己写一个配置文件!我们可以使用<include>来导入其他的配置文件

 

Action实现方式

 

无耦合

实现Action接口

继承ActionSupport

 

Action处理请求

 

多个请求处理方法

通配符简化<action>配置

动态调用

 

ActionServlet API

 

ActionContext解耦方式;

感知接口;

ServletActionContext

 

结果视图

 

全局结果和局部结果

结果类型

 

 

 

 

 



返回列表 返回列表
评论

    分享到