欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重地阐述SSH三个框架的基础知识,第四部分将会进入项目实战,如果您已经对SSH框架有所掌握,那么可以直接浏览第四章,源码均提供在GitHub/ssh-network-hard-disk上供大家参阅

本篇目标

  • 掌握Struts2工作流程
  • 掌握Struts2控制器
  • 掌握Struts2XML配置
  • 掌握Struts2注解配置
  • 了解Struts2的浏览器插件

Struts2概述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Strus2作为控制器(Controller)来建立模型与视图的数据交互。Struts2使用了大量的拦截器来处理用户请求,从而将业务逻辑控制器和ServletAPI分离

Struts2工作流程

  1. 客户端发起请求
  2. 核心控制器FilterDispatcher拦截请求调用Action
  3. 调用Action的execute方法前调用一系列的拦截器
  4. 调用execute执行业务逻辑
  5. 返回结果

控制器是What?

包含execute方法的POJO既可以作为控制器,即一个简单的JAVA类包含一个execute()方法就可以作为控制器,同时控制器具有封装客户端请求参数的能力.

public class TestAction {

    public String execute() throws Exception {
return "test";
}
}

Struts2XML配置

XML配置完整工程示例源码下载

导入struts依赖jar

        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.18</version>
</dependency>

web.xml配置Struts2拦截器

    <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

编写struts.xml

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <package name="default" extends="struts-default">
<action name="hello" class="com.jimisun.action.TestAction">
<result name="hello">/WEB-INF/jsp/hello.jsp</result>
</action>
</package>
</struts>

编写控制器

public class TestAction {

    public String execute() throws Exception {
return "hello";
}
}

配置好以上步骤即可访问路径http://localhost:8080/hello.action

Struts2注解配置

注解配置Struts2完整示例源码下载

如果需要使用注解开发,则需要增加struts2-convention-plugin的Jar

        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.5.18</version>
</dependency>

那么在你的Action中就可以这样编写Action,不需要再到struts.xml中进行配置

@ParentPackage("struts-default")
@Namespace("/test")
public class TestAction { @Action(value = "hello", results = {
@Result(name = "hello", location = "/WEB-INF/jsp/hello.jsp")
})
public String hello() throws Exception {
return "hello";
}
}

Struts2的浏览器插件

在进行Struts2开发的时候随着项目的增大,你所需要处理的路径和方法映射越多,有时候会让你手忙脚乱,而struts2-config-browser-plugin插件很好的帮你解决了这个问题,只需要Jar包依赖即可

        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-config-browser-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.5.18</version>
</dependency>

本章总结

Struts2的起始配置比较简单,但是Struts2其他相关配置就比较繁琐了,不可掉以轻心

从零打造在线网盘系统之Struts2框架起步的更多相关文章

  1. 从零打造在线网盘系统之Struts2框架配置全解析

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  2. 从零打造在线网盘系统之Struts2框架核心功能全解析

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  3. 从零打造在线网盘系统之Hibernate框架起步

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  4. 从零打造在线网盘系统之SSH框架整合

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  5. 从零打造在线网盘系统之Hibernate配置O/R映射

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  6. 从零打造在线网盘系统之Hibernate查询与更新技术

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  7. SSH教程从零打造在线网盘系统前言&目录

    本系列教程内容提要 本系列教程是一个学习教程,是关于Java工程师的SSH(Struts2+Spring+Hibernate)系列教程,本教程将会分为四个部分和大家一同打造一个在线网盘系统,由于教程是 ...

  8. vue+nodejs+express+mysql 建立一个在线网盘程序

    vue+nodejs+express+mysql 建立一个在线网盘程序 目录 vue+nodejs+express+mysql 建立一个在线网盘程序 第一章 开发环境准备 1.1 开发所用工具简介 1 ...

  9. Layui框架+PHP打造个人简易版网盘系统

    网盘系统   大家应该都会注册过致命的一些网盘~如百度云.百科介绍:网盘,又称网络U盘.网络硬盘,是由互联网公司推出的在线存储服务,服务器机房为用户划分一定的磁盘空间,为用户免费或收费提供文件的存储. ...

随机推荐

  1. AJAX乱码解决新方法

    用过AJAX的朋友肯定知道javascript是使用UTF-8国际编码,即每个汉字用3个字节来存储,但是这就造成了用AJAX来send数据的时候出现乱码.     有一种解决办法就是使用encodeU ...

  2. Windows通用知识讲解二

    NMAKE Makefile是一个解释执行的工具,根据Makefile文件中的定义,编译和链接程序,最终生成文件. Makefile(Windows下是.mak文件) 定义编译和链接等操作的脚本文件( ...

  3. 第三百零八节,Django框架,models.py模块,数据库操作——链表结构,一对多、一对一、多对多

    第三百零八节,Django框架,models.py模块,数据库操作——链表结构,一对多.一对一.多对多 链表操作 链表,就是一张表的外键字段,连接另外一张表的主键字段 一对多 models.Forei ...

  4. Json---Windows下使用Jsoncpp

    上述Json解析使用的是Jsoncpp,要使用Jsoncpp,得做如下几步的配置: 1. 首先从http://sourceforge.net/projects/jsoncpp/下载,压缩包大约105k ...

  5. e1086. if/else语句

    The if statement encloses some code which is executed only if a condition is true. The general synta ...

  6. par函数的adj 参数- 控制文字的对齐方式

    adj 用来控制文字的对齐方式,取值范围为0到1,控制图片中x轴和y轴标签,标题,以及通过text 添加的文字的对齐方式 0表示左对齐,代码示例: par(adj = 0)plot(1:5, 1:5, ...

  7. dos中执行cd命令切换不到对应的盘解决方法

    可以使用cd命令,不过需要加参数 /d,如: cd /d e:

  8. ZOJ 3436 July Number(DFS)

    题意   把一个数替换为这个数相邻数字差组成的数  知道这个数仅仅剩一位数  若最后的一位数是7  则称原来的数为 July Number  给你一个区间  求这个区间中July Number的个数 ...

  9. MathType编辑半直积符号的步骤

    在数学中,特别是叫做群论的抽象代数领域中,半直积(semidirect product)是从其中一个是正规子群的两个子群形成一个群的特定方法.半直积是直积的推广.半直积是作为集合的笛卡尔积,但带有特定 ...

  10. C# Serializable(转)

    C# Serializable System.SerializableAttribute 串行化是指存储和获取磁盘文件.内存或其他地方中的对象.在串行化时,所有的实例数据都保存到存储介质上,在取消串行 ...