前言

  我们都知道struts2是一个框架,那什么是框架呢?很多人其实不太明白,其实框架就是一个半成品,别人将一些功能已经写好了,我们只需要拿来用即可,像我们之前

  使用的dbutils框架,操作数据,只需要两行代码,不用像一开始一样,老老实实的写一大堆代码,这就是开发框架的意义所在。简化开发(个人对框架认识的理解,其他

  还有在框架上加自己的代码这些就不说了,肯定还有别的很多功能,这只是我最好理解的一种方式)。

  框架的定义和作用:

    把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。
    特点:封装了很多细节,程序员在使用的时候会非常简单。

  Struts2就是一个web层框架,并且是使用MVC设计模式实现的的一个框架,之前使用的是Serlvet+JSP来开发web项目,现在用Struts2框架来替代他,那Struts2到底有

  哪些优点呢?

    请求    -----------  Servlet      --------------  JSP    serlvet+JSP

    请求    -----------      Action   --------------  JSP    Struts

1.1、简介

  百度上说的是:

    struts2(一)之初识struts2

    Struts2是Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架

    struts2(一)之初识struts2

1.2、来历

  Struts1:也是apache开发的一套mvc的开源框架。在2005年之前非常流行。
      弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。
  Struts2:在long long ago,有一个设计超前的框架XWork,后来推出了XWork1和WebWork2。Struts2就是apache和OpenSymphony组织合并开发出来。
      里面包含了WebWork2的核心及Struts的一些特性和功能。除此之外,和Struts1没有任何关系了。

二、struts2架构分析

  首先了解前,必须先要知道Struts2的架构图,知道是如何工作的,做了哪些事情,可以不必那么详细的知道每一块具体的细节,先让我们自己有个大概的了解,

  这样我们就更容易去接受它,使用它。

  struts2(一)之初识struts2

  第一步:请求action,那么就会经过StrutsPrepareAndExecuteFilter,这里会做两件事情,就是下面的两步

  第二步:通过ActionMapping将请求中的各种数据封装起来,拿到请求中的各种参数数据,比如我们的action的名称DemoAction

  第三步:给自己找一个代理对象ActionProxy,来帮助我们处理事情。注意,这个ActionProxy实际上不做任何实事的,而是指挥别人做

  第四步:ActionProxy叫ConfigManager获取struts.xml中的各种配置信息,其中struts.xml就有action的类全限定类名等信息,这样就可以通过action的名字找到其位置了

  第五步:有了actionMapping获取的请求数据和ConfigManager获取的struts.xml中的数据,就叫ActionInvacation来查找对应的action了

  第六步:在找到action之前会经过一系列的拦截器,struts内部默认实现的。找到action后,就相当于我们的servlet,在其中执行一些业务代码,然后跳转到目标页面,

      响应回去。struts的整个过程即结束了。

  就是这么简单,struts2的整个执行过程就这样,而现在我们要写一个struts2的hello world的话,根据struts2的架构图,我们需要配置2个东西,

  第一个最关键的,在web.xml中配置strutsPrepareAndExecuteFilter即过滤器,配置了该过滤器,请求才会走struts2框架

  第二个,struts.xml文件,其中应该有的内容是通过action的名字就能够找到其位置在哪里,稍微会详细讲解。 

三、搭建struts2环境

  我们只需要三步就可以完成:导入jar包、在web.xml中配置过滤器、配置struts.xml。

3.1、导入jar包

  1)下载struts2jar包

    http://struts.apache.org(struts-2.3.15.3)

  2)开发包目录结构

    struts2(一)之初识struts2

  3)需要的jar包

    这里注意一点,lib下面有100多个jar包,并不需要导入这么多,我们在apps(案例)中找jar包即可,apps-blank.war是最简单的案例,

    我们把其后缀名改为zip,然后解压,找到其中的lib目录下的jar包复制就行了。

    struts2(一)之初识struts2

    拷贝jar包到classpath中(也就是WEN-INF下面的lib包)

    struts2(一)之初识struts2

3.2、在web.xml中配置过滤器

  配置的位置:web.xml中

  配置的是什么:Struts已经写好的过滤器

  struts2(一)之初识struts2

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

相关文章:

  • 2021-11-15
  • 2022-02-19
  • 2021-10-24
  • 2021-07-28
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-06
  • 2021-08-18
  • 2021-11-19
相关资源
相似解决方案