struts2框架

BirtViewer和Struts2框架的整合

☆樱花仙子☆ 提交于 2019-12-09 20:33:49
作者: 晋哥哥 发表于 2009-08-21 17:24 原文链接 阅读: 383 评论: 0 最近和同事在做一个birt相关的东西< Birt扫盲 >,web这块是用ssh框架,MVC框架用的是struts2。同事负责报表展现这一块,考虑到工期,他选择了使用birt标签来展现birt报表。这一来,问题就出现了。因为web这块是在一个老项目的基础上添加的模块,很多配置都不要再修改,其中就有struts2的核心过滤器,拦截了/*和*.jsp,而如果使用birt标签的话,它自己向birt引擎(配置为servlet)发出的请求通通都被struts2过滤了,结果只要一到含有birt标签的页面,就会报异常:在xx下找不到xxAction。算是个冲突吧。问题的关键点就是:birt标签对于servlet的请求,被struts2的核心过滤器过滤了。如果从零开始做,这或许不是什么难事,但是项目里很多配置都定死了,没办法,只能想其他路子。 方案一:修改birtViewer相关的servlet源码 将birt的servlet的url-mapping配置为类似于/preview.birt的话,是会被struts2的核心过滤器放过的,于是我反编译了birt的servlet的源码,发现请求路径基本都是硬编码的,不管了,一通乱改,基本都是将xxx改成xxx.birt,然后居然可以预览到报表的轮廓了

springmvc和struts2的区别

喜夏-厌秋 提交于 2019-12-09 09:40:58
1.Struts2是类级别的拦截,一个类对应一个request上下文;SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现Restful的url,而Struts2的架构实现起来要费劲。因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方法标识其所属方法了。 2.因为上面的原因,SpringMVC的方法之间基本上是独立的,独享request response的数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量;而Struts2搞得就比较乱,虽然方法之间也是独立的,但是Action中的所有变量却是共享的,这不会影响程序运行,却会给我们编码或读程序的时候带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。即Struts2的Action是多实例单线程的,而SpringMVC是单实例多线程的。 3.由于Struts需要针对每个request进行封装,把request、session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上是比较耗费内存的。 4.在拦截器实现机制上

JavaSSM框架精选50道面试题

↘锁芯ラ 提交于 2019-12-09 01:54:14
1.什么是MVC框架?传统MVC框架存在的问题是什么? MVC框架是为了解决传统MVC模式(Jsp + Servlet + JavaBean)的一些问题而出现的框架。 传统MVC模式存在问题: 1.所有的Servlet和Servlet映射都要配置在web.xml中,如果项目太大,web.xml就太庞大,并且不能实现模块化管理。 2.Servlet的主要功能就是接受参数、调用逻辑、跳转页面,比如像其他字符编码、文件上传等功能也要写在Servlet中,不能让Servlet主要功能而需要做处理一下特例。 3、接受参数比较麻烦(String name = request.getParameter(“name”),User user=new User user.setName(name)),不能通过model接收,只能单个接收,接收完成后转换封装model. 4、跳转页面方式比较单一(forword,redirect),并且当我的页面名称发生改变时需要修改Servlet源代码. 2简单介绍下你对springMVC特点的理解? Spring MVC Framework有这样一些特点: 1.它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成. 2.不依赖于Servlet API(目标虽是如此

Struts2框架在MyEclipse中的配置

偶尔善良 提交于 2019-12-06 21:00:29
工欲善其事,必先利其器,最近开始学习三大框架,Struts2,Hibernate与Spring,希望自己抓紧分秒时间,将框架学好。 下面介绍一下Struts2在MyEclipse中的配置,以防止粗心的自己以后会忘记。 1.首先建立一个Web Project,名字可以随意起,但是项目中尽量让这个名字有意义。在New Web Project页面,除了配置Project Name外,最好勾选上J2EE Specification Level中的Java EE 5.0。Finish 2.上面步骤完成后,我们需要导入Struts的Jar包(没有Jar包的朋友可以到Apache Struts2项目下下载,地址是: http://struts.apache.org/download.cgi#struts238-SNAPSHOT ,推荐下载第一个Full Distribution,因为这个是个完整版,包括所有的jar文件,源代码还有文档,方便以后我们查看源码与文档)。 下载好了源代码后,我们需要解压,平时会用到的包并没有lib下面那么多,新手可以参照我下面的第二幅截图将这七个包找出来,准备好用来添加。 然后我们在工程下找到WebRoot文件夹下面的WEB-INF文件夹的lib文件夹,在上面点击右键,选择Import,然后会跳出一个选择文件类型对话框,我们去选择File System这一项

Strust2_helloword

女生的网名这么多〃 提交于 2019-12-06 05:08:19
Struts 2 简介 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。 Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,在用户请求和模块化处理方面以及页面展示,Struts2 表现明显 Strus 2 与用户交互 Strus 2 的架构图 关于图中的Key: Servlet Filters:过滤器链,客户端的所有请求都要经过Filter链的处理。 Struts Core:Struts2的核心部分,但是Struts2已经帮我们做好了,我们不需要去做这个 Interceptors,Struts2的拦截器。Struts2提供了很多默认的拦截器,可以完成日常开发的绝大部分工作;而我们自定义的拦截器,用来实现实际的客户业务需要的功能。 User Created,由开发人员创建的,包括struts.xml、Action、Template,这些是每个使用Struts2来进行开发的人员都必须会的。 名称解释: 1.FilterDispatcher是整个Struts2的调度中心,也就是MVC中的C(控制中心),根据ActionMapper的结果来决定是否处理请求,如果ActionMapper指出该URL应该被Struts2处理

springmvc和struts2的区别

萝らか妹 提交于 2019-12-06 01:48:01
1.Struts2是类级别的拦截,一个类对应一个request上下文;SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现Restful的url,而Struts2的架构实现起来要费劲。因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方法标识其所属方法了。 2.因为上面的原因,SpringMVC的方法之间基本上是独立的,独享request response的数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量;而Struts2搞得就比较乱,虽然方法之间也是独立的,但是Action中的所有变量却是共享的,这不会影响程序运行,却会给我们编码或读程序的时候带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。即Struts2的Action是多实例单线程的,而SpringMVC是单实例多线程的。 3.由于Struts需要针对每个request进行封装,把request、session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上是比较耗费内存的。 4.在拦截器实现机制上

struts2学习笔记

拥有回忆 提交于 2019-12-04 05:39:12
Struts2学习笔记 1.Struts2 简介 1.1 Struts2概念 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(controller)来建立模型与视图的数据交互。Struts2是Struts2的下一代产品,这个框架充分发挥了Struts2和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易。 1)、运行在web层.负责处理请求的. 2)、struts2已经帮我们封装了很多web中常用的功能(拦截器) 3)、struts2 与 struts1 没什么关系. struts2是基于webwork框架 1.2 Struts2的优点 项目开源,使用及扩展方便; 提供Exception处理机制; Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转; 通过简单、集中的配置来调度业务类,使得配置和修改都非常容易; 提供简单、统一的表达式语言来访问所有可供访问的数据; 提供标准、强大的验证框架和国际化框架; 提供强大的、可以有效减少页面代码的标签; 提供良好的Ajax支持; 拥有简单的插件,只需要放入响应的jar包,任何人都可以扩展Struts2框架 1.3 Struts2与Servlet比较 优点:业务代码解耦,提高开发效率

Struts2相关面试题(转)

故事扮演 提交于 2019-12-03 20:25:18
Struts2 面试题 1、struts2工作流程 Struts 2 框架本身大致可以分为 3 个部分: 核心控制器 FilterDispatcher 、业务控制器 Action 和用户实现的企业业务逻辑组件。 核心控制器 FilterDispatcher 是 Struts 2 框架的基础, 包含了框架内部的控制流程和处理机制。 业务控制器 Action 和业务逻辑组件是需要用户来自己实现的。 用户在开发 Action 和业务逻辑组件的同时,还需要编写相关的配置文件, 供核心控制器 FilterDispatcher 来使用。 Struts 2 的工作流程相对于 Struts 1 要简单,与 WebWork 框架基本相同, 所以说 Struts 2 是 WebWork 的升级版本。基本简要流程如下: 1 、客户端初始化一个指向 Servlet 容器的请求; 2 、 这个请求经过一系列的过滤器( Filter ) (这些过滤器中有一个叫做 ActionContextCleanUp 的可选过滤器, 这个过滤器对于 Struts2 和其他框架的集成很有帮助,例如: SiteMesh Plugin ) 3 、接着 FilterDispatcher 被调用, FilterDispatcher 询问 ActionMapper 来决定这个请是否需要调用某个 Action 4 、如果

struts2实战教程

筅森魡賤 提交于 2019-12-03 01:54:33
Struts2.0已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。 拥有丰富的开发人群,几乎已经成为了事实上的工业标准。因此, 学习MVC框架 ,struts2.0几乎是必须熟悉的。 本课程从基本的struts2.0使用开始,深入原理讲解,授人以渔!同时,将工作中容易出现的细节问题讲透,让大家少走弯路。 主讲 :邹波 类型:SSH 适合对象:学习完 javase 、 数据库技术 、 jdbc 者 课程目录: 01_框架开始 02_框架由来 03_框架介绍 04_struts2入门 04_struts2入门二 05_struts2流程一 06_struts2流程二 07_回顾 08_线程安全问题 09_常量配置 10_团队协作配置 11_action和result配置详解 12_其它配置 13_action的三种实现方式 14_属性驱动 15_模型驱动 16_项目案例 17_回顾 18_servletapi一 19_servletapi二 20_ActionContext一 21_ActionContext二 22_valueStack 23_ognl 24_ActionContext,ValueStack,Ognl 25_ognl在项目中的运用 26_回顾 27_类型转换 28_手动验证 29_验证框架 30_拦截器 31_拦截器配置详解 32

springmvc之文件上传和json处理

情到浓时终转凉″ 提交于 2019-12-03 00:58:02
springmvc之文件上传 SpringMVC和Struts2的区别 共同点: 1.都是web层框架,都是基于MVC模型编写 2.底层都离不开原始ServletAPI 3.处理请求的机制都是一个核心控制器 区别: 1.SpringMVC的入口是Servlet,而Struts2是Filter 2.SpringMVC是基于方法设计的,而Struts2是基于类,Struts2每次执行都会创建一个动作类。所以SpringMVC会稍微比Struts2快些 3.SpringMVC使用更加简洁,同时还支持JSR303,处理ajax请求更方便 springmvc文件上传 1 添加文件上传相关依赖 < dependency > < groupId > commons-fileupload </ groupId > < artifactId > commons-fileupload </ artifactId > < version > 1.3.3 </ version > </ dependency > 2 配置文件上传解析器(CommonsMultipartResolver) < bean id = " multipartResolver " class = " org.springframework.web.multipart.commons.CommonsMultipartResolver