Struts2学习(一)【介绍与环境搭建和第一个例子】

来源:互联网 发布:ubuntu 14.04 32下载 编辑:程序博客网 时间:2024/06/07 03:37

一、概述

概述内容来自 https://www.w3cschool.cn/struts_2/struts_overview.html

Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1 的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。

1.1 Struts2 框架的优点

了解了这几个主要的优点,会促使你考虑使用Struts2 :

  • POJO表单及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分。在Struts2框架下,你可以用任何一POJO来接收表单输入,同样的,你可以把任一POJO视为一个Action类。

  • 标签支持 - Struts2 改进了标签表单,而新的标签可让开发人员减少代码编写量。

  • AJAX支持 - Struts2 被认可接收进Web 2.0技术,并创建了功能非常类似于标准的Struts2 标签的AJAX标签,把AJAX支持整合进其结果中。

- 易于整合 - Struts有多种整合方式可使用,现在与其他类型的框架,如Spring、Tiles、SiteMesh之类的,整合更为容易了。

  • 模板支持 - 支持使用模板生成视图。

  • 插件支持 - 有大量的插件可用于Struts2,而使用插件可以增强和扩大Struts2 核心行为。

  • 性能分析 - Struts2 为调试和配置应用程序提供综合的性能分析,此外,Struts也以嵌入调试工具的形式提供集成调试。

  • 易于修改标签 - 在Struts2 中,可使用Freemarker的模板对标签标记进行调整,而修改标签不需要JSP或是Java知识,基本的HTML、XML和CSS知识就足够了。

  • 促进减少配置 - Struts2 使用各种设置的默认值促进减少配置,而你不需要再配置什么除非是偏离了Struts2 设定的默认设置。

  • 视图技术 - Struts2 为多种视图选项(JSP、Freemarker、Velocity、XSLT等)提供支持。

以上是使Struts2 成为准企业框架的十大优点。


1.2 Struts2 框架的缺点

尽管Struts2 有一大列的优点,但我们还是要提到关于它的一些仍需不断改进的缺点:

  • 更大的学习曲线 - 使用Struts MVC,你必须要熟悉JSP、Servlet APIs标准以及一个大型、复杂的框架。

  • 文档缺乏 - 相比于Servlet和JSP APIs标准,Struts的在线资源较少,许多初学者会发现Apache在线文档混乱并缺乏整理。

  • 不够透明 - 相比于使用正常的基于Java的Web应用程序,使用Struts的应用程序有许多是进行在后台,这使得框架不易于理解。

最后说明一点,一个好的框架应该提供各种类型的应用程序都可以使用的通用行为,Struts2 是最好的Web框架之一,并频繁用于RIA(Rich Internet Applications)的发展。


二、环境搭建

2.1 所需要的环境

所需要的环境如下:

  • struts2 的jar包

  • 开发工具

  • Tomcat

2.2 struts2下载

下载地址:http://struts.apache.org/download.cgi

我们现在下载的是 Struts 2.5.13

下载说明如下

下载包 说明 struts-2.5.13-all.zip 全部资料 struts-2.5.13-apps.zip demo struts-2.5.13-min-lib.zip 必须的jar包 struts-2.5.13-lib.zip 全部的jar包 struts-2.5.13-docs.zip 文档 struts-2.5.13-src.zip 源码

2.3 开发工具

我使用的是 IDEA

下载地址 https://www.jetbrains.com/idea/

2.4 tomcat

下载地址 http://tomcat.apache.org/

或者可以查看 iOS学习笔记-141.网络01——使用Tomcat和JavaWeb来搭建自己的网络接口


三、搭建我们的第一个Struts2程序

3.1 创建项目与导包

使用idea创建名为 Struts2_1_setting的项目。

导入 struts-2.5.13-min-lib 下的所有包。

创建和导入包过程可以查看 SSH与SSM学习之hibernate01——介绍与环境搭建和第一个例子

3.2 导入的包说明

jar包 说明 struts2-core-2.5.13.jar Struts2 框架核心库 ognl-3.1.15.jar 对象导航语音,struts2框架通过其读写对象的属性 log4j-api-2.8.2.jar Struts2的日志管理组件依赖包的api javassist-3.20.0-GA.jar javaScript字节码解析器 freemarker-2.3.23.jar Struts2标签模板使用的类库 commons-lang3-3.6.jar 包含一些数据类型工具,是对java.lang包的增强 commons-io-2.5.jar Struts2的输入输出,上传文件依赖的jar commons-fileupload-1.3.3.jar Struts2上传组件依赖包

3.3 创建第一个Action类

src下创建我们的包 com.qwm.struts2_1.testdemo,在这个包里面创建一个简单的java类(POJO)。

创建一个 test1 方法。如下

package com.qwm.struts2_1.testdemo;/** * @author: wiming * @date: 2017-09-15 15:41:28  星期五 * @decription: * 测试demo1 */public class TestDemo1Action {    public String test1(){        System.out.println("---hello struts2----");        return "success";    }}

3.4 配置Struts2的主配置文件

src 下创建Struts2的主配置文件 Struts.xml,如下

<?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="test" namespace="/test" extends="struts-default">        <action name="TestDemo1Action" class="com.qwm.struts2_1.testdemo.TestDemo1Action" method="test1">            <result name="success">/hello.jsp</result>        </action>    </package></struts>

下面是我们的 hello.jsp 文件

<%--  Created by IntelliJ IDEA.  User: qiwenming  Date: 2017/9/15  Time: 15:48  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>hello Struts2</title></head><body><h1>Hello ,wiming <br> Welcome to Struts2</h1></body></html>

3.5 将struts2核心过滤器配置到web.xml(最最最重要的一步)

打开我们 web/WEB-INF/web.xml 文件,添加我们 struts2核心过滤器配置。
如下

<!--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>

3.6 运行我们的第一个程序

部署我们的程序(运行),我们在浏览器中输入 http://localhost:8080/s2_1/test/TestDemo1Action

就可以看到浏览器中显示如下:

image

后台打印的结果

---hello struts2----
原创粉丝点击