学习Struts2框架上册

1.回顾MVC模式

  1. 根据url绑定对应的Servlet,web.xml
  1. 获取数据,request.getParameter 类型转换
  2. Servlet调用biz层,biz调用dao层获取数据转化为业务数据
  3. 封装数据,request,session,application
  4. 根据业务处理结果,跳转到对应的试图

V:视图层对应视图组件,通常是指 JSP 页面,也适用于 Velocity、FreeMarker等其他视图显示技术。
M:模型层对应业务逻辑组件,它通常用于实现业务逻辑及与底层数据库的交互等。
C:系统核心控制器为 Struts 2 框架提供的 StrutsPrepareAndExecuteFilter,它是一个起过滤作用的类,能根据请求自动调用相应的 Action。而业务逻辑控制器是开发者自定义的一系列Action,在 Action 中负责调用相应的业务逻辑组件,来完成调用处理。


2. 搭建基本环境
  1. 去官网下载src.all文件
  2. 解压出来后去apps里面找到demo, 复制里面的jar包到项目文件中
  3. 添加struts.xml配置文件
  4. 配置web.xml,添加struts的过滤器
  5. 编写Action类,并将其配置到struts.xml中
  6. 启动项目,访问action

配置文件: 主要参考官网, 其次注意事项:

  1. 必须要继承struts-default
  1. 此处完成了url和Java类的映射配置
  2. 此处完成了视图跳转的控制


3. struts2的工作流程

可以在struts2 的手册里面找到:


4. 包的继承

只要根据包的配置文件那里的名字进行extends属性进行配置


5. 线程安全的工作模式
  1. 每次请求都会创建一个新的Action对象,与 Servlet是不同的
    Servlet是单例的,Action 多例

6. 实现Action的三种方式

第一种就是什么都不做
第二种implement Action
第三种 extends ActionSupport


7. 获取值的方式

1.Action 属性的方式
a)普通属性的方式
b)自定义对象属性的方式
Action 实现ModelDriven的方式


8. struts2访问Servlet的API方法

通过ActionContext进行访问

通过特定的xxxAware接口进行访问

还有
ServletContextAware
ServletResponseAware


9. DMI(Dynamic Method Invocation,DMI)
  1. <form action="Action 名字!方法名字">

  2. 设置method的属性

  3. 使用通配符(wildcard)

10. Result配置
<result type=""></result>

type里面的属性,chain, dispacher, redirect, redirectAction的区别

  1. 用是否转发页面和转发Action进行记忆
    chain, dispacher是重定向
    chain 只能跟action
    dispacher只能跟页面
    重定向:
    redirect都能
    redirectAction只能跟Action

实现CRUD和分页 代码如下:


口述总结篇

1.实现的登录操作
	1)新建两个jsp
		a)logni.jsp
		b)ok.jsp
	2)新建Servlet
		a)判断是否登录操作
		b)获取用户名密码,封装成对象
		c)输出到控制台
		d)跳转ok.jsp
2.什么是框架
	1)框架可以提高开发效率
	2)它就类似于我们之前写过的工具类
3.什么是struts2框架
	1)封装了JSP+Servlet的代码
	2)strtus1的名气+webWork的实干=struts2
4.如何学习新的技术
	1)到官方网站下载资源
	2)搭建环境
		a)导入jar包
		b)配置文件
		c)添加struts2的核心控件
		d)写一个HelloAction
		e)在struts.xml中配置action
		f)访问action进行测试

5.struts2
	1)配置文件
		a)名字:struts.xml
		b)位置:src下面
		c)内容
			1)package
				1)name:b包名
				2)namespce:访问路径
				3)extends:默认是继承struts-default这包
				4)action
					a)name:action的访问路径
					b)class:action的全类名
					c)method:类中的方法名称	
					d)result
						1)name:方法的返回值 
						2)节点中间的内容:跳转的指定页面
		
6.Action的实现方式
	1)继承ActionSupport(常用)
	2)实现Action接口
	3)普通Java类
2.在配置文件中没有配置method的属性默认执行execute方法
7.参数传递的三种方式
	1)action中直接写属性名称,一定要提供set/get方法,表单中要写属性名称
	2)actino中写实体类的对象,一定要提供set/get方法,表单中要写对象.属性(常用)
	3)实现ModeDriver接口,实现getModel()方法返回对象,表单中写对象的是属性(常用)
8.action访问ServeltAPI
	1)通过ActionContext访问
		a)返回的都是map
		b)可以方法原生的,但是要调用get(StrutsStatics.HTTP_REQUEST)
	2)通过ServeltActionContext访问(常用)
		a)返回的都是原生的对象
	3)通过实现ServeltXxxxxAware接口
		a)返回的都是原生的对象
		
9.namespace
	1)分包的概念,方便维护
10.动态方法调用
	1)开启动态方法调用
	2)配置文件struts-default.xml
	3)属性文件default.properties
	4)调用规则
		1)user!add(actin名字!方法名称)
		2)官方不推荐使用
11.通配符
	1)user_add_ok
		a)action的名字需要用*来匹配
		b)调用那个方法根据规则来走,从{1}开始的
2.动态方法调用

3.普通调用(常用)
12.默认的Action
	1)用户在请求没有定义的aciton的时候就会调用默认的action

13.resultType
	1)dispatcher
		a)只能转发到页面,不能转发到action
	2)chain
		a)只能转发到action,不能转发到页面
	3)redirect
		a)既可以重定向到页面又可以重定向到action
	4)redirectActin
		a)指定重定向到Action
14. .struts.xml可以动态传递参数
	1)可以方法值栈中的数据
15.全局的result
	1)先到当前的action节点中去找,找不到就到全局里面去找
posted @ 2017-12-15 22:57  老螃蟹  阅读(167)  评论(0编辑  收藏  举报