Struts2(1)
2015-07-09 18:26
555 查看
一、Struts2
Struts2是MVC框架所处表现层
Struts2接受客户端请求,一方面与数据库打交道,取数据,并响应客户端,在客户端显示数据。它简化了Servlet繁琐的文件配置,不需要繁复写类,还得实现接口。
二、Servlet和Filter相同和不同
Servlet:(控制器)
1、每一个Servlet内存中唯一。
2、load-on-startup就可以使Servlet在启动时就完成初始化
3、用户的每次请求都会经过void service(request,response)
4、配置映射为/*时,所有的请求都会经过该Servlet
Filter:(控制器)
1、每一个Filter内存中唯一。
2、启动时就完成初始化
3、用户的每次请求都会经过void doFIlter(request,response)
4、配置映射为/*时,所有的请求都会经过该过滤器
不同:Filtery有权利决定是否放行 servlet是没有的
三、搭建Struts2的开发环境
1、拷贝jar包 参考发行包中的struts2-blank.war中的jar
2 、配置核心过滤器(控制器)
3、在src目录下创建struts.xml配置文件
五、Struts2的工作流程
①:客户端初始化一个指向Servlet容器的请求
②:请求经过系列过滤器,FilterDispatcher被调用
③:ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
④:ActionProxy通过ConfigurationManager询问框架的配置文件找到需要调用的Action类
⑤:ActionProxy创建一个ActionInvocation实例
⑥:ActionInvocation调用、回调Action的execute方法
⑦:Action执行完毕ActionInvocation,根据struts.xml配置找到对应的返回结果
六、Struts2的配置文件和加载顺序
1、default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2中
2、struts-default.xml 该文件保存在 struts2-core-2.3.7.jar
3、struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar(struts2的插件jar包中)
4、struts.xml 该文件是web应用默认的struts配置文件
5、struts.properties 该文件是Struts的默认配置文件。构建路径的顶端
6、web.xml应用的配置文件
按照从1到6的顺序加载配置文件。后面的内容会覆盖前面的内容。
1和2和3都在框架或插件提供的jar中,不需要我们直接改。后面3个则需要自己创建或者修改。
七、Struts.xml配置文件标签内容
1.package
作用:分模块化开发
属性 name:包的名称。唯一.必须要有的
extends:一般都需要直接或间接继承一个叫做struts-default(struts-default.xml中有定义)的包名。因为,struts框架的一些核心功能配置都在此处。
abstract:如果为true,说明是一个抽象包。说明让别人去继承。没有任何action子元素的包就可以定义为抽象包。
namespace:名称空间。一般以"/"开头,和动作名称一起,构成了用户的访问路径。
2.package中的action属性
作用:配置动作。用户的请求,执行那个类的那个方法
属性: name:动作类的全名 可以不指定 默认是com.opensymphony.xwork2.ActionSupport
method:执行动作类的那个方法 可以不指定 默认是execute
覆盖默认的动作类 可以这样做
3.constant配置
覆盖常量方法:在struts中使用constant标签。
作用:配置常量的值
struts2的常量都在default.properties配置文件中做了定义(struts2-core.jar/ org.apache.struts2包中)常用的常量:
struts.i18n.reload = true 国际化配置文件更改后,自动加载。
struts.configuration.xml.reload = true struts配置文件更改后,自动加载
struts.devMode = false 如果为true,开启开发模式 .实际运行应该为false
struts.i18n.encoding=UTF-8 应用使用的编码。
struts.action.extension=action,, struts2框架真正执行的url地址后缀。多个用逗号分隔
struts.serve.static.browserCache=true 静态资源告知浏览器不要缓存。
4、include标签 可以包含其他配置文件
八、动作类Action
1、编写动作类的方式
方式一:动作类就是一个POJO。可以不用继承或实现任何的类或接口。
方式二:动作类实现com.opensymphony.xwork2.Action接口。
(推荐的)方式三:动作类继承ActionSupport类。
返回的字符串 以及使用场景
SUCCESS:一切正常时使用
NONE:不转向任何视图时使用(文件下载时)
ERROR:出错(异常中)
INPUT:数据回显时。
LOGIN:转向登录页面时。
2.动作方法
编写要求:
必须是public 方法要有返回String值 可以是null null不返回到任何视图
方法没有任何参数
3.动作方法映射设置
4、DMI Dynamic Method Invocation(动态方法调用)(了解)
现在这个设置是没有指定动作和方法的 如果要访问路径则需要 customer!addCustomer 感叹号后就是customer里面的方法
如果提示错误 就是Struts2框架默认是不允许执行动态方法调用的。如果要用,需要配置一个常量:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
九、Action访问Servlet API
Struts2 与servletAPI没有耦合
1、获取Servlet有关的类
方式一 通过ServletActionContext直接获取
方式二、框架注入进来 (麻烦需要实现ServletRequestAware)
十、Struts2中的处理结果视图
Action处理完用户请求后,将返回一个普通字符串,整个普通字符串就是一个逻辑视图名
Struts2 根据逻辑视图名,决定响应哪个结果
result元素
作用:配置一个结果视图
属性:
name:逻辑视图名称。对应的是动作方法的返回值。
可以不写。默认值是success。
type:指定结果类型。默认值是dispatcher,就是转发。
2、常用的结果视图类型
Dispatcher 默认结果类型请求转发到一个视图
Redirect:请求重定向到一个页面
Chain:请求转发到另一个动作
redirectAction:重定向到另外一个动作
stream:下载用的(文件上传和下载时再议)
plainText:以纯文本的形式展现内容
Struts2是MVC框架所处表现层
Struts2接受客户端请求,一方面与数据库打交道,取数据,并响应客户端,在客户端显示数据。它简化了Servlet繁琐的文件配置,不需要繁复写类,还得实现接口。
二、Servlet和Filter相同和不同
Servlet:(控制器)
1、每一个Servlet内存中唯一。
2、load-on-startup就可以使Servlet在启动时就完成初始化
3、用户的每次请求都会经过void service(request,response)
4、配置映射为/*时,所有的请求都会经过该Servlet
Filter:(控制器)
1、每一个Filter内存中唯一。
2、启动时就完成初始化
3、用户的每次请求都会经过void doFIlter(request,response)
4、配置映射为/*时,所有的请求都会经过该过滤器
不同:Filtery有权利决定是否放行 servlet是没有的
三、搭建Struts2的开发环境
1、拷贝jar包 参考发行包中的struts2-blank.war中的jar
2 、配置核心过滤器(控制器)
<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><span> </span>
3、在src目录下创建struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 开启开发模式 --> <constant name="struts.devMode" value="true" /> </struts>四、Struts2执行流程
五、Struts2的工作流程
①:客户端初始化一个指向Servlet容器的请求
②:请求经过系列过滤器,FilterDispatcher被调用
③:ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
④:ActionProxy通过ConfigurationManager询问框架的配置文件找到需要调用的Action类
⑤:ActionProxy创建一个ActionInvocation实例
⑥:ActionInvocation调用、回调Action的execute方法
⑦:Action执行完毕ActionInvocation,根据struts.xml配置找到对应的返回结果
六、Struts2的配置文件和加载顺序
1、default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2中
2、struts-default.xml 该文件保存在 struts2-core-2.3.7.jar
3、struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar(struts2的插件jar包中)
4、struts.xml 该文件是web应用默认的struts配置文件
5、struts.properties 该文件是Struts的默认配置文件。构建路径的顶端
6、web.xml应用的配置文件
按照从1到6的顺序加载配置文件。后面的内容会覆盖前面的内容。
1和2和3都在框架或插件提供的jar中,不需要我们直接改。后面3个则需要自己创建或者修改。
七、Struts.xml配置文件标签内容
1.package
作用:分模块化开发
属性 name:包的名称。唯一.必须要有的
extends:一般都需要直接或间接继承一个叫做struts-default(struts-default.xml中有定义)的包名。因为,struts框架的一些核心功能配置都在此处。
abstract:如果为true,说明是一个抽象包。说明让别人去继承。没有任何action子元素的包就可以定义为抽象包。
namespace:名称空间。一般以"/"开头,和动作名称一起,构成了用户的访问路径。
2.package中的action属性
作用:配置动作。用户的请求,执行那个类的那个方法
属性: name:动作类的全名 可以不指定 默认是com.opensymphony.xwork2.ActionSupport
method:执行动作类的那个方法 可以不指定 默认是execute
覆盖默认的动作类 可以这样做
3.constant配置
覆盖常量方法:在struts中使用constant标签。
作用:配置常量的值
struts2的常量都在default.properties配置文件中做了定义(struts2-core.jar/ org.apache.struts2包中)常用的常量:
struts.i18n.reload = true 国际化配置文件更改后,自动加载。
struts.configuration.xml.reload = true struts配置文件更改后,自动加载
struts.devMode = false 如果为true,开启开发模式 .实际运行应该为false
struts.i18n.encoding=UTF-8 应用使用的编码。
struts.action.extension=action,, struts2框架真正执行的url地址后缀。多个用逗号分隔
struts.serve.static.browserCache=true 静态资源告知浏览器不要缓存。
4、include标签 可以包含其他配置文件
八、动作类Action
1、编写动作类的方式
方式一:动作类就是一个POJO。可以不用继承或实现任何的类或接口。
方式二:动作类实现com.opensymphony.xwork2.Action接口。
(推荐的)方式三:动作类继承ActionSupport类。
返回的字符串 以及使用场景
SUCCESS:一切正常时使用
NONE:不转向任何视图时使用(文件下载时)
ERROR:出错(异常中)
INPUT:数据回显时。
LOGIN:转向登录页面时。
2.动作方法
编写要求:
必须是public 方法要有返回String值 可以是null null不返回到任何视图
方法没有任何参数
3.动作方法映射设置
4、DMI Dynamic Method Invocation(动态方法调用)(了解)
现在这个设置是没有指定动作和方法的 如果要访问路径则需要 customer!addCustomer 感叹号后就是customer里面的方法
如果提示错误 就是Struts2框架默认是不允许执行动态方法调用的。如果要用,需要配置一个常量:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
九、Action访问Servlet API
Struts2 与servletAPI没有耦合
1、获取Servlet有关的类
方式一 通过ServletActionContext直接获取
方式二、框架注入进来 (麻烦需要实现ServletRequestAware)
十、Struts2中的处理结果视图
Action处理完用户请求后,将返回一个普通字符串,整个普通字符串就是一个逻辑视图名
Struts2 根据逻辑视图名,决定响应哪个结果
result元素
作用:配置一个结果视图
属性:
name:逻辑视图名称。对应的是动作方法的返回值。
可以不写。默认值是success。
type:指定结果类型。默认值是dispatcher,就是转发。
2、常用的结果视图类型
Dispatcher 默认结果类型请求转发到一个视图
Redirect:请求重定向到一个页面
Chain:请求转发到另一个动作
redirectAction:重定向到另外一个动作
stream:下载用的(文件上传和下载时再议)
plainText:以纯文本的形式展现内容
相关文章推荐
- Java中的String的replace方法和replaceAll方法
- SpringAOP 基础详解
- Java创建线程的两个方法
- springmvc 页面乱码
- Java - Thinking in Java 第3章 操作符
- java 实现局域网多播
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0
- Spark问题
- 关于 AnnotationConfigBeanDefinitionParser are only available on JDK 1.5 and higher
- spring中classpath和classpath*的配置区别
- Spring的Maven项目错误
- 《编程导论(Java)》格言录
- 优化JavaScripe 提升首页加载速度的几种方案解析
- Java基础之Format
- eclipse中hibernate配置*.hbm.xml文件和hibernate.cfg.xml文件使其能自动提示
- java语法基础(总结)
- Java7并发编程实战(一) 线程的等待
- java基础-java语言中的关键字总结
- spring四种依赖注入方式
- Myeclipse实用快捷键总结