struts2 是应用于javaee三层结构(MVC)中充当控制器的功能 主要就是解决大量的servlet的频繁创建问题
1.首先下载struts的最新压缩包,下载到本地进行解压
- 压缩包的文件夹介绍
简单的demo了解struts2的执行过程
.struts框架入门案例
步骤
- 首先创建web项目
- 导入jar包
一般在项目文件夹(apps)下进行将里面的lib下的jar包进行导入(注意添加路径 add build path)
- 写java代码
package com.sofency.action;
public class HelloAction {
public String execute() {
return "ok";
}
}
- 配置action的执行路径
注意- action的配置文件名称是固定的 不然无法访问到 名称是 struts.xml
- 路径必须在src下
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--注意引入约束 路径是在apps下面的示例项目中找到-->
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="hellodemo" extends="struts-default" namespace="/">
<!--action 就是执行的路径配置 class 就是要执行的行为的路径 它会默认执行里面的execute()方法-->
<action name="hello" class="com.sofency.action.HelloAction">
<!--根据上面方法的返回结果跳转到指定的界面-->
<result name="ok">/hello.jsp</result>
</action>
</package>
</struts>
- 配置过滤器
同样在示例apps下的醒目中找到web.xml 将fliter复制粘贴到自己项目下
<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>
过滤器是如何工作的
过滤器在服务器启动的时候创建,创建过滤器时候执行init方法
(1).在init 方法中主要加载配置文件
- 包含自己创建的struts.xml 和struts2自带的配置文件
-
访问路径
127.0.0.1:port/项目名称/action行为(name属性).action //name属性值就是上面的struts.xml 中配置的action的属性
eg:
127.0.0.1:8888/struts2_day01/hello.action
-
执行的过程
底层反射查找的原理
Class clazz = Class.forName("action的全路径");
Method m = clazz.getMethod("execute");//获取execute方法
//方法的执行
Object obj= m.invoke(); //返回值用对象存储到obj中
// 然后根据返回值到struts.xml中的action中匹配result中的值 进而跳转到指定的界面