struts2优点

  • 与Servlet API 耦合性低。无侵入式设计
  • 提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能
  • 支持多种表现层技术,如:JSP、freeMarker、velocity等
  • 输入校验可以对指定方法进行校验,解决了struts1长久之痛
  • 提供了全局范围、包范围和Action范围的国际化资源文件管理实现

搭建struts2开发环境

1. 导包

  • struts2-core-2.x.x.jar:核心类库
  • xwork-2.x.x.jar:XWork类库,struts2在其上构建
  • ognl-2.6.x.jar:对象图导航语言,struts2通过其读写对象属性
  • freemarker-2.3.x.jar:struts2的UI标签的模板使用FreeMarker编写
  • commons-logging-1.1.x.jar:ASF出品的日志包,struts2使用这个日志包来支持log4j和jdk1.4+的日志目录
  • commons-fileupload-1.2.1.jar:文件上传组件,2.1.6后必须加入此文件

2. 配置web.xml文件

<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>
  • struts2框架通过Filter启动
  • StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作
  • struts2读取到struts.xml的内容后,以JavaBean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件

3. 编写Action类,这是我们的逻辑控制器

package com.liuyong666.action;

public class HelloWorldAction {
private String msg; public String getMessage() {
return msg;
} public String execute(){
msg = "我的第一个struts2应用";
return "success";
}
}

4. 配置src/struts.xml,核心配置文件中配置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.0.dtd"> <struts>
<package name="liuyong666" namespace="/test" extends="struts-default">
<action name="helloworld" class="com.liuyong666.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
</struts>
  • 在struts2中使用包管理Action
  • 配置包时必须指定name属性,可以任意名,但必须唯一
  • namespace定义该包的命名空间,为访问该包下Action的路径的一部分,如上边例子的访问路径为:/test/helloworld.action。也可以不配置
  • 继承struts-default包,该包拥有struts2提供的核心功能,拥有各种拦截器。
  • 包可通过abstract="true"定义为抽象包,抽象包中不能包含action

01. struts2介绍的更多相关文章

  1. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  2. 开源Math.NET基础数学类库使用(01)综合介绍

    原文:[原创]开源Math.NET基础数学类库使用(01)综合介绍 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET(一)综合介绍    2. ...

  3. Nmap原理-01选项介绍

    Nmap原理-01选项介绍 1.Nmap原理图 Nmap包含四项基本功能:主机发现/端口扫描/版本探测/操作系统探测.这四项功能之间存在大致的依赖关系,比如图片中的先后关系,除此之外,Nmap还提供规 ...

  4. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  5. 01.课程介绍 & 02.最小可行化产品MVP

    01.课程介绍 02.最小可行化产品MVP 产品开发过程 最小化和可用之间找到一个平衡点

  6. struts2介绍

    struts2简介 Struts2框架发展 Struts于2000年5月由Craig McClanahan发起,并于 2001年7月发布了1.0版本,Struts一出现便大受欢迎,更成为了以后几年内w ...

  7. Struts2.x教程(一) Struts2介绍

    一.Struts2是什么 Struts2是在WebWork2基础发展而来的.和Struts1一样, Struts2也是基于MVC的web层框架. 那么既然有了Struts1,为何还要Struts2? ...

  8. 前端 ----- 01 -html介绍和head标签

    01-html介绍和head标签   主要内容 web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 HTML规范 HTML结构详解 一.web标准 web准备介绍: w3c:万维网联 ...

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

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

随机推荐

  1. [EF] - Code First处理Clustered Index

    Clustered Index <=>集群索引: http://msdn.microsoft.com/en-us/library/ms177443.aspx 由于其特殊性,使得每个tabl ...

  2. 【Tomcat】Tomcat服务器核心配置说明及标签

    目录 一,主要标签结构 二,Server标签 标签属性: 子标签: 三,Service 标签 子标签: 四,Executor 标签 属性: 五,Connector标签 属性: 六,Engine标签 属 ...

  3. 常用java自带命令概览

    ref:http://www.hollischuang.com/archives/308 一.常用命令 jps: 查看本机的Java中进程信息. jstack: 打印线程的执行栈信息. jmap: 打 ...

  4. 创建txt文件,并且写入内容

    使用fopen的w方式就可以创建一个新的txt文件,如果文件名存在该文件内容会消失. 1. fopen的函数原型:FILE * fopen(const char * path,const char * ...

  5. Spring AOP 实战运用

    Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体 ...

  6. 【目标检测】基于传统算法的目标检测方法总结概述 Viola-Jones | HOG+SVM | DPM | NMS

    "目标检测"是当前计算机视觉和机器学习领域的研究热点.从Viola-Jones Detector.DPM等冷兵器时代的智慧到当今RCNN.YOLO等深度学习土壤孕育下的GPU暴力美 ...

  7. ROS代码经验系列-- tf进行位置查询变换

    include文件: #include "tf/transform_broadcaster.h" #include "tf/transform_listener.h&qu ...

  8. react脚手架抽离webpack报错解决

    我们在写react项目的时候,可能原有的webpack配置不满足我们的需求,需要自己去配置,可是你在创建脚手架的时候并不能在外部找到webpack文件,脚手架的webpack文件在node_modul ...

  9. 重温Java JDK安装,希望帮助更多的学习在路上的小白

    JDK卸载和安装 现在JDK已经升级到JDK11版本了,但是JDK1.8(JDK8)仍然有很多小伙伴在使用,这里也记录一下jdk1.8的下载及安装过程,对于刚学习java的小伙伴可以参考,熟手可忽略, ...

  10. 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库

    引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...