Struts2入门(一)——配置文件

一、前言

1、了解三大框架

什么是框架?

框架是一种规范,一种规则,一种把技术组织起来的规则,这就是框架。

什么是三大框架(SSH),Struts、hibernate和spring的作用是什么?

Struts主要负责层的显示,spring利用IOC和AOP来处理控制业务(负责对数据库的操作),hibernate主要作用是数据的持久性到数据库。

Struts的处理流程:

在Struts 2下载文件Struts-core-2.5.2.文件中(注意:不同jarStruts核心控制器的名称不同),StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,

它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。

默认情况下,如果用户请求的路径不带后缀或者后以.action结尾,这时请求将被转入Struts2框架处理,否则Struts 2框架将略过该请求的处理。

当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同,Struts 2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。

2、搭建Struts 2环境

(1)下载关于Struts 2所需要的jar文件,这里使用的是struts-2.5.2-all.zip,下载地址(这里)

(2)编写Struts 2配置文件,分为struts.xml

(3)在Web.xml加入Struts 2的框架启动配置

搭建Struts 2开发环境——所需的jar包

下载完毕之后解压文件,将所需要的文件拷贝到项目的lib文件下,这里配置的是Struts 2.5所需要的配置文件

必备jar包:尤其是log4j.jar和javassist.jar为必备包

struts2-core-2.x.x.jar :      Struts 2框架的核心类库

ognl-2.6.x.jar :           对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性

freemarker-2.3.x.jar :       Struts 2的UI标签的模板使用FreeMarker编写

commons-logging-1.x.x.jar :     ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。

commons-fileupload-1.2.1.jar: 文件上传组件,2.1.6版本后必须加入此文件

搭建Struts 2开发环境——Struts 2应用的配置文件

Struts 2默认的配置文件为struts.xml,所在位置是WEB-INF/classes下,注意:如果clesses没有的话,自行创建,然后创建struts.xml

配置模板代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--注意:有时候创建不会自动生成以下的<!DOCTYPE>,所以需要自动引入,如果使用的是2.3或者是1点几的话,只需要将Confinuration2.5//EN和下面的struts-2.5.dtd中的2.5改变为2.3或者1.几即可-->
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
</struts>  

搭建Struts 2开发环境——Struts 2在Web中的启动配置

在struts1.x中, struts框架是通过Servlet启动的。在struts2中,struts框架是通过Filter启动的。在web.xml中的配置如下:

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

注意:<!-- 自从Struts 2.1.3以后,下面的FilterDispatcher已经标注为过时

     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> -->

在StrutsPrepareAndExecuteFilter类中的init方法会读取路径下的配置文件struts.xml完成初始化操作

在读取完struts.xml的内容后,会以javabean形式存放到内容中,以后struts 2对用户的每次请求都会使用内存中的数据,而不是去读取文件。

入门例子:(该例子是官方文档例子)

在新建的struts.xml配置文件中加入配置:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="tutorial" extends="struts-default">
<!--name:可自己定义名称,class:实现类的准确路径-->
        <action name="helloword" class="com.hello.HelloWord" method="execute">
            <result name="success">HelloWorld.jsp</result>
        </action>
    </package>
</struts>

在Struts2框架中使用包来管理action,主要用于管理一组业务相关的action,实际开发中,应该把一组业务相关的Action放在同一个包下。

注意:struts.xm和Actoin配合使用,难免会使文件变得臃肿,我们可以通过<include file="文件名.xml"/>将struts.xml分割成多个。

解析struts.xml中的标签:

Action中的name属性:

配置包时必须指定name属性,可以任意命名但是必须唯一,不能对应java类名,如果要让其他包继承该包,可使用该属性进行引用。

method属性:

指定服务器调用哪个方法,默认为execute。

namespace属性:

表示命名空间,作为访问路径的一部分,如果路径是helloword.action的话,则加上/命名空间/helloword.action,如果不指定,默认为""(空字符串)

通常每个包都应该继承struts-default包, 因为Struts2很多核心的功能都是拦截器来实现。

使用Action元素必须指定系列的result元素,每个result元素定义逻辑视图和物理视图之间的映射。

result元素中type属性默认jsp为视图,可设置type的值改变数据所要显示的视图。

例子中使用的HellWord.java实现类代码:

package com.hello;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWord extends ActionSupport {

    public static final String MESSAGE = "Struts is up and running ...";
    private String message;
    public void setMessage(String message){
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
    public String execute() throws Exception {
        setMessage(MESSAGE);
        return SUCCESS;
    }
}

struts.xml配置文件中的HelloWord.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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>Hello World</title>
</head>
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>

访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如访问本例子HelloWord的URL路径为:/helloworld (注意:完整路径为

http://localhost:端口/项目名称/helloworld)。另外我们也可以加上.action后缀访问此Action。

入门例子运行效果如下:

时间: 2024-10-29 10:46:19

Struts2入门(一)——配置文件的相关文章

STRUTS2入门笔记

1.1.开发Struts 2程序最少需要的JAR如下: struts2-core-2.x.x.jar :Struts 2框架的核心类库      xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建      ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性      freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeM

1.struts2入门程序

**Struts2的入门步骤(重点掌握开发的步骤,尤其要记住拷贝哪些配置文件)** 0. 需求:编写JSP的页面,超链接,点击超链接发送请求,让框架某个类中的某个方法执行了. 1. 步骤一:下载Struts2的开发包 * http://struts.apache.org/download.cgi 2. 解决struts-2.3.15.3-all.zip包 * 解压后会看到有包和一些文件,大家需要掌握包相关的信息 * apps -- Struts2框架提供了一些应用. * libs -- Stru

Struts2入门

一.一个简单的例子 文件结构  web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

Struts2框架之配置文件struts.mxl理解

摘要: struts.xml是struts2开源框架的核心配置文件,其中包含一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面.还包括各种拦截器的配置等.本文用源代码的角度,来理解struts.xml文件的运行机理,及牵涉的各种文件开发项目前灵活运用struts源代码各种文件,省去将所有的参数及key值拼写出错. 配置struts2项目的基本要求: 下载struts源代码:(本文用的代码为:struts-2.3.15.1) A.

Struts2入门详解

如何搭建Struts2项目 导入相关架包 编写web.xml,配置strus2过滤器 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping>

Struts2入门(1)

---恢复内容开始--- 一丶Struts2基础学习总结 Struts2是在WebWork2的基础开发而来,它相比于Struts1的优点在于以下几点: 1.Strust2没有像Struts1那样跟Servlet API耦合度很高. 2.Struts2提供了拦截器,利用拦截器可以进行AOP编程. 3.Struts2提供了很强大的类型转换. 4.Struts2提供了多种表现层技术,虽然常用的只有JSP. 5.Struts 2 的输入校验可以指定方法进行校验. 6.Struts 2 提供了全局范围.包

struts2入门程序

1.搭建struts2环境开发的步骤 搭建struts2环境时,我们一般需要做一下几个步骤的工作: 1.  创建javaweb工程 2.  找到开发struts应用所需要使用的jar 3.  创建jsp文件 4.  创建action文件 5.  编写struts2的配置文件 6.  在web.xml中加入struts2 MVC框架启动配置 开发struts2中需要使用的基本jar包: 关于struts2的提示: 我的myeclipes默认的struts2提示只到2.1,如果需要有2.3的提示,有

Struts2入门这一篇就够了

前言 这是Strtus的开山篇,主要是引入struts框架...为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门.... 为什么要引入struts? 既然Servlet能够完成的事,我们为啥要用框架呢?? 框架帮我们封装了很多常用的功能 把Web带过来的参数自动封装到JavaBean中[以前,我们刚开始学的时候是单个单个来获取参数的,后来我们又使用了BeanUtils写工具方法来帮我们封装].现在,我们使用了Struts2的话,那么框架内部就能帮我们封装

struts2入门之拦截器

1.拦截器的执行时间:在action对象创建之后,在具体的方法执行之前: 2.拦截器底层实现原理:用到AOP思想和责任链模式:AOP:面向切面编程,通俗的讲就是当某个功能模块要增加某一项功能时,尽可能不去修改源代码而是通过其他的方式来达到相同的效果,比如通过配置文件等方式:责任链模式和过滤链模式有点相似,过滤链模式是指比如,一个请求由多个过滤器进行过滤,每个过滤器进行放行之后才能到下一个过滤器,最后实现目的:但是责任链模式,比如要执行多个操作,有添加,修改,删除三个操作,首先执行添加操作,添加操