ssh框架入门&action请求参数

1.框架:是一个半成品,可以在其基础上在次开发。
2.struts2框架:它是一个web层使用的mvc框架。
3.struts2核心 1.struts2核心 2.xwork核心
4.struts2入门:
1.导jar包
struts2/apps/strut_blank.war文件
2.需要配置struts2
1.web.xml
StrutsPrepareAndExecuteFilter
2.struts.xml
位置:src以下(clasess)
3.struts.xml文件中标签
用于管理action
name:包名 唯一
namespace:与action的name属性确定访问action的路径. 默认值""
extends:继承的包名 struts-default
声明一个action
name:action名称 在同一个包下不能重名
class:action类全名 ActionSupport
method:action类中的方法名 方法无参数,返回值为String execute
结果视图
name:与action的method方法的返回值匹配跳转
type:跳转方式
在struts-default.xml文件中定义
chain 请求转发 action
dispatcher 请求转发 页面
redirect 重定向 页面
redirectActiono 重定向 action
stream 下载.
5.struts2框架加载配置文件顺序
1.default.properties
2.struts-default.xml struts-plugin.xml struts.xml
3.struts.properties
4.web.xml
6.定义常量
1.struts.xml
2.struts.properties
3.web.xml
7.struts2中action创建方式
1.pojo类
2.implements Action
3.extends ActionSupport
8.struts2中action方法访问方式
1.method=xxx;
2.通配符
3.动态方法调用
9.关于在struts2中获取Servlet API
1.ActionContext
ActionContext context=ActionContext.getContext();
2.使用注入
3.ServletActionContext
/****************************************
struts2 是一个mvc框架:
核心功能:
1.接受请求
2.相应内容
3.封装请求参数
1.struts2中获取请求参数
在struts2中action是什么?(struts2是一个mvc框架)
V:jsp
M:action
C:action StrutsPrepareAndExecuteFilter
在struts2中获取请求参数:
1.属性驱动
1.直接将action做一个model,就可以得到请求参数.
问题1:action封装请求参数,会不会存在线程安全问题?
不会:因为每一次请求,都是一个新的action。
缺点:需要单独定义javaBean,将action中属性copy到javaBean中。
优点:简单。
这种方式 ,底层是通过反射来实现的。
2.在action中声明一个model。
private User user;提供get/set方法
在页面上使用ognl来描述

优点:简单,解决了第一种封装的问题,可以直接封装属性到多个对象中
缺点:在页面上使用了ognl表达式,页面不通用了。
问题:这种方式,数据是怎样封装的?
是通过struts2中的interceptor进行了数据封装.

2.模型驱动(在开发中应用比较多)
步骤:
1.让action类实现ModelDriven
2.重写getModel方法
3.在action中实现化一个model对象,让getModel方法返回这个对象。
public class Login3Action extends ActionSupport implements ModelDriven
private User user = new User();
public User getModel() {
return user;
}

优点:解决了属性驱动存在的问题
缺点:一次只能封装一个model对象. 但是我们可以用过包装属性的方式一次性封装多个对象
注意:开发中,尽量使用包装数据类型
struts2 有很多围绕模型驱动的特性
* 为模型驱动提供了更多特性
HTTP Status 404 - No result defined for action com.baidu.action.Action3 and result input—》要提供input视图

你可能感兴趣的:(ssh框架入门&action请求参数)