基于OpenLayers的WebGIS程序二次开发实例教程
35210 人在学
1.Struts的简介
Struts,是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用javaServlet/JSP技术,实现了基于JavaEEweb应用的Model-View-Controller(MVC)设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
2.Struts2的作用
Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且struts2的主题、模板都提供了很好的扩展性,实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。
Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用。
3.Struts2的分类
(1)UI标签:(UserInterface,用户界面)标签,主要用于生成html元素标签,UI标签又可分为表单标签非表单标签。
(2)非UI标签:主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出Value Stack中的值,完成国际化等功能的)。
(3)ajax标签:Ajax异步Javascript及XML,是Asynchronous JavaScript And XML的缩写。是一种基于JavaScript和HTTP请求,广泛应用在浏览器的网页开发技术。
4.Struts2标签使用前的准备
(1)在要使用标签的jsp页面引入标签库:
<%@tagliburi="/struts-tags"prefix="s"%>
(2)在web.XML中声明要使用的标签,struts22.3.1.2版本的引入方式
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
Struts2是Struts的下一代产品,是在struts和Web Work的技术基础上进行了合并,全新的Struts2框架。它的全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以Web Work为核心,采用拦截器的机制来处理用户的请求,这种设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts2可以理解为Web Work的更新产品。Struts2和Struts1有着太大的变化,但相对于Web Work,Struts2的变化其实很小。
Apache Struts2高危漏洞,影响到Struts2.0.0-Struts2.3.15的所有版本。包括国内很多知名网站在内的大量网站受到此漏洞不同程度的影响。攻击者可以利用该漏洞执行恶意java代码,最终导致网站数据被窃取、网页被篡改等严重后果,使网站及网民安全受到了极大的威胁。使用WEB服务器其中的kangle,apache表示没任何问题,Nginx受影响,Nginx用户需注意及时修复此问题,否则可能导致服务器被入侵。