Struts2介绍1

Struts2、搭建Struts2开发环境、Struts2应用的配置文件

Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点大家需要注意的是:尽管Struts2struts1在名字上的差别不是很大,但Struts2struts1在代码编写风格上几乎是不一样的。那么既然有了struts1,为何还要推出struts2。主要是因为struts2有以下优点:

1 > 在软件设计上Struts2没有像struts1那样跟Servlet APIstruts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet APIstruts API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。

public class OrderListAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

}

}

2> Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。

3> Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。

4> Struts2提供支持多种表现层技术,如:JSPfreeMarkerVelocity

5> Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。

6> 提供了全局范围、包范围和Action范围的国际化资源文件管理实现

搭建Struts2环境时,我们一般需要做以下几个步骤的工作:

1》找到开发Struts2应用需要使用到的jar文件.

2》编写Struts2的配置文件

3》在web.xml中加入Struts2 MVC框架启动配置

1》找到开发Struts2应用需要使用到的jar文件.

需要下载struts2

       

      官网:
                http://struts.apache.org 

      下载地址 :

            http://struts.apache.org/download.cgi#struts238  版本号:struts2.3.8

Struts2介绍1_第1张图片

Apps 应用

Lib 类库文件

Docs 帮助文档

Src 源代码

提供了一个空白的项目struts2-blank 我们就可以在这个项目上进行开发struts2.

如果开发的过程中需要其他的jar的文件的支持 怎么办?

  需要到\struts-2.3.8-all\struts-2.3.8\lib 中找相应的jar文件。

struts2-blank.war项目 怎么解压  --  复制到tomcat中的webapps中 启动tomcat即可

apache-tomcat\bin 找到  Startup.bat点击启动

观察:

Struts2介绍1_第2张图片

可以打开浏览器IE

   输入  http://localhost:8080/struts2-blank

  

找到解压后的jar文件 :apache-tomcat\webapps\struts2-blank\WEB-INF\lib

Struts2介绍1_第3张图片

2》编写Struts2的配置文件

   

对比servlet 

    新建一个登陆的项目 :

        http://localhost:8080/demo/servlet/demo.do?username=&userpass=

参数   get请求方式

   /servlet/demo.do

   

web.xml文件 

   <servlet>

    <servlet-name>DemoServlet</servlet-name>

  <servlet-class>www.csdn.demo.serlvet.DemoServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>DemoServlet</servlet-name>

    <url-pattern>/servlet/demo.do</url-pattern>

</servlet-mapping>

过滤: 过滤器

监听 :监听器

  都需要在web.xml文件中配置

客户端 ---->web容器

                 Web.xml文件---->控制器 servlet---->Model--->数据库

<----------------------------------

Struts2 独有的配置文件

       struts.xml文件

 存放在什么位置配置文件内容是什么?

 

  1、必须位于classes路径下面

开发项目的过程中 我们把它放到src路径下面  编译后就会存放到classes下面

客户端 ---->web容器

                 Web.xml文件---->控制器 servlet---->Model--->数据库

<----------------------------------

  3》在web.xml中加入Struts2 MVC框架启动配置

web.xml文件配置  读取struts.xml文件

 2.1.3之前:

 org.apache.struts2.dispatcher.FilterDispatcher

 配置如下: 2.1.3版本后 如下 配置:

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

注意:

   struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件

Struts1struts-config.xml) 在web.xml文件中配置是一个servlet

分析第一个struts2的程序

   启动 :013-2-26 11:07:38 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Parsing configuration file [struts-default.xml]

2013-2-26 11:07:38 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Unable to locate configuration files of the name struts-plugin.xml, skipping

2013-2-26 11:07:38 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Parsing configuration file [struts-plugin.xml]

2013-2-26 11:07:38 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Parsing configuration file [struts.xml]

struts-default.xml

struts-plugin.xml

struts.xml

三个文件启动的过程中 如果有配置相同的  那么后边的会覆盖前面的。

Struts2应用的配置文件

Struts2默认的配置文件为struts.xml ,该文件需要存放在WEB-INF/classes下,该文件的配置模版如下:

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

</struts>

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

<filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

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

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

</filter>

<filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

StrutsPrepareAndExecuteFilterinit()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。

注意:struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件

你可能感兴趣的:(Struts2介绍1)