Struts2是一个MVC的Web应用框架,是在Struts1和WebWork发展起来的,以WebWork为核心,采取拦截器机制来处理用户请求。

  原理图:

  

  分析步骤:   

    1.用户发送一个请求

    2.请求的目的肯定是去找Action,只是先经过一个过滤器

    3.通过ActionMapper去查找Action

    4.找到以后把请求委托给ActionProxy去处理

    5.ActionProxy又通过ConfigurationManager去读取Struts.xml的配置文件

    6.取到配置文件后,说明运行环境已经准备就绪,就交给Action的执行者(Action Invocation去执行)

    7.在执行的过程中会在前后都加上一系列的拦截器

    8.Action执行成功,返回一个结果(字符串)

    9.根据这个结果派发页面

  入门程序:

    新建web工程

    导入jar

    配置过滤器(web.xml中配置)

    编写Action

    Struts2的配置

  

    配置过滤器(web.xml中配置)这里你可以配置下面这个也可以配置StrutsPrepareAndExecuteFilter

<!-- 配置过滤器 -->
<filter>
<filter-name>hello</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>hello</filter-name>
<!--
url的配置有两种:
/* :所有的url都要经过这个过滤器
*.action:只有后缀是.action才会经过
-->
<url-pattern>/*</url-pattern>
</filter-mapping>

    编写Action

public class HelloWorldAction {
public String execute() {
return"success";
}
}

    编写struts2的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!--
name:就是名字,随便取的
extends:继承一个父包,可以拥有父包的配置
namespace:影响你的请求路径
-->
<package name="hello" extends="struts-default" namespace="/">
<!--
name:访问路径
class:就是Action的路径(包名+类名)
method:指定访问该类的某个方法:不写的话:默认是execute
-->
<action name="hello" class="com.etc.action.HelloWorldAction" >
<!--
name:就是你action执行结束后的返回的字符串
-->
<result name="success">/index.jsp</result>
</action>
</package>
</struts>

Action中的execute方法是默认的:

  当你在配置文件中不指定方法的时候,会默认调用execute

1.struts2原理和入门程序的更多相关文章

  1. struts2学习笔记(一)—— struts2介绍及入门程序

    一.struts2概述 1.1 什么是struts2? 在介绍Struts2之前,先来认识一下Struts1.Struts1是最早的基于MVC模式的轻量级web框架,他能够合理的划分代码结构,并包含了 ...

  2. mybatis3.2.7 原理和入门程序

    使用jdbc操作数据库有以下缺点   |--数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁开启和关闭,造成数据源资源浪费,影响数据库性能.    设想:使用数据库连接池管理数据库连接.   ...

  3. struts2入门程序

    struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...

  4. Struts2学习笔记一 简介及入门程序

    Struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个Sevlet.是Struts1的下一代产品,是在structs1和WebWork技术的基础上进行合并后的全新框架(WebWor ...

  5. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  6. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  7. SpringMVC学习(一)———— springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  8. springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  9. Maven01——简介、安装配置、入门程序、项目构建和依赖管理

    1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse   maven量级 1.2 Maven好处 同 ...

随机推荐

  1. java 无符号byte转换

    java中的byte类型是有符号的,值得范围是-128-127 做网络通讯时,接收过来的数据往往都是无符号的byte,值得范围是0-255 因此直接转换时,存储到java显示的值就会有问题 int o ...

  2. delphi 调用百度地图api

    一.调用javascript的方法 两种: 第一种:采用自编函数的方法 function ExecuteJavaScript(WebBrowser:TWebBrowser; Code: string) ...

  3. Windows系统

    1. 更改XP登录界面 怎样启用XP的经典登录界面 第一步:用管理员账号登录系统. 第二步:运行gpedit.msc启动组策略编辑器,找到"计算机配置"--"管理模板&q ...

  4. java中static 和 final 的一些使用规则

    一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...

  5. excel导出字符串

     "style", "vnd.ms-excel.numberformat: @;" 

  6. js代码生成form,解决mvc的url参数过长问题

    在MVC项目中,通常下载的文件的简单方式是直接采用 location.href+查询参数方式. var searchParams = { studentName: $("#StudentNa ...

  7. node.js搭建简单的websocket

    1.首先在官网http://www.nodejs.org/下载NODE.JS 2.打开命令行CMD,进入NODEJS\node_modules\的目录,输入npm install socket.io  ...

  8. gulp和grunt的区别

    1. Grunt -> Gulp 早些年提到构建工具,难免会让人联想到历史比较悠久的Make,Ant,以及后来为了更方便的构建结构类似的Java项目而出现的Maven.Node催生了一批自动化工 ...

  9. sql中limit使用方法

    此处以mysql为例,但是我相信物以变通在oracle上也一定适用 下面是几种limit的方法:原则看看下面几个例子应该就懂了 在数据库中很多地方都会用到,比如当你数据库查询记录有几万.几十万时使用l ...

  10. DataTable转List<dynamic>

    DataTable转List<dynamic> 最近做的一个项目,MVC+Ado.net.没有ORM很不习惯.找到一个办法,DataTable转List<dynamic>,这样 ...