Struts2笔记一之简单了解Struts2

本文介绍了Struts2框架的基本配置及运行机制,包括所需的jar包、web.xml中的配置方式、struts.xml文件的简单配置以及Struts2的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2笔记一之简单了解Struts2

1、Struts2所需要的jar为:

commons-fileupload-1.2.1.jar、 commons-io-1.3.2.jar、 commons-logging-1.0.4.jar、 freemarker-2.3.13.jar、

ognl-2.6.11.jar、 struts2-core-2.1.6.jar、 xwork-2.1.2.jar、


2、Struts2在web.xml中的加载方式如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
		<init-param>  
			<param-name>config</param-name>  
			<!-- 这里的config/struts.xml就是修改后的路径,默认struts2.X配置文件默认存放路径在
				/WEB-INF/classes目录下,就是struts.xml放在src的目录下。 -->
			<param-value>struts-default.xml,struts-plugin.xml,config/struts.xml</param-value> 
		</init-param> 
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
Struts2是通过filter来加载的。


3、一个简单的struts.xml配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!-- 开启开发模式,该文件一修改就会自动重新部署 -->
    <constant name="struts.devMode" value="true" />
	<!-- 导入另外的struts配置文件 -->
    <include file="example.xml"/>
	<!-- extends="struts-default" 是必须的,这是struts自带的一个package,所有自定义的package都需要继承它 -->
    <package name="packageName" namespace="/example" extends="struts-default">
        <action name="HelloWorld" class="com.edifier.HelloWorldAction" method="execute">
            <result name="success">/hello.jsp</result>
        </action>
    </package>	
</struts>

4、 Struts运行机制:

   1) 访问请求localhost:8081/Struts2_0100_Introduction/HelloWorld;
   2) 它会通过http协议发送给tomcat,之后tomcat会去查看访问的是哪一个application;
   3) 这个请求的application是Struts2_0100_Introduction,tamcat会找到相应的application然后读取这个application的web.xml配置文件;
   4) web.xml里面配置了一个filter,而这个filter过滤方式为/*,过滤所有的url地址,然后上述请求就会被StrutsPrepareAndExecuteFilter过滤器进行过滤;
   5) 过滤开始会读取struts.xml配置文件,struts会先查看请求对应的namespace,这里是"/",查看以后会去struts.xml中查找相对应的namespace"/";
   6) 当查到对应的namespace以后,会再去查找对应的action,这里的action是HelloWorld;
   7) 当找到对应的action后,struts就会去执行这个包中定义的拦截器,因为所有的包都继承了struts-default这个,所以都会经过struts2自带的一系列的拦截器进行拦截,如果有自定           义拦截器,也会执行自定义拦截器;
   8) 在所有拦截器走完一遍以后,struts会找到对应的Action类,执行对应的方法,这里的类是:HelloWorldAction,方法是:execute();
   9) 在方法执行完毕以后,会有一个返回值(一些特殊的情况下没有返回值,如:ajax),这个返回值为String类型,在struts.xml中的action中与之对应的有一个跳转url可能是action,可能        是jsp,这就是这个action执行后下一步操作;
  10) 在跳转之前,struts还会经历一遍之前走的所有的拦截器,不过这一次的顺序与之前的顺序相反;
  11) 最后就是跳到对应的页面中显示数据,或者是跳到下一个action继续执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值