struts2入门简介

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的执行路径
    注意
    1. action的配置文件名称是固定的 不然无法访问到 名称是 struts.xml
    2. 路径必须在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

  • 执行的过程

Created with Raphaël 2.2.0 127.0.0.1:8888/struts2_day01/hello.action 过滤器 实现功能 获取请求路径 得到里面hello的值 到src下面找struts.xml 使用dom4j进行解析xml文件,然后拿着 hello的值 到xml文件中找action标签,匹配name属性值是否一样 匹配name属性值一样,都是hello 找到action统计标签下的class属性 根据class路径 根据反射 找到相应的执行action java代码

底层反射查找的原理

Class clazz =  Class.forName("action的全路径");
Method  m = clazz.getMethod("execute");//获取execute方法
//方法的执行
Object obj= m.invoke();  //返回值用对象存储到obj中
// 然后根据返回值到struts.xml中的action中匹配result中的值 进而跳转到指定的界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值