===========首先是最基础的:环境搭建:
/**
搭建struts步骤:
熟能生巧:
新建web项目,
导jar包【struts包下apps>struts-blank项目(案例项目)下的包是必须的最基本的jar包---没有借鉴项目时,靠这个】,
web.xml配置核心过滤器:StrutsPrepareAndExecuteFilter【### ctrl+shift+T 关键字查找资源:StrutsPrepareAndExecuteFilter】,
src下编写struts.xml框架,
编写页面请求的action【就是个普通Java类(不再需要Servlet)】,
最后根据逻辑,详细配置struts.xml。
------------大体步骤结束。simple。
*/
/**
struts2_01
4天struts2的知识点概述:
1 struts2的入门(环境搭建以及如何让浏览器访问struts2)
2 页面请求数据的封装(属性驱动封装 模型驱动封装)
3 如何封装数据(值栈)和如何在页面展示(OGNL表达式)
4 拦截器
案例驱动:展示所有的客户
技术分析:
hibernate
struts2
struts2的概述:
什么是struts2?
struts2: 就是web层的框架,对web层的功能进行了封装
常见的4个web层框架:(了解===面试)
struts1
webwork
struts2(===结合了Struts1和webwork的优点)
springmvc
struts2框架在web层的执行原理:
见图
struts2框架的入门案例:
1 搭建环境
apps :Struts2提供一些项目。
docs :Struts2提供的开发规范和文档
lib :Struts2提供的开发jar包
src :Struts2提供的源代码
关注点: apps/struts2-blank.war项目
原因: 这个项目是struts2最基本的环境搭建项目
怎么玩:导入struts-2.3.24\apps\struts2-blank\WEB-INF\lib下面的所有jar包
2 测试:
1 有一个首页,首页上有一个超链接
2 创建一个action(javabean)
3 配置action在浏览器的访问路径 固定: 在src下有一个名称叫 struts.xml配置文件
入门案例的执行流程:
简化版本(粗糙版本):
见图
详细版本(4天)
/
1 配置文件的内容:===######【记住】
①加载了struts2的哪些配置文件? 这个这些文件的加载先后顺序?
查看源码可见:【StrutsPrepareAndExecuteFilter源码->init()方法->Dispatcher的init()】
StrutsPrepareAndExecuteFilter的init()方法
【加载顺序:1~5】
①struts提供好的:
1: default.properties 键值对的常量===struts.action.extension=action,,
===struts2.core包下:org.apache.struts2根目录下。
2: struts-default.xml 放了大量的拦截器
===struts2.core包根目录下:
3: struts-plugin.xml
===struts2-spring-plugin包根目录下:这里没用到这个jar包。(未加载到它不会报错)
②自己编写的:
4: struts.xml(最重要)
5: struts.properties(键值对:一般是不用的===别人写了要认识)
struts.action.extension=xxx
去web.xml下【加载StrutsPrepareAndExecuteFilter的初始化参数】(一般不用的)
②配置文件的先后顺序加载有一个特点:
后面加载的配置文件内容如果和前面先加载的配置文件内容相同了;
后面的内容会覆盖前面的内容 (以后面的配置文件命令为主)。
【例如:struts.xml配置资源后缀:struts.action.extension=xxx,
会覆盖系统自带的default.properties文件的配置】
③标签:
constant 覆盖default.properties文件下的常量
name:常量名
value:常量值
package ------【self理解:类级别】
name: 包名 意义不大 【给别人继承用的】
条件:整个struts.xml文件下唯一
extends:继承哪个包 暂时默认值:struts-default (struts提供好了一个包,包名叫struts-default)
namespace: action的浏览器访问路径 和action标签name属性组成了
1 :可以什么都不写获取namespace=""
2 :namespace="/"
3 : 模块名写法: namespace="/模块名" 适用于模块开发
abstract:
如果为true,这个包下不能有action 只给别人继续用
action: ------【self理解:方法级别】
class: action的全限定名
name: 和namespace组成action的浏览器访问路径
条件: 不能以多层的形式出现 例如:name="hello1/hello2"
针对的是大部分struts2的版本
method: 指定action的方法 默认是execute
result标签: 接收返回字符串(逻辑视图名称) ------【self理解:方法返回值级别】
name: 返回的逻辑视图的名称
标签体内的文本:页面的地址
扩展内容: 明天详聊
-------------【self 笔记】
constraint标签:package外部配置全局常量:例如:
【例如:struts.xml配置资源后缀:struts.action.extension=xxx】
include标签###:包含外部外部配置xml(模块开发):例如:customer模块
2 action(javabean)的内容: ------【self理解:###### action:普通Java类。】
①action的3种编写方式
1 普通方式
既没有实现也没有继承
2 实现方式
实现Action接口
Action的接口中提供了【五个逻辑视图的常量】的名称:
特点:都是返回字符串
* * SUCCESS :成功
* * NONE :不跳转
* * LOGIN :用于用户登录失败页面跳转
* * INPUT :表单出错情况下,页面跳转
* * ERROR :错误页面
3 继承的方式(工作中使用)
继承actionsupport类
②action的三种访问方式:
1 普通方式 (method方式)(掌握)
2 通配符方式(掌握)
3 动态方法方式(理解)
条件:需要配置常量开启动态方法
3 总结:
struts2的概述 ---web层框架
struts2在web层执行原理
###所有的web框架都【基于前端控制器】
【实现的方式不同】:
struts2--fiter(StrutsPrepareAndExecuteFilter)
spingmvc--serlvet
搭建环境做了入门案例
1 简化的入门案例执行流程(图)
2 配置文件的编写
1 struts2加载了几个配置文件(6)? 加载顺序的特点(后面的会覆盖前面)
init()
3 action的3种方式编写
4 action的方法3种访问方式
整合:小demo案例。struts2做web层action,hibernate做dao查询数据库。--------导了jar包就行,直接用。simple。
*/