基础篇-三大框架之一(struts2框架的搭建)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础篇-三大框架之一(struts2框架的搭建)相关的知识,希望对你有一定的参考价值。

Struts2是一种基于MVC的轻量级的WEB应用框架。

  1.web应用框架,也就是说struts2的运行环境是一个web容器,运行于Web容器中的程序就必须遵循基本开发标准和规范:servlet标准和JSP标准(不同的Web服务器对于servlet标准和JSP的标准是不一样的),对于struts2而言,它支持的Servlet标准最低版本要求是2.4,相对于JSP的最低版本要求是2.0。struts2作为开发框架的运行环境提出了要求,要求其必须运行在JDK1.5版本以上。

  2.轻量级,相对于重量级而言,指的是struts2在运行时,对web服务器的资源相对消耗较少,但是运行速度会相对快一些。

  3.基于MVC,Struts2着力于在MVC的各个部分为我们的开发提供了相应的帮助。基于Struts2框架的WEB应用的流程图如下:

技术分享

Contoller-FilterDispatcher

  用户请求首先到达前端控制器FilterDispatcher。FilterDispatcher负责根据用户提交的url和struts.xml中配置,来选择适合的动作(Action),让Action来处理用户请求。FilterDispacher其实是一个过滤器,它是Struts2核心包里的类,不需要我们去开发,只要在web.xml中配置一下。

Model-Action

  Action负责把用户请求中的参数组成合适的数据模型。Struts2中的Action实现了ServeltAPI的解耦,所以在Action里面就不需要再去直接使用HttpServletRequest与HttpServletResponse的接口。

View-Result

  视图结果是用来把动作中获取到的数据展现给用户。

Struts2项目资源

  在Struts的官方网站 http://struts.apache.org 可以找到Struts项目的相关资料信息。

Struts2项目的开发

  前面我们已经对struts2有了一定的了解,现在我们就来编写一个简单的Hello World的应用程序,来展示我们基本的struts2项目搭建。

  1.添加Struts2的依赖库

    使用eclipse创建一个动态的Web工程,为了让该工程具有Struts2支持功能,我们必须将Struts2框架的核心类库添加到Web应用中。将Struts2框架lib路径下的jar包导入我们Web应用的lib路径下,也就是我们工程目录下的" WebCOntentent\\WEB-INF\\lib"路径下,如图所示

技术分享

 

  如图表明我们的项目已经导入了Struts2所必须的类库,我们还需要修改web.xml 文件,让该文件负责加载Struts2的框架。

2.在web.xml配置文件中添加Filter

  Struts2的入口点就是一个过滤器(用我们老师的话来说,过滤器相当于是一条看门狗),Struts2就需要按过滤器的方式来配置。在web.xml中配置Struts2的代码如下:

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

3.我们需要一个Jsp页面来显示信息

struts2的标签库,也是框架的一部分,是为了解决页面显示数据,封装简单页面逻辑而产生类似于html标记的组件(也可以用jstl来写)。

使用struts2标签,需要在页面添加如下的定义:

<% taglib prefix="s" uri="/struts-tags" %>

 

  页面代码如下所示:

<% taglib prefix="s" uri="/struts-tags" %>
<html>
     <head>
          <title>Hello World!</title>
    </head>
    <body>
         <h2><s:property value="message"/></h2>
  </body> 
   
</html>

4.编写我们的action类

  为了让用户开发的Action更加规范,Struts2为我们提供了一个Action的接口,是为了使我们的Action处理类更加的规范。

public class IndexAction extends ActionSupport {
//定义一个常量 给HW赋值
public static final String HW="Struts is up and running!"; private String message; public void setMessage(String message){   this.message=message;  }   public String getmassage(String message){    return message    } public String execute(){
//给message添加一个字符串 setMassage(HW);
  //2.返回的字符串,要跟配置文件一一对应,用于跳转到指定的jsp页面
return "success"; } }

Struts2还为Action提供了一个实现类:ActionSupport。为了方便实现action一般情况下都会继承ActionSupport类,并重载execute方法。

 5.创建struts.xml的配置文件(必须要创建在src的目录下):

<?xml version="1.0" encoding="UTF-8" ?>
<!
DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 第1步:先定义一个包 ( 包名自定义)--> <package name="mypck" extends="struts-default">   <!-- 第2步:定义一个action,用于配置我们的跳转信息 class对应我们创建的action类(包名.类名)method默认调用的是action类的默认方法execute方法--> <action name="index" class="ssh.IndexAction" method="execute">
<result name="success">WEB-INF/jsp/HelloWord.jsp</result> </action> </package> </struts>

基本的Struts2的框架就已经搭建好了。

 

以上是关于基础篇-三大框架之一(struts2框架的搭建)的主要内容,如果未能解决你的问题,请参考以下文章

Strust2学习之一(struts2 环境搭建)

转 :手动配置三大框架整合:Spring+Struts2+mybatis

ssh三大框架的认识

Eclipse搭建SSH(Struts2+Spring+Hibernate)框架教程

Struts2基础篇

struts2 框架 的环境搭建 与配置