- 浏览: 308849 次
最新评论
-
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
hunanjun000:
《研磨struts2》第四章 Action 之 4.5 Action的其它重要知识
文章列表
4.4 Action的配置
4.4.1 <package>的配置
通过上面的示例可以看出,Action需要在struts.xml中配置才可以使用,而且Action应该配置成为<package>元素的子元素,那么<package>元素的功能是什么呢?
<package>元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如前面示例中配置的“<package na ...
4.3 Action的数据
4.3.1 数据来源
在helloworld示例里面,在运行Action的execute方法的时候,你会神奇般的发现,Action的属性是有值的,而这正是Action进行请求处理所需要的数据。那么,这些数据从何而来呢?
很明显,这些数据就是你在登录页面填写的数据,换句话说,这些数据来源于用户请求对象,也就是request对象。
可是,Struts2怎么知道,页面上的值如何和Action的属性进行对应呢?
这就涉及到如何把页面的数据和Action进行对应的问题了,接下来就来讨论页面的数据和Action的三 ...
4.2 Action的实现
4.2.1 POJO的实现
在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以,但是要有一个公共的为空参的构造方法,其实缺省的构造方法就可以,还要有一个execute方法,定义格式如下:
java代码:
4.1 Action基础
4.1.1 Action是什么
在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。
也就是说,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此说一个Action类代表了用户的一次请求或调用。
换句简单的话来说,Action就是用来处理一次用户请求的对象。
4.1.2 Action能干什么
认识了Action是什么过后,来看看Action能干什么。
1:先看看前面HelloWorld中实现的 ...
3.2 Struts2的运行流程
3.2.1 运行流程
先回忆一下在HelloWorld中,我们做了什么:
在web.xml中配置了Struts2的过滤器
写了一个Action类,名称为HelloWorldAction
在struts.xml中配置了这个Action类
写了两个页面,一个是登录页面,一个是欢迎页面
只做了这么点事情,就可以在Struts2的帮助下顺利完成功能调用,那么Struts2内部是怎么运行的呢?逐步来根据架构图进行分析。
1:首先是在登录页面,用户填入帐号和密码,然后点击提交按钮,好了,就从这里开始分析背后的处理流程,这是我们进行分析的起点 ...
3.1 Struts2的系统架构
3.1.1 Struts2的系统架构
在上一章通过HelloWorld示范了Struts2的基本开发过程,这还远远不够,因为我们都知道,在使用一个框架的时候,除了要掌握如何使用框架进行开发外,最好还要知道框架做了些什么,以及基本的运行流程,这对以后的学习是很有帮助的。
那么接下来就来看看Struts2的系统架构和内部运行流程。
Struts2的官方文档里附带了Struts2的架构图,在这张图上展示了Struts2的内部模块,以及它们的运行流程。
图3.1 Struts2架构图
这张图上分了好多块,彼此之间相互联系, ...
2.5 开发中的一些小窍门
2.5.1 概述
通过以上内容的学习,应该基本了解了Struts2的开发流程,但是,有一些细节功能你并没有看到。比如,在struts.xml中,需要注册Action类的全类名,这个全类名是哪里来的?是完全手写的 ...
2.4 Struts2的HelloWorld
2.4.1 概述
在上一个小节中,使用Model2来实现了一个简单的登陆功能,在本节里面,使用Struts2来实现同样的功能。Model2和Struts2都实现了MVC,因此Struts2的实现和上面Model2的实现是类似的。
...
2.3.Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始
2.3.1 起点概述
考虑到大部分朋友都是有一定经验的web开发者,因此从Servlet+JSP+JavaBean实现MVC开始,再过渡到Struts2的开发,这样能让大家把以前的知识自然迁移到Struts2上,使得学习曲线变得平滑。
说明一下,由于本机的8080端口被别的软件占用了,所以把tomcat改到了9080端口,以后在程序里出现的时候,也将是9080。
注意:如果要修改Tomcat的端口,需要修改Tomcat中的server.xml配置文件,并且 ...
2.1 概述
2.1.1 功能概述
通过上一章的讲述,明白了Struts2是什么,有什么以及能干什么,接下来就该来讨论怎么做的问题了,也就是讨论如何使用Struts2来开发基于MVC的web应用。
按照惯例,学习一个新的东西,都是从HelloWorld起步的,这里也不例外,本章就一起来看一个Struts2的HelloWorld实现。
本章会从搭建Struts2的开发环境开始,用Struts2来开发一个简单的HelloWorld,以便大家熟悉一下Struts2的基本开发方式以及各部分的写法。
在HelloWorld中,不去实现复杂的业务逻辑,只做一个简单的登录功能。 ...
1.3.1 Struts2和MVC
前面讲到Struts2是一种基于MVC的Web应用框架,下面就来看看Struts2和MVC的关系。
当然,由于我们还没有深入学习Struts2的各部分功能,这里只是先给大家讲一下Struts2是如何跟MVC对应的,其中一些名词所代表的具体功能,比如前端控制器(FilterDispatcher)、动作(Action)、结果(Result)等,在以后都会有专门的章节去讲解,现在不必在意他们的细节。
图1.5 Struts2中的MVC关系
控制器——FilterDispatcher
用户请求首先到达前端控制器Fil ...
1.2 Struts2 基础
1.2.1 Struts1时代
随着时间的推移,Servlet+JSP+JavaBean模型暴露出了它的缺点:
流程凌乱:Servlet在完成对用户请求的处理后,下一个页面是谁?如何跳转过去?这些都是在Servlet里面直接写代码来完成的。导致Servlet既要处理请求,还要负责页面的流程,使得Servlet功能不够单一,更要命的是很难整体把握整个系统的页面流程,因为流程被分散到各个Servlet里面了。
数据传递无序:在Model2模型里面,通常情况下,数据都是使用JavaBean传来传去的,使用上比较麻烦,而且在面临复杂数据嵌套的时候使 ...
1.1 MVC模式
1.1.1 MVC模式简介
MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。
在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。
MVC模式的这三个部分的职责非常明 ...