Struts2 概述
1. struts2应用在javaee三层结构中web层框架
2. struts2框架在struts1和webwork基础之上的发展全新的框架
3.struts2 解决的问题:
用户管理的crud操作 ---添加功能--创建添加servlet
--update功能--创建updateservlet
-
-
初步解决 -解决的方法创建:BaseServlet解决
- 写到底层反射代码实现
Struts2可以解决.目前是优的方案
Struts2封装了过滤器 拦截请求 到执行类action中不同的方法
用户管理的crud操作-->过滤器 ---------------> 执行类里面的add方法
不同的操作, 执行类里面的update方法
在类里面写不同的方法
二.Strutr2的入门案例
1. 导入jar包
到apps中,找到示例程序,复制lib下的jar
2. 创建action
之前访问servlet的时候 都会执行servlet的service()方法
--创建一个类继承httpservlet 重写里面的方法
--在web.xml中 配置servlet的访问路径
访问action.每次访问action的时候,默认会执行execute方法
--配置action的访问路径
Public class HelloAction{
Public string execute(){
Return “OK”;
}
}
3. 配置action类的访问路径
3.1创建struts2核心配置文件
核心配置文件的名称和位置是固定的
位置:必须在src下面,名称 struts.xml
3.2引入dtd约束
<struts>
<package name=”hellodemo” extends = “struts-default” namespace = “/”>
Action--name-->访问的名称
<action name=”hello” class=”HelloAction de lujing”>
配置方法返回值到页面
<result name=”ok”>hello.jsp</result>
</action>
<package>
</struts>
访问路径: 都可以
http://127.0.0.1/StrutsTwo/hello
http://127.0.0.1/StrutsTwo01/hello.action
在web.xml中配置struts2过滤器
StrutsPrepareAndExecuteFilter
/*
请求的流程:
请求--->web.xml--中的过滤器 --
过滤器创建:在服务启动的时候创建. 执行init方法
在init方法主要加载配置文件 -包含自己创建的和struts自带的配置文件
Struts.xml peizhi action
Web.xml peizhi guolvqi
-
第一步-
获取请求路径
得到路径中hello值
第二步
到src下找到strus.xml文件,对文件进行使用dom4j解析
得到xml文件中的内容
拿着hello值到 xml文件中找action标签,匹配name属性值是否一样
第三步
匹配name值,相同-----找到name属性所在的action标签中另一个属性class值
得到action的全路径---使用反射实现功能
使用反射是action中的方法来执行
方法的返回值 在action 标签--result---去匹配---在配置的页面中显示结果
反射的代码:
- 得到class Class clazz =Class.forName(“action的全路径”);
- 得到名称是execute的方法 Method m = clazz.getMethod(“execute”);
- 让这个方法执行 Object obj = m.invoke();
第四步
得到action的返回值
在struts.xml文件中,找到action标签里面的result标签,匹配result 标签的name属性值是否一样
如果一样,跳转到配置页面.