一、前言 

   
   1、什么是框架,框架有什么用?

        框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率。
   2、什么是struts2框架,它有什么用?

  • Struts 2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
  • 其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。
  • Struts 2以WebWork为核心。struts2=struts1+webwork;
  • struts2框架是apache产品。
  • struts2是一个标准的mvc框架。
  • javaweb中的model2模式就是一个mvc模式。 model2=servlet+jsp+javaBean
  • struts2框架只能在javaweb开发中使用的。
  • 使用struts2框架,可以简化我们的web开发,并且降低程序的耦合度。

    3、XWork—它是webwork核心,提供了很多核心功能:

  • 前端拦截机(interceptor)
  • 运行时表单属性验证
  • 类型转换
  • 强大的表达式语言(OGNL – the Object Graph Navigation Language)
  • IoC(Inversion of Control反转控制)容器等

    4、类似于struts2框架的产品 :

  • struts1 webwork jsf springmvc
  • ssh—struts2 spring hibernate
  • ssi—springmvc spring ibatis

     5、Strust2 核心功能

  • 允许POJO(Plain Old Java Objects)对象 作为Action
  • Action的execute 方法不再与Servlet API耦合,更易测试
  • 支持更多视图技术(JSP、FreeMarker、Velocity)
  • 基于Spring AOP思想的拦截器机制,更易扩展
  • 更强大、更易用输入校验功能
  • 整合Ajax支持

二、Struts2在eclipse中的配置安装

      1、前期准备

        Struts2对环境要求不高,JDK版本1.5以上,ServletAPI在2.5以上,Tomcat版本在6.0以上即可,当然更推荐使用最新版本。我安装的时候环境如下。

          1)windows 10操作系统;

          2)eclipse;

         3)JDK 1.8;

         4)tomcat 7.0

         5)下载Struts2安装jar包:https://struts.apache.org/download.cgi#struts2520

         目前Struts最新版本是2.5.20,分为apps项目案例,lib核心驱动,docs文档和src框架源码,根据需要进行下载,我这里下载的struts-2.5.20-all.zip这其中包括所有的包,下载到本地解压出来即可。

            Struts2安装配置(eclipse)

    2、然后打开eclipse for javaEE,新建动态网站项目

  Struts2安装配置(eclipse)

 3、输入项目名确认即可,然后就建立了一个普通的web项目,和之前的没有区别,另外注意要创建web.xml配置文件

    Struts2安装配置(eclipse)

 4、然后,打开我们刚才下载的Struts2中lib目录,这下面有非常多的Struts类库,并不是完全需要,一般情况下我们只导入常用的即可,其他的到需要的时候再导入,需要的jar包如下图:

       Struts2安装配置(eclipse)

  复制到lib目录后,eclipse项目会自动导入web的类库

 5、然后,配置web.xml,在<web-app>节点之间添加下面代码,也就是Struts2的框架的过滤器

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <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>

        配置过滤器是Struts2能跑起来最基本的前提,工作原理就是当tomcat容器启动时,首先加载web.xml,所以会加载其中定义的过滤器,因此StrutsPrepareAndExecuteFilter过滤器会过滤项目下所有的请求,然后后来利用过滤器捕获action请求,从而调用相应的方法进行处理,这就是Struts2的大致工作情况,StrutsPrepareAndExecuteFilter类出现可以让开发人员自定义过滤器,从而在请求到达处理之间对用户请求进行处理

  6、配置好web.xml后需要建立Struts2的核心配置文件,位置就是项目下的src目录中,建立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.3.dtd">
<struts>
	<package name="config" namespace="/" extends="struts-default">
        <action name="hellostruts2" class="test.action.HelloStruts2Action">
            <result>/result.jsp</result>
        </action>
        
        <action name="login" method="login" class="test.action.HelloStruts2Action">
            <result>/login.jsp</result>
        </action>
    </package>

</struts>

      在这里,一个action就负责处理一个请求,packge我们使用的默认包,当有多个packge时,name一定要区分开,namespace就是访问的空间,我们的项目名是HelloStruts2,如果命名空间是/test那么应该访问,http://localhost:8080/HelloStruts2/test/自定义的action

  第一个action对应的访问路径就是http://localhost:8080/HelloStruts2/hellostruts2.action当然默认也可以不加action

  第二个action对应的就是http://localhost:8080/HelloStruts2/login.action

  然后去建立一个Action类,就是HelloStruts2Action,类名命名必须是以Action结尾的驼峰命名,并且继承于ActionSupport类,具体代码如下:

package test.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloStruts2Action extends ActionSupport {
    
    private static final long serialVersionUID = 1L;

    @Override
    public String execute() throws Exception {
        System.out.println("执行Action");
        
        return SUCCESS;
    }
    
    //新增自定义方法
    public String login() {
        return SUCCESS;
    }
    
}

       如果前面配置文件没指定method属性,默认访问的方法就是execute方法,我们另外还自定义了一个login方法,SUCCESS常量返回了默认的<result>指定的视图,下面建立对应的jsp文件

  result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>成功视图</title>
</head>
<body>
    Hello Struts2
</body>
</html>

     另外login.jsp的建立也是一样,就不列出了,现在一个基本的Struts2应用就建好了,现在启动服务器,访问即可看到结果:

  Struts2安装配置(eclipse)

  然后我么看控制台也进行了打印输出

  Struts2安装配置(eclipse)

  同时访问login也是相同的效果

  以上就是基本的配置了,另外在配置文件struts.xml中还可以配置感叹号、通配符等多种灵活的访问方式,还可以配置访问后缀等参数,同时Struts2框架强大的功能更远不止这些,还需要不断地学习研究。

 

 

参考文章:https://www.cnblogs.com/freeweb/p/5079316.html

相关文章: