zoukankan      html  css  js  c++  java
  • 1、Struts2基本入门

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

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

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

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

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

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

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

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

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

    二、三层开发模型 MVC

    模型(Model)-视图(View)-控制器(Controller),通常简称MVC,是一种开发web应用程序的软件设计模式。该软件设计模式由以下三部分组成:  

            模型——属于软件设计模式的底层基础,主要负责数据维护。  

            视图——这部分是负责向用户呈现全部或部分数据。 

            控制器——通过软件代码控制模型和视图之间的交互。

                                                                                                              

    三、Struts2的基本组件、架构

    从一个高水平角度看,Struts2 是一个MVC拉动的(或MVC2)框架,Struts2 的模型-视图-控制器模式是通过以下五个核心部分进行实现的:

    • 操作(Actions)
    • 拦截器(Interceptors)
    • 值栈(Value Stack)/OGNL
    • 结果(Result)/结果类型
    • 视图技术
    而Struts2 与传统的MVC框架略有不同,因为它由Action扮演模型的角色,而不是控制器,虽然这样会有一些重叠。
                                                                                              Struts 2的架构
     

    四、一个请求的生命周期

    通过上述图片的描述,我们可以依照下面几点解释在Struts2 中用户的请求生命周期:

        1、用户发送一个资源需求的请求到服务器(例如:页面)。

        核心控制器查看请求后确定适当的动作。

        使用验证、文件上传等配置拦截器功能。

        执行选择的动作来完成请求的操作。

        另外,如果需要的话,配置的拦截器可做任何后期处理。

        最后,由视图显示结果并返回给用户

                                                    【备注:以上的概念性东西摘用自W3School里面的内容】

    汇总:

    当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。

    五、创建一个入门项目,初步了解Struts2:

    1、使用IDEA创建Struts2的前期准备:

                                                           

                                                                                                            

    2、手动导入lib文件夹中的jar包可能无法被识别,这个时候需要手动配置一下就没问题了。

                                                                  

    3、创建对应的目录结构:

        【如果,extends中报错了,可以按照下面的方法来记性解决。】

                                                                  

    具体代码目录如下:

                                                                                                                             

     2、如果上面的准备工作完成,我们就可以按照需求来开始写代码了

    后台的Action层,也就是和前端交互的入口java程序:Demo1Action.java

    package com.turtle.demo1;
    
            import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * 测试:这个是测试的后台Action,用来处理前端的操作流程
     */
    public class Demo1Action  extends ActionSupport {
    
        @Override
        public String execute() throws Exception {
            System.out.println("哈嘛批,你倒是跳啊!!!");
            return "success";
        }
    }

    Struts的配置文件,用来配置路径映射对应的java类和方法:Struts.xml

    <?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="demo1" extends="struts-default" namespace="/">
            <action name="demo1Action" class="com.turtle.demo1.Demo1Action">
                <result name="success">/demo1/success.jsp</result>
            </action>
        </package>
    </struts>

    前端界面,一个是首页、一个是从后台重定向到新的界面:index.jsp  success.jsp

    <%--
      Created by IntelliJ IDEA.
      User: szwb174
      Date: 2019/10/23
      Time: 10:21
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Struts2的入门测试</title>
    </head>
    <body>
        <h1>Struts2的入门测试</h1>
        <h2><a href="demo1Action.action">去Demo1Action中的Struts2的入门测试execute方法了</a></h2>
    </body>
    </html>
    <%--
      Created by IntelliJ IDEA.
      User: szwb174
      Date: 2019/10/23
      Time: 10:29
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>demo1Action处理成功</title>
    </head>
    <body>
        <h1>成功跳转过来了</h1>
    </body>
    </html>

    web项目的核心配置文件,主要是配置前端过滤器: web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <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>
    </web-app>

    3、最后还需要 配置对应的服务器,就可以完成测试了:

                                                                                        

    4、测试结果:

                                                                                                    

     六、总结:

      1、这是第一篇入门的文章,不涉及太多概念,只强调操作。搭建好环境,为了下面的深入学习做好铺垫,如果没有搭建好环境,不能自己去尝试的写代码,学习效率会很低。

      2、知道怎么跑通这个程序。对Struts2有一个大概的了解,能知道运行的流程。从前端经过前端控制器,然后再到Action处理器进行处理。

      3、能够对几个配置文件的位置、里面的内容有一定的理解。

      4、后面的文章会详细深入,对里面的知识点会一点一点的理顺。

      5、难度系数慢慢的提升,先会用,再去了解里面的小知识点即可。

  • 相关阅读:
    renren fast快速开发系统平台
    质量体系推广中的APQP
    人员能力管理——车间看板工具
    【生物信息】RPKM, FPKM和TPM
    【深度学习与TensorFlow 2.0】图片分类——多层感知机
    【深度学习与TensorFlow 2.0】入门篇
    【bioinfo】生物信息学——代码遇见生物学的地方
    【web开发】docker中的数据库
    使用docker搭建数据分析环境
    【数据科学】Python数据可视化概述
  • 原文地址:https://www.cnblogs.com/zhh19981104/p/11724899.html
Copyright © 2011-2022 走看看