Struts2简单搭建

Struts2简单搭建

struts搭建步骤:

  • 1.创建一个web项目,再lib中导入所需jar包,
  • 2.在web.xml中配置过滤器
  • 3.②定义一个java类 action,用于处理请求,返回值类型String
  • 4.在src下,创建一个名为struts.xml(只能这么写)的文件,导入约束文件,然后写一个package标签,里面定义action标签,action里面定义一个result标签

1.什么是Struts2框架?
Struts2框架是替代了servelt、jsp的一种全新的框架,用于处理用户发送的请求。

2.Struts2的历史?
在Struts2是由webwork和Struts1组合而来,其中技术上采用了webwork公司的技术,也采用了Struts1的开发模式。其实跟Struts1没关系。

3.Struts2的优点?
①自动化封装前台穿过来的参数

②参数的校验

③可以控制页面的跳转(不常用)

④防止表单的数据进行重复提交(不常用)

⑤显示等待页面(不常用)

Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、
支持可变更和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。

struts2是基于MVC设计模式的Java Web框架技术之一,struts2框架按照MVC的设计思想把Java Web应用程序分为控制层,包括核心控制器
FilterDispatcher和业务控制器Action,模型层,包括业务逻辑组件和数据库访问组件,视图层,包括HTML、JSP、struts2标签等。

1、struts2的控制器组件

在基于MVC的应用程序开发中,控制器组件的主要功能是从客户端接收数据、调用模型(JavaBean)进行数据处理以及决定返回给客户某个视图。
struts2的控制器主要有核心控制器FilterDispatcher和业务控制器Action。

1)FilterDispatcher控制器

基于MVC的Java Web框架需要在Web应用程序中加载一个核心控制器,struts2框架需要加载的是FilterDispatcher。FilterDispatcher是一个
过滤器,是struts2的核心控制器,控制着整个Java Web项目中数据的流向和操作。FilterDispatcher需要在web.xml中进行配置。除了用web.
xml配置文件配置核心控制器FilterDispatcher外,struts2控制数据的操作时,还需要用到struts2的另一个配置文件struts.xml。

2)struts.xml配置文件

struts2的核心配置文件是struts.xml。用户请求提交给核心控制器FilterDispatcher后,具体由哪个业务控制器Action来完成,是在struts.
xml配置文件事先配置好的,根据配置文件struts.xml中的数据,核心控制器FilterDispatcher调用某个具体的业务控制器Action来完成数据的
处理,处理完数据后把处理结果通过其他对象返回给核心控制器FilterDispatcher,核心控制器根据struts.xml配置文件中的配置决定下一步操作。

3)Action控制器

Action是struts2的业务控制器,可以不实现任何接口或者不继承任何struts2类。Action类是一个基本的Java类,具有很高的可重用性。Action
中不实现任何业务逻辑,只负责组织调度业务逻辑模型组件。Action类完全是一个简单的Java对象,具有良好的代码重用性。Action类无须与
Servlet API关联,降低了与Servlet的耦合度,所以应用和测试比较简单。Action类的execute()方法仅返回一个字符串作为处理结果,该处理
结果可传到任何视图或者另外一个Action。

2、struts2的模型组件

模型组件是可以实现业务逻辑的模块,在实际的项目开发中,对模型组件的区别和定义是比较模糊的,实际上也超出struts2框架的范围。
struts2框架的业务控制器不会对用户请求进行实质的处理,用户请求最终由模型组件负责处理,业务控制器只提供处理场合,是负责调度
模型组件的调度器。不同的开发者有不同的方式来编写模型组件,struts2框架的目的是使用Action来调用模型组件。

Action控制器保存来自页面的数据,在Action控制器中有一个execute()方法,可以在该方法中调用业务逻辑组件完成对数据的处理,处理的
结果是返回一个字符串,又称为逻辑视图,在struts2.xml配置文件中配置了逻辑视图和实际物理视图的对应关系。业务控制器可以通过创建
模型组件的实例的方法实现对业务逻辑的调用,通常,当业务控制器需要获得业务组件的实例时,不会直接获取业务逻辑组件实例,而是通过
工厂模式来获取业务组件的实例,或者使用其他Ioc容器来管理业务组件的实例。

运行条件:
struts-2.5.20
apache-tomcat-8.5.39
Eclipse Ide

struts搭建步骤:

  • 1.创建一个web项目,再lib中导入所需jar包,
				 asm-5.2.jar
				asm-commons-5.2.jar
				asm-tree-5.2.jar
				commons-fileupload-1.4.jar
				commons-io-2.6.jar
				commons-lang3-3.8.1.jar
				freemarker-2.3.28.jar
				javassist-3.20.0-GA.jar
				log4j-api-2.11.1.jar
				ognl-3.1.21.jar
				struts2-core-2.5.20.jar
  • 2.在web.xml中配置过滤器
 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
	 <filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>
  • 3.②定义一个java类 action,用于处理请求,返回值类型String
 import com.opensymphony.xwork2.ActionSupport;

/*struts搭建:
 * 1.创建一个web项目,再lib中导入所需jar包,
 * 2.在web.xml中配置过滤器
 * 3.②定义一个java类 action,用于处理请求,返回值类型String
4.在src下,创建一个名为struts.xml(只能这么写)的文件,导入约束文件,然后写一个package标签,里面定义action标签,action里面定义一个result标签


*/	
public class StrutsDemo{
	public String hello() {
		System.out.println("hello...");
		return "success";
	}
}
  • 4.在src下,创建一个名为struts.xml(只能这么写)的文件,导入约束文件,然后写一个package标签,里面定义action标签,action里面定义一个result标签
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
<!-- package配置详解:
     package:跟项目中的包没关系,用来管理action的,
     name:给这个package起个名字
     (名字随意起,但是packagepackage之间名字不能重复,
     一般情况下,命名根据当前package的分类来命名的)
     namespace:访问路径地址 前缀 跟name无关 跟其他package的namespace能不能重复 没有要求
     extends:必须继承struts-default 从struts2核心包中 struts2-core-2.3.24.jar 下的 struts-default.xml中继承
     abstract:抽象 声明的一个标志当前这个配置文件不能独立运行 等待被继承
 -->
<!--
    action配置信息详解:
    name:给action起名字 决定了访问路径最后的地址
    class:访问了哪个类 完整路径名
    method:访问类中的哪个方法
-->
<!--
    result配置信息:
    name对应的是action类中的method的返回值 这个名字可以随便写
    但是必须要和action类中method的返回结果一样
    但是一般情况下 使用特定的

type: dispatcher  转发:转发地址栏不会变 发送一次请求 浏览器不知道转发的发生
       redirect   重定向:重定向地址栏会变 发送二次请求 浏览器知道重定向的发生
 标签中的值是跳转页面的地址
-->
<!-- http://localhost:8080/05struts_study/hello/haha
	 http://localhost:8080/项目名/包命名空间/action名-->
<struts>
	<package name="/" namespace="/hello" extends="struts-default">
		<action name="haha" class="one.struts.dajian.StrutsDemo" method="hello">
			<result name="success">/hello.html</result>
		</action>
	</package>
</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值