struts2框架

Struts2 入门

谁说胖子不能爱 提交于 2019-11-29 14:20:39
MVC 思想 M V C Model View Controller 数据模型层: DAO/service/entity 视图层 : Jsp/html/freemarker/volicity 控制层: servlet 、 struts2 、 springMVC MVC思想的好处:解耦合,提高系统的可维护性和可拓展性 Struts2框架概述: 充当了MVC中的C 替换了Servlet //底层封装了Servlet相关API, 但是它不是 Servlet 也就是应用javaee三层结构中的web层框架 实在struts1 和webwork基础上发展的全新框架。 web层常见框架 : (1) struts2 (2)springMVC Struts2官方文档目录: 如果想要使用Struts2框架 首先需要导入jar包 ( 1 )在lib 中有jar 包,不能把这些jar 都导入到项目中 ( 2 )到apps 目录里面,找到示例程序,从示例程序复制jar 包 做初始化配置 - 开启struts2框架 在web.xml中进行配置 类比于web中的Servlet 每次访问的时候都会执行service方法 每次访问action都会执行execute方法 public String execute() throws Exception { return SUCCESS; }

SSH框架之Struts2第二篇

我与影子孤独终老i 提交于 2019-11-29 13:57:06
1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一:解耦合的方式</h1> <form action="${ pageContext.request.contextPath }/requestDemo1.action" method="post"> 姓名:<input type="text" name="name"/><br/> 年龄:<input type="text" name="age"><br/> <input type="submit" value="提交"> </form> 编写Action /** * Servlet的API的访问方式一:解耦合的方式 * * 只能用于接收参数 和 操作域中的数据 * @author jt */ public class RequestDemo1Action extends ActionSupport{ @Override public String execute() throws Exception { // 接收数据: /** * 在ActionContext中提供了一些方法:操作域对象的数据 * * Map<String,Object> getParameters(); * * Map

SSH框架之Struts2第一篇

末鹿安然 提交于 2019-11-29 13:56:54
1.2 Struts2的概述 : Struts2是一个基于MVC设计模式的WEB层的框架. 1.2.1 常见web层框架 Struts1,Struts2,WebWork,SpringMVC Struts本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. 其全新的Struts2的体系结构与Struts1的体系结构差别巨大.Struts2是以WebWork为核心,采用拦截器的机制来处理用户的请求,所以Struts2可以理解为 WebWork的更新产品. Web层的框架都有一个特点 : 遵循前端控制模型.不同的web层框架实现的前端控制器模型的技术是不一样的. Struts2 : filter SpringMVC ; servlet 导入jar包 1.asm-3.3.jar : 操作字节码 2.asm-commons-3.3.jar : 提供了基于事件的表现形式 3.asm-tree-3.3.jar : 提供基于对象的表现形式 4.commons-fileupload-1.2.2.jar : 文件上传组件,2.1.6版本以后必须加入此jar包(此jar包中包含了RequestContext类,不导入该jar会报异常) 5.commons-io-2.0.1.jar : commons项目

SSH框架之Struts2第三篇

元气小坏坏 提交于 2019-11-29 13:56:51
1.3相关知识点 : 1.3.1 OGNL的表达式 : 1.3.1.1 什么是OGNL OGNL是Object-Graph Navigation Language的编写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的 任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性. OGNL : 对象导航语言,是一门功能强大的表达式语言(功能比EL强大很多倍).Struts2将OGNL引入到自身,作为Struts2的表达式语言. struts2的默认表达式语言就是 : ognl 1.3.1.2 OGNL的作用 : 1 : 获取对象的方法; 2 : 获取类的静态属性; 3 : 获取类的静态方法; ognl快速入门 : <!-- ognl简单使用 --> <!-- 1 获取对象的方法(了解)--> 字符串hello的长度是: <s:property value="'hello'.length()"/><br/> <!-- 2 获取类的静态属性(了解) 要求:@类的全限定名@静态属性 --> π的值是:<s:property value="@java.lang.Math@PI"/><br/> <!-- 3 获取类的静态方法(了解) 要求: 1 @类的全限定名@静态方法 2 需要开启允许获取类的静态方法-->

自己总结的一些三大框架面试题

夙愿已清 提交于 2019-11-29 06:16:43
Struts 谈谈你对Struts的理解。 答: 1.struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。 一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀; 2.ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。 3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性

Spring MVC和Struts2的比较

荒凉一梦 提交于 2019-11-29 05:22:24
Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和Struts2的区别: 1. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同, 这里就牵涉到servlet和filter的区别了。 2. 性能:spring会稍微比struts快。 spring mvc是基于方法的设计 , 而sturts是基于类 ,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。 spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。 而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter

使用maven+eclipse搭建最简单的struts2的HelloWorld

风流意气都作罢 提交于 2019-11-29 01:43:29
一、web分层结构简介 1、web[细]粒度分层结构: 按细粒度分层可以分为以下6种: 1).表现层:html/css/js/jsp 2).控制层:servlet 3).实体层:javabean 4).业务逻辑层:javabean 5).持久层:jdbc/c3p0/dbutils 6).数据层:mysql/oracle 2、web[粗]粒度分层结构(重点): 按粗粒度可以分为3层: 1).由上面的1)、2)、3)组成mvc 什么是MVC? m即为model(模型层),v为view(表现层),c为controller(控制层)。 mvc仅用于表现层,不能作用于其它层。 2).业务层 3).持久层 二、struts简介 Struts 2是Apache基金会的明星级产品,提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈等。 历史回顾: 2001年,struts1 web开源框架出现 (祖先) 2004年,webwork web开源框架出现 (后代) 2007年,struts2 web框架出现 (后代),struts2不是struts1的升级版也不是webwork的升级版,多半来源于webwork,少半来源于struts1. JSF(javaserverface) web框架(后代),成为java标准。 个人理解:

Struts2 配置文件

不问归期 提交于 2019-11-29 01:43:10
本章将带你通过一个Struts2应用程序所需的基本配置。在这里,我们将看到在一些重要的配置文件,将配置文件:web.xml ,struts.xml,struts-config.xml和struts.properties 使用web.xml和struts.xml的配置文件,并在前面的章节中,已经看到我们的例子中曾使用这两个文件,让我解释以及其他文件。 web.xml 文件: web.xml配置文件是一个J2EE的配置文件,决定如何处理元素的HTTP请求由servlet容器。严格来说它不是一个Struts2的配置文件,但它是Struts2的工作需要进行配置的文件。 如前所述,这个文件为任何Web应用程序提供了一个切入点。 Struts2 应用程序的入口点,将是一个部署描述符(web.xml)中定义的过滤器。因此,我们将定义在web.xml中的FilterDispatcher是类的项。需要创建的文件夹的WebContent/ WEB-INF下web.xml文件。 这是第一个配置文件,将需要配置,如果没有一个模板或工具,可生成(如Eclipse或Maven2的)的帮助下开始。以下是web.xml文件中的内容,我们用我们的最后一个例子。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org

Struts2框架基础概念总结

核能气质少年 提交于 2019-11-29 00:38:17
Struts2框架基础概念总结 一、struts2框架 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2在Struts1融合webwork。 ONGL表达式:就是对象图形化导航语言,在前端页面中,访问action的属性、方法;类似于认为就是对JSP的封装,是编程更加方便。(以下详解) 二、framework(框架) 一个基本概念上的结构,用于去解决或者处理复杂的问题,框架是在特定的领域内解决问题。 框架的优点: (1)重用代码大大增加,软件生产效率和质量也得到了提高 (2)使用框架开发,它提供统一的标准,大大降低了我们的后期维护。 三、Struts 2框架运作 工作流程: (1)客户端浏览器发送HTTP请求到Web应用 (2)Web容器将请求传递到标准ActionContextCleanUp过滤器以消除属性,而不让后续过滤器清楚,以延长Action中属性(包括自定义属性)的生命周期。 (3)再经过如stimesh等其他过滤器后,请求传递给StrutsPrepareAndExecuteFilter核心控制器 (4)StrutsPrepareAndExecuteFilter调用ActionMapper(Action映射器

实现自己的控制层do-c (仿Struts2和SpringMVC)(一)

泪湿孤枕 提交于 2019-11-28 15:27:58
do-c是一款仿照Struts2和SpringMVC框架的一个 微型 控制层框架,用于接收前端页面的数据以及向页面的跳转。 JavaWeb开发者大都听过Struts2或SpringMVC这样鼎鼎有名的框架,它们也提供了强大的功能让我们更好地进行开发与调试。 它们两个都是庞大的工程,本人也没能抽出时间去研究一下。可是本人在工作中写多了代码,总是在思考它们的实现,故此也就想自己 创造 点东西。 目前为止本人研究的是 控制层数据的接收 。 下面的博客将以代码的形式具体阐述。 来源: oschina 链接: https://my.oschina.net/u/2805458/blog/705385