Struts2的概述:

  Struts2是应用在Javaee三层结构中的web层。Struts2是在Struts1和webwork的基础之上发展的全新的框架。在没有使用Struts2之前,进行web层的操作主要是通过Servlrt类来进行实现,而每一个功能对应一个Servlet。这种方式实现有一个不好的地方,就是如果在你的功能有很多的时候,那么对应的Servlet也相对会很多,这样对程序的后期维护是很不好的。在Javaee阶段,传智播客老师教了一种解决的方案就是对HttpServlet进行再次的封装为一个BaseServlet(通过反射来进行封装:主要是通过在页面传参method=...,在BaseServlet中获取到method的参数,在通过反射来调用对应的方法,而我们只需要在写的Servlet中继承封装好的BaseServlet的话,就可以在一个Servlet中写多个方法),这种方式实现相对于一个功能一个Servlet而言就稍微的高端一点,同样这种方式还是有不足的地方,例如,在每次写Servlet的时候,均需要继承自封装好的BaseServlet。这时候,有一个更加好的方式实现,就是Struts2框架。下面通过图片描述Strut2和Servlet的区别:

  Struts2:

  

  Servlet:

  

Struts2的目录结构:

使用Struts2的步骤:

  1. 创建Web项目,导入jar包

    对于Struts2的jar包,并不是将lib目录下的所有jar包导入,可以到apps文件夹下找到对应的示例程序,选择这个即可,用压缩软件打开,将其中的jar包复制到web项目下。如下图:

                  

  2. 创建Action

    在以前的Servlet中,每次访问Servlet时候,均会执行service()方法,而在使用Struts2的时候,创建Action类,每次访问的Action的时候,执行的是Struts2底层封装的execute()方法。

  

  3.  配置Action类的访问路径,也就是Struts的核心配置文件。

    在以前的Servlet中,如果要找到对应的Servlet,需要对Servlet进行路径的配置。同样对于Struts2的Action类,也需要进行Action的配置。Struts2的配置需要在Struts2的核心配置文件中进行配置,因此首先需要创建Struts2的核心配置文件:,对于这个struts2的核心配置文件和Hibernate的核心配置文件一样,有两个要求:第一要求struts2的核心配置文件的位置,必须在src根目录下,第二要求struts2的配置文件的文件名必须为struts.xml。如下图:

  

  由于一般的xml文件,均具有约束文件,所以在创建struts.xml文件的时候,还需要给struts.xml文件引入约束。struts的详细配置,在下面介绍;引入约束如下:

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

  

  4. 配置过滤器

    在此博文开篇的部分图中,看到,对于Struts2的执行流程是必须先经过过滤器的。因此要使Struts2正确的运行,那么还需要在web.xml文件中配置Struts2的过滤器,此过滤器的配置,可以在Struts2提供的示例程序中找到。具体配置代码如下(只需要将下面的配置代码,放到项目的web.xml文件中即可):

     <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>
StrutsPrepareAndExecuteFilter类是Struts2的过滤器类,他实现了Filter接口

Struts2的执行过程:

Struts2入门1的更多相关文章

  1. Struts2 入门

    一.Struts2入门案例 ①引入jar包 ②在src下创建struts.xml配置文件 <?xml version="1.0" encoding="UTF-8&q ...

  2. Struts2入门3 深入学习

    Struts2入门3 深入学习 处理结果和异常 前言: Struts学习的差不多了,还有最后的一点就收官了就是结果处理和异常处理.前面学习Struts主要围绕就是Action以及struts.xml配 ...

  3. Struts2入门2 Struts2深入

    Struts2入门2 Struts2深入 链接: http://pan.baidu.com/s/1rdCDh 密码: sm5h 前言: 前面学习那一节,搞得我是在是太痛苦了.因为在Web项目中确实不知 ...

  4. Struts2入门1 Struts2基础知识

    Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...

  5. struts2入门程序

    struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...

  6. struts2框架(1)---struts2入门

    struts2框架 如果你之前在MVC模式的时候一直都是通过servlet,获取和返回数据,那么现在开始学习struts2框架, Struts是一个实现MVC设计模式的优秀的框架.它的许多优点我就不说 ...

  7. [java]struts2入门

    摘要 本文是struts2入门,配置教程.如何在IntelJ Idea中进行手动配置.在使用idea新建struts2web项目的时候,在下载jar包的过程中,下载失败,没办法就直接手动进行下载jar ...

  8. ---web模型 --mvc和模型--struts2 入门

    关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...

  9. Struts2入门示例(Myeclipse)

    1.新建Web项目在lib导入struts-2.3.37核心基础jar包 2.在WebRoot新建2个JSP demo1.jsp <%@ page language="java&quo ...

  10. Struts2入门(六)——国际化

    一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...

随机推荐

  1. CCPC-Wannafly Winter Camp Day1 流流流动 (树形dp)

    题目描述 喜欢数学的wlswls最近被萎住了. 现在他一共有1...n1...n这么多数字,取数字ii会得到f[i]f[i]的收益.数字之间有些边,对于所有的i(i != 1)i(i!=1),若ii为 ...

  2. vue token 过期处理

    1.登陆成功后储存token  可以利用 vuex 储存token 2.利用路由守卫处理 router.beforeEach((to, from, next) => {   })     3.我 ...

  3. nacos 动态刷新@ConfigurationProperties

    使用@ConfigurationProperties 可以替换@value   @ConfigurationProperties @Value 注解功能 可以批量注入配置文件中的属性 只能一个个指定注 ...

  4. MSSQL时间格式转换

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: ), 时间一, ) 结果: :/*时间一般为getdate()函数或数据表里的 ...

  5. 深入理解MySql事务

    事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理. MySQL博大精深,文 ...

  6. Spring IOC 实现方式

    Spring 中的 org.springframework.beans 包和 org.springframework.context 包构成了 Spring 框架 IoC 容器的基础. BeanFac ...

  7. Excel: assign label to scatter chart using specific cell values

    ref: https://www.get-digital-help.com/custom-data-labels-in-x-y-scatter-chart/ Improve your X Y Scat ...

  8. css3 中的2D转换

    一.CSS3转换 通过转换实现对对元素进行旋转.缩放.移动.拉伸的效果:这种原来必须要通过JS或者图片处理才可以实现的效果,现在都可以通过CSS3来完成. 2D转换采用transform属性来实现效果 ...

  9. mysql 数据库必会题

    Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口是否运行 ...

  10. 文件/大文件上传功能实现(JS+PHP)全过程

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...