Struts2进阶(一)运行原理

Struts2框架

Struts2框架搭建步骤

致力于web服务,不可避免的涉及到编程实现部分功能。考虑使用到SSH框架中的Struts2。本篇文章只为深入理解Struts2的工作流程,只有在深入理解了其工作流程后,才可以在利用框架编写时做到得心应手。以下是自己的理解及相关的学习知识。若文中技术描述有不当之处,敬请IT界的朋友给予宝贵建议,本人感激不已。

先了解一下Struts2框架的搭建步骤:

    1.拷贝Struts2的jar包到项目中;

    2.在web.xml中添加Struts2的过滤器;

    3.配置Struts2的配置文件(在src目录中创建Struts.xml配置文件);

    4.创建action(action就是一个POJO类);

    5.在Struts.xml文件中配置action及返回结果集;

以上是搭建Struts2框架的基本步骤,至此,Struts2框架搭建完成。

以上只是简单的搭建起Strurs2框架,到这里你可能还是只会用,而且用的不是很好,为什么呢?究其原因,从事IT,我们就应该养成刨根问底的学习习惯,凡事多问个问什么。那么,为了熟练运用此框架,我们就应该首先了解Struts2的工作流程,然后再深入了解其底层方法的实现。

Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。
    用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 
    Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。

下面我们先了解一下其工作流程。

首先我们应认识到:Struts2由过滤器(web.xml)启动

正是因为这一特性,

结合到具体的应用场景,请求响应步骤如下:

1:客户端在浏览器中输入一个url地址。
  2:这个url请求通过http协议发送给tomcat。
  3:tomcat根据url找到对应项目里面的web.xml文件。
  4:在web.xml里面会发现有struts2的配置。
  5:然后会找到struts2对应的struts.xml配置文件。
  6:根据url解析struts.xml配置文件,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。
  7:Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
  8:Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
  9:返回HTTP响应到客户端浏览器。

在步骤6中,涉及到的代码如下:

<span style="background-color: rgb(255, 255, 255);"><span style="color:#ff0000;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
 <struts>
<!-- 基于通配符的方式 -->
    <package name="user" namespace="/" extends="json-default">
        <action name="user_*" method="{1}" class="com.msun.action.UserAction">
            <result name="success" type="json">
            </result>
        </action>
    </package>
</struts></span><span style="color:#ff6666;">
</span></span>

参考网址

1.http://blog.csdn.net/g_beginner/article/details/6791106

2.http://yanguz123.iteye.com/blog/1697440

3.http://blog.csdn.net/wuwenxiang91322/article/details/11070513

4.http://www.ylzx8.cn/web/web/993988.html

5.https://www.baidu.com/s?wd=struts2原理&rsv_spt=1&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=10018801_hao&rsv_enter=1

&rsv_sug3=8&rsv_sug1=5&rsv_pq=d990692c0006e058&rsv_t=07157W%2FFYoI9EpU%2FK6JnO6yL1qQyltzq0x5F2NtIWnlIvOjA7

eaF7VmUZf%2FK2SMMW3g0&oq=Struts2&rsv_sug2=1&rsp=1&inputT=7812&rsv_sug4=8644

美文美图



Struts2进阶(一)运行原理及搭建步骤的更多相关文章

  1. Struts1运行原理以及整合步骤

    Struts1  struts1运行步骤 1.项目初始化:项目启动时加载web.xml,struts1的总控制器ActionServlet是一个Servlet,它在web.xml中是配置成自动启动的S ...

  2. Web Service进阶(一)运行原理

    利用清明小假期,温习了一遍Web Service的相关内容,对其工作原理进行了简要总结.以供有需求的朋友和自己日后参考.文章若有不当之处,敬请朋友们提出宝贵建议,以求共勉. Web服务中,我们应该首先 ...

  3. MyBatis进阶(一)运行原理

    初次学习MyBatis,自己花了不少时间,理解一件事物是需要时间的.经过多次反复的理解,你的认知能力就可以得到提升.以下是学习MyBatis的一些理解认识,技术理解上若有不当之处,敬请朋友们提出宝贵意 ...

  4. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  5. Struts2的运行原理和运行与原理

    Struts2 struts2的流程图 运行机制 1.客户端发送请求.通过ActionContextLoader调用FilterDispatcher(struts) 2.FilterDispatche ...

  6. struts1,struts2,hibernate,spring的运行原理结构图

    一.struts1运行原理 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(s ...

  7. Web程序的运行原理及流程(一)

    自己做Web程序的开发也有两年多了 从最开始跟风学框架  到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来  我当时第一次做WEB项目看 ...

  8. ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节

    https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...

  9. SSH三大框架合辑的搭建步骤

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

随机推荐

  1. jquery post跨域请求数据

    原先一直以为要实现跨域请求只能用jsonp,只能支持GET请求,后来了解到使用POST请求也可以实现跨域,但是需要在服务器增加Access-Control-Allow-Origin和Access-Co ...

  2. Linux——makefile编写

    以前对makefile的编写,限于刚开始接触,我都比较局限一些死板的格式,有时候就会显得有些繁琐.在进一步了解一些系统编译和链接的知识后,对makefile编写流程有了一些新的认识,所以来此梳理梳理, ...

  3. ActiveMQ消息传递的两种方式

    1.什么是ActiveMQ? ActiveMQ是apache提供的开源的,实现消息传递的一个中间插件,可以和spring整合,是目前最流行的开源消息总线,ActiveMQ是一个完全支持JMS1.1和J ...

  4. EXISTS的使用详解

    .exists的使用场合: exists 用于只能用于子查询,可以替代in,若匹配到结果,则退出内部 查询,并将条件标志为true,传回全部结果资料,in 不管匹配到匹配不到都 全部匹配完毕,使用ex ...

  5. 01_Struts2概述及环境搭建

    1.Struts2概述: Struts2是一个用来开发MVC应用程序的框架. Struts2提供了web应用程序开发过程中一些常见问题的解决方案; 对用户输入的数据进行合法性验证 统一的布局 可扩展性 ...

  6. Freemarker商品详情页静态化服务调用处理

    --------------------------------------------------------------------------------------------- [版权申明: ...

  7. Gradle 1.12用户指南翻译——第四十七章. Build Init 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  8. 计算机网络之远程终端协议TELNET

    TELNET 是一个简单的远程终端协议.用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址). TELNET 能将用户的击键传到远地主机 ...

  9. 剑指Offer——Java实现栈和队列的互模拟操作

    剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列   题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型.   思路:其实就是把队列正常入 ...

  10. /proc/stat 详解

    在Linux系统中,可以用/proc/stat文件来计算cpu的利用率.这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻. cat /proc/stat cpu 6 ...