`
jdluojing
  • 浏览: 17993 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

struts2学习笔记(二) 初识Struts2

 
阅读更多

使用Struts2的好处

(1)第一个好处就是我们不必非得编写一个控制器不可,这使得我们可以把注意力集中在编写各种动作类里的业务逻辑方面。

(2)Struts2使用了一个基于XML的配置文件来匹配URI和动作。因为xml是文本文件,因此对应用程序的许多修改都用不着在重新编译有关代码。

(3)对动作类进行实例化和提取用户输入去填充相关动作属性的工作都有Struts2来完成

(4)Struts2可以对用户输入做一些基本的合法性验证,并在遇到不合法输入时自动地把用户重定向到相关的输入表单。Struts2还内建了许多验证程序。

(5)Struts2负责调用动作方法,我们可以通过配置文件轻易的该百年某个动作的方法

(6)Struts2负责检查各个动作的结果和执行该结果。

还有很多好处,用过就知道了。

Struts2中的mvc模型


MVC设计模式有3个关注点:模型、视图、控制器。在Struts2中,他们分别由动作(action)、结果(result)和控制器(FilterDispatcher)来实现。许多mvc框架中控制器的主要作用是来执行业务逻辑,而模型用来封装数据相关的操作。在Struts2中,将业务逻辑和数据处理都放在模型(action)中。

Struts2的工作原理


每一次的动作处理流程中,过滤器调度程序会做一下几件事:

(1)查询配置管理器,以确定应该根据请求URI调用哪个动作。

(2)运行为该动作注册的每一个拦截器,其中一个拦截器将请求中的参数填充到动作的属性上

(3)执行相关的动作方法

(4)执行相关的动作结果

注意:有些拦截器会在动作方法执行完毕之后、在动作结果执行之前再次执行。


从工作原理图中可以看出,在拦截器和结果页面中都可以通过OGNL来操作ValueStack,ValueStack中存放了与动作相关的数据,拦截器将数据方法ValueStack上,那么在结果页面就可以访问这些数据了。动作中的数据正是通过ValueStack来传递到结果页面中的。

其他几个重要的概念,动作、拦截器都需要我们花时间自习研究。特别是拦截器,它在Struts2中起到了十分重要的作用,框架的很多功能都是通过拦截器来实现的,比如将请求中的参数填充到动作类的属性上正是通过params拦截器实现的。

话不多说,开始动手做吧!就从经典的hello word开始:

首先需要将Struts所需要的包引入到工程中来:


接下来需要在部署描述符web.xml中将Struts2的过滤器引入进来,这样Struts2在我们的工程中才能发挥作用。

<?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>
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

接下来我们就可以编写我们的动作(Action)类:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {

	private String userName;

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}
	
	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}

}

还需要在src目录(classpath)下新建一个struts.xml文件,它就是struts2的配置文件,我们需要在这里面配置好我们的Action。

<?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.3.dtd">
<struts>

	<constant name="struts.devMode" value="true" />

	<package name="default" namespace="/" extends="struts-default">

		<action name="hello" class="action.HelloWorld">
			<result name="success">/success.jsp</result>
		</action>

	</package>

</struts>

然后编写input.jsp和success.jsp

input.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>input</title>
  </head>
  
  <body>
    <form action="hello.action">
    	userName : <input type="text" name="userName"/>
    	<input type="submit" value="submit"/>
    </form>
  </body>
</html>

success.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>sucess</title>
  </head>
  
  <body>
    hello ${userName }
  </body>
</html>

测试:


这样,我们将成功的将Sturts2应用到了工程中,至于Action和interceptor以及result等知识以后学习的时候再去研究,这里先把struts2环境搭建起来,算是迈出了学习struts2的第一步。

周围很多同学都要去参加培训公司的培训,我看了一下培训课程,基本就和我们自己学的差不多。讲三大框架(SSH2)的时间加起来两个月左右,其实我觉得两个月时间自己看应该也能学到不少东西了,培训机构收费那么贵(1万3),最怕就是去了发现老师都是打酱油,还不如花点钱把自己身体养好,精神好学习有劲!


分享到:
评论

相关推荐

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    struts2学习笔记

    struts2学习笔记struts2学习笔记struts2学习笔记

    struts2学习笔记黑马程序员

    ### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...

    struts2四天的学习笔记

    13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...

    struts2 学习笔记 实战

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...

    struts2学习笔记(详细文字)

    structs2很详细的学习笔记,structs2的建造,工作原理,例子,逐步讲解,纯文字的

Global site tag (gtag.js) - Google Analytics