Struts2框架与JFreeChart框架相互整合的应用技术
- 格式:pdf
- 大小:193.33 KB
- 文档页数:5
第10章整合Struts和其他框架技术(第3/3部分)1.1整合Struts和JFreeChart框架在开发企业应用系统时,开发人员经常会遇到必须提供交互式图表的应用要求——也就是要求应用系统能够用比如饼图、柱形图或XY散点图等二维图形直观地描述和显示出数据。
但由于Web应用系统程序的用户界面不及桌面应用程序(Application)的图形用户界面(GUI)丰富和友好,这为实现Web方式下的图表技术带来了一定的复杂性。
而为了能够实现Web图表,一般可以采用下面的各种实现技术:1)使用Java Applet小程序同时利用Java本身对图形编程实现的支持来显示一个图表2)直接在Web服务器端生成好图表图片文件后,再发送到前端的浏览器中显示输出3)使用Java的图表引擎JFreeChart框架技术JFreeChart是Java平台中的一个开源图表绘制框架,可生成饼图、柱状图、散点图、时序图、甘特图等多种图表,并且可以产生PNG和JPEG等格式的图像输出文件。
基本上能够解决目前的企业应用系统中对图表方面的功能需求。
1.1.1开源JFreeChart图表框架1、开源JFreeChart图表框架1)JFreeChart图表框架技术简介JFreeChart框架是JFreeChart公司在开源网站上的一个开源项目,该公司目前的主要产品有如下的几种:1)JFreeReport:报表解决工具2)JFreeChart:Java图形解决方案(Application/Applet/Servlet/Jsp)3)JCommon:JFreeReport和JFreeChart的公共类库4)JFreeDesigner:JFreeReport的报表设计工具JFreeChart框架主要用来开发各种形式的二维图表,并且是目前比较好的Java图表解决方案、并且能够应用在J2EE Web应用环境(如Servlet、JSP和Applet)和J2SE 的Java 应用程序等环境。
Spring学习之Spring与Sturts2的整合●单个Struts2操作:通常web客户端访问web服务器要经过拦截器到达action,然后在action中进行一系列的操作,比如访问数据库,转发到目标页面:例如:定义一个TestAction extends ActionSourpport{}⏹需要在struts.xml文件中配置:<action name=”test” class=”TestAction的全限定名称”><result name=”success”>/test.jsp</result></action>⏹在web.xml文件中需要配置struts2的核心过滤器:<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>●单个Spring操作Spring和Struts2整合操作:由Spring定义TestAction:<bean id=”test”class=”TestAction类的全限定没名称”></bean>当然,在测试的时候,在Spring容器中获取一个对象需要先获取Spirng的IOC容器,然后在容器中获取目标对象首先获取Spring的IOC容器ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);//然后获取TestAction对象TestAction ta = (TestAction) ac.getBean(“test”);然后就可以使用这个对象了,但是,在一个web应用中,只能使用一个Spring的IOC 容器,如何才能使web的多个业务层使用同一个IOC容器呢,这就需要在web.xml文件中配置Spring的初始化IOC容器的监听器:是在整个web应用中都可以使用<listener><listener-class>org.springframework.web.context.ContextLoaderListener></listener-class> </listener><context-param><param-name>contextConfigLoaction></param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value>这里是applicationContext.xml位置</context-param>在web.xml文件中配置Spring的初始化IOC容器的监听器,就可以使整个web应用中都共享一个Spring的IOC容器,这样使用注解就可以定义一个bean,如果一个对象需要属性,就使用@Resource给对象注入属性这样,如果需要属性的时候,就可以拿来直接使用:当然也可以这样使用:配置web.xml文件:<?xml version="1.0"encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><!-- 配置Spring的IOC初始化容器配置IOC初始化容器就是为了是整个web应用共用一个Sprig的IOC容器,因为整个容器只能有一个,并且可以在整个web应用中使用--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param>采用注解,在applicationContext.xml文件中只要配置组件扫描在TestAction中属于控制层:使用@Controller(“prototype”)多例形式package com.workit.acton;import javax.annotation.Resource;import javax.servlet.ServletContext;import org.apache.struts2.ServletActionContext;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.web.context.support.WebApplicationContextUtils;import com.opensymphony.xwork2.ActionSupport;import erService;@SuppressWarnings("serial")@Controller("testAction")@Scope("prototype")public class TestAction extends ActionSupport{@Resource //给TestAction注入userService属性private UserService userService; //前提是这个UserService类要交给Spring容器管理@Overridepublic String execute() throws Exception {System.out.println("TestAction.execute()");System.out.println("\n============================\n");System.out.println(userService);userService.printInfo();//获取ServletContextServletContext application = ServletActionContext.getServletContext();//获取Spring的ioc容器ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(application);System.out.println("在整个应用中使用Spring的IOC的容器");UserService us = (UserService) ac.getBean("userService");System.out.println(us);return "success";}}因为TestAction这个类已经交给Spring的ioc容器管理,所以在<action >中的class中不需要写类的全限定名。
Struts 2 中使用JFreeC hart 整合为了在Struts 2 中使用JFreeChart 统计图表,Struts 2 提供了JFreeChart 插件支持。
借助于JFreeChart 插件的支持,Struts 2 可以非常方便地使用JFreeChart 统计图表。
借助于JFreeChart 插件的支持,Struts 2 允许我们只需在Action 中返回一个JFreeChart 实例,而无需处理导出JFreeChart 实例,在页面显示统计图表等细节。
只要我们为Action 指定一个类型为chart 的Result,该Result 将自动生成一个JFreeChart 图表来显示Action 的处理结果。
与Struts 2 的其他插件类似,安装JFreeChart 插件非常容易,只需将Struts 2 的JFreeChart 插件复制到W eb 应用的W EB-INF/lib 路径下即可。
查看struts2-jfreechart-plugin-2.1.6.jar 文件中的struts-plugin.xml 文件时,发现该配置文件中代码如下:<?xml version="1.0" encoding="UTF-8" ?><!-- 指定Struts 2 配置文件的DTD 信息--><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//E N" "/dtds/struts-2.0.dtd"><struts><!-- 让 jfreechart-default 包是由struts-default 包扩展而来--><package name="jfreechart-default" extends="struts-default"><!-- 包里面的定义没有任何改变-->...</package></struts>此处的jfreechart-default 包已经继承了struts-default,因此让我们配置Action 所在包继承jfreechart-default 即可。
第12章Struts2框架技术及应用(第1/4部分)基于Struts1.X版架构的Struts框架技术可以说是目前Java开源社区中最经典的一个Web MVC框架,尽管目前已经推出了许多其它类型的Web MVC框架技术——如Spring MVC 框架、WebWork MVC框架、JSF MVC框架等,从而大大地丰富了J2EE Web应用开发技术实现,使得开发人员在应用系统的开发中有更多的技术实现选择余地。
Apache开源社区为了完善和改进原有的Struts框架技术,对基于Struts1.X版架构的Struts框架重新进行了系统设计和实现,于2007年正式推出了基于WebWork技术体系架构的Struts2.0框架。
Struts2.0框架是原有的Struts项目和Open Symphony社区WebWork2.2项目的合并版本,并集成了这两大流行的MVC框架的各自的优点,这对原有的Struts框架来说是一个质的提升。
因此,Struts2框架是WebWork框架的升级,而不应该是Struts1.X版架构的Struts 框架的升级。
虽然Struts2框架提供了与基于Struts1.X版架构的原有Struts框架的兼容,但已经不是简单地对它的升级。
因为目前的Struts2框架与原先的Struts框架有着完全不同的系统架构设计和API类库。
本章为读者介绍Struts2框架有关的技术及具体的实际应用等方面的内容——这主要包括Struts2框架系统体系架构及各种资源文件、业务控制器Action组件类及拦截器组件技术及应用,最后也还将介绍如何对Struts2框架中的Action 组件类进行单元测试。
1.1Struts2框架体系结构及各种组件1.1.1Struts2框架系统体系架构1、基于Struts1.X版架构的Struts框架优缺点回顾1)Struts框架的主要优点本书在前面的各个章节中,主要介绍了基于Struts1.X版架构的Struts框架技术,该架构体系下的Struts框架系统主要优点可以归纳如下:1)实现MVC架构模式:系统的总体结构清晰,使开发人员只需要关注应用系统本身的业务逻辑的功能实现,而不必再需要考虑系统的总体结构设计是否符合标准MVC架构模式的要求、模型层和表示层是否会产生紧密藕合等方面的问题。
struts2整合JFreechart(java私塾)Struts2结合JFreeChart18.3.1构建结合环境有了前面的基础,接下来可以来把Struts2与JFreeChart结合使用了。
先来构建结合开发的环境,很简单,只有一步工作,把struts2-jfreechart-plugin-2.1.8.1.jar拷入到web工程的lib下就可以了。
18.3.2 Struts2结合JFreeChart来画饼图1:实现ActionJFreeChart作为一种结果类型,可以作为某个Action的Result。
接下来就来编写一个Action,结合着JFreeChart来实现画饼图。
编写这种Action和编写普通的Action大大的不同。
这种Action不需要execute方法,而是需要一个getChart方法,这个方法必须是公有的,且返回一个JFreeChart对象。
示例代码如下:java代码:查看复制到剪贴板打印1.public class PieAction extends ActionSupport {2.private static final Font font = new Font("simsun",Font.ITALIC,22);3.private static DefaultPieDataset getDataset(){4. DefaultPieDataset dataset = new DefaultPieDataset();5. dataset.setValue("本科生", 50);6. dataset.setValue("研究生", 30);7. dataset.setValue("博士", 20);8.return dataset;9. }10.public JFreeChart getChart(){11.final DefaultPieDataset dataset = getDataset();12. JFreeChart chart = ChartFactory.createPieChart("XX公司员工学历比例图",13. dataset,14.true,//是否有标题15.false,//是否有悬浮提示16.false//是否有连接17. );18.19. chart.setTitle(new TextTitle("XX公司员工学历比例图",font));20.21.//重新设置图例的字体,保证汉字的显示22. LegendTitle legend = chart.getLegend();23. legend.setItemFont(font);24.25.//重新设置统计表对象的字体,保证汉字的显示26. PiePlot plot = (PiePlot) chart.getPlot();27. plot.setBackgroundAlpha(0.9f);28. plot.setLabelFont(font);29.30.return chart;31. }32.}观察上面的两个方法getDataset和getChart,其实现方式和前面在Java中使用JFreeChart来画饼图的实现是一模一样的。
第12章Struts2框架技术及应用(第2/4部分)1.1.1Struts2框架各种核心配置文件1、应用Struts2框架时所涉及的各种配置文件在应用Struts2框架时,开发人员需要涉及的配置文件主要有web.xml,struts.xml,struts.properties,struts-default.xml,velocity.properties,struts-default.vm。
当然,其中web.xml和struts.xml是必须要应用的,其它的配置文件可以根据应用的需要进行选择。
这些配置文件的主要功能如下:1)web.xml:包含本应用项目中所有必须的框架组件的web部署描述符的定义和配置(请参考【例12-1】中有关FilterDispatcher组件的配置项目)。
2)struts.xml:主要涉及对result/view类型(该Action处理结果与视图资源之间的映射关系)、action映射、拦截器等与某个Action组件的实现类(代表某个特定的应用)密切相关的Struts2框架中的配置项目。
3)struts.properties:配置在应用Struts2框架时的一些全局工作参数的属性项目。
4)struts-default.xml:该文件是应该被包含在struts.xml中的系统缺省配置项目。
5)velocity.properties:对Velocity框架中所需要的配置项目进行重写的文件。
6)struts-default.vm:相对于Velocity框架中的缺省配置文件。
2、Struts2框架默认的核心系统配置项目及配置文件为了简化Struts2框架在应用开发时的各种配置工作,在struts-default.xml和struts-plugin.xml文件中为开发人员提供了许多默认的系统配置项目、并提供了相应的缺省设置值——包括结果类型(Result Types)、拦截器(Interceptors)、拦截器栈(Iinterceptor Stacks)和包(Packages)等项目,也含有Web应用系统的执行环境有关的配置信息。
3、运行eclipse,选择一个空目录作为工作区(工程结构如下:其中我们要写的Java代码在Java Resource: src(以后直接称src)下,网站根目录内容在WebContent下,类所在根目录是WEB-INF/classes,Eclipse 会自动将build/classes里面已经编译的类同步过去。
向WEB-INF下的lib目录添加如下所列的jar包。
(1)这些包在下载解压后Spring,Struts,Hibernate的lib目录或者dist/module目录下面(如果不在,可以到网上google一把。
列表中mysql-*.jar包是MySQL数据库的JDBC Driver)。
也可以把所有lib和dist 下的jar包拷贝过来(可以在系统复制这些jar包,然后到Eclipse里面选中WEB-INF里面的lib包,然后粘帖就可以了)。
但要注意全拷贝可能会存在冲突,如struts*plugin.jar等包不能引入,否则不能运行。
(2)这些Jar包是:antlr-2.7.2.jarcglib-nodep-2.1_3.jarcommons-beanutils-1.6.jarcommons-chain-1.1.jarcommons-collections-2.1.1.jarcommons-dbcp.jarcommons-digester.jarcommons-logging-1.0.4.jarcommons-logging-api-1.1.jarcommons-pool.jarcommons-validator-1.3.0.jardom4j-1.6.1.jarel-api.jarel-ri.jarfreemarker-2.3.8.jarhibernate3.jarjsf-api.jarjta.jarmysql-connector-java-3.0.14-production-bin.jarognl-2.6.11.jaroro-2.0.8.jarspring-hibernate3.jarspring.jarstruts-config.xmlstruts-core-1.3.5.jarstruts2-codebehind-plugin-2.0.9.jarstruts2-config-browser-plugin-2.0.9.jarstruts2-core-2.0.9.jarstruts2-jasperreports-plugin-2.0.9.jarstruts2-jfreechart-plugin-2.0.9.jarstruts2-jsf-plugin-2.0.9.jarstruts2-pell-multipart-plugin-2.0.9.jarstruts2-plexus-plugin-2.0.9.jarstruts2-sitegraph-plugin-2.0.9.jarstruts2-sitemesh-plugin-2.0.9.jarstruts2-spring-plugin-2.0.9.jarstruts2-struts1-plugin-2.0.9.jarstruts2-tiles-plugin-2.0.9.jartiles-api-2.0.4.jartiles-core-2.0.4.jartiles-jsp-2.0.4.jarindex.jsp的内容如表,我们暂时不分析。
Struts2与JFreeChart整合到JFreeChart的官网下载相关的资源,找到JFreeChart的资源包jfreechart-1.0.14.zip下载并解压。
lib:文件夹里面放的就是JFreeChart的jar包,和所有的JFreeChart依赖的jar包。
Struts2并没有求全而是设计了一个灵活,可扩展的插件体系,以插件的方式,为struts2添加新的功能。
在struts2下载包中的lib目录会发现这里面以struts2作为文件名开头的文件可以被分成两类,一类是struts2的核心包,Eg:struts2-core-2.3.3.jar;而其他的都叫Struts2-xxx-plugin-2.3.3.jar,很显然,后者都是Struts2的插件。
这些插件的存在形式就是普通的jar包。
打开看看会发现只要是插件的jar包,其根目录下都有一个叫Struts-plugin.xml的文件,里面有这个插件相应的配置。
以struts2-jfreeChart-plugin-2.3.3.jar中的struts-plugin.xml为例:Java代码1.<?xml version="1.0" encoding="UTF-8" ?>2.<struts>3.<package name="jfreechart-default" extends="struts-default">4.<result-types>5.<result-type name="chart" class="org.apache.struts2.dispatcher.ChartR esult" default="false">6.<param name="height">150</param>7.<param name="width">200</param>8.</result-type>9.</result-types>10.</package>11.</struts>其实这个struts-plugin.xml实际上就是个struts.xml,至此,可以看到struts2插件的存在方式:struts2-xxx-plugin-版本号。
基于M V C模式能J St r ut s和Spr i ng框架的分析及整合任仁(同济大学软件学院上海200092)【攘要】简单介鲠[J2E E,详述州C模式中N odel,V i ew以及C ont r o l l er之间的关系。
对目前-eb应用开发中的两个流行框架st r u t s和spr i ng进行了分析。
针对这两个框架的优点和不足,提出一个将两种框架分层应用、整合形成的新框架。
新的框架充分利用St r u t s、Spr i ng框柴技术的各层的优点,弥补之前两个框架中的不足。
【关键词】J2E E i f fC模式St r u t s框架Spri ng框架整合中图分类号:TP3文献标识码:A文章编号;1671--7597(2008)I”0051--01一、J2E E胃介J2EE(J ava2E nt er pr i s e E di t i on)是建立在J ava2qz台上的企业级应用的解决方案。
J2E E技术的基础便是Jav a2平台,不但有J2SE平台的所有功能,同时还提供r对EJB,Ser v l et,JSp,xM L等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。
事实上,J2EE已经成为企业级开发的工业标准和首选平台。
J2E E并非一个产品,而是~系列的标准。
=、M vC设计文式M V C英文即(M ode l一V i ew-C ont r ol l e r),即把一个应用的输入、处理、输出流程按照M o del、V i ew、C ont r ol l e r的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。
视图(vi m代表用户交互界面,对于W eb应用来说,可以概括为H TM L界面。
但有可能为X H T M L、X M L和A ppl e t。
模型(M ode l)就是业务流程/状态的处理以及业务规则的制定。
1.1通过代码实例跟我学Struts2框架从入门到精通——Struts2框架与JFreeChart框架相互整合的应用实例1、在项目中添加struts2-jfreechart-plugin-2.0.8.jar包文件在struts2中,默认的struts-default.xml中,并没有包含chart的result-type,它是插件的形式使用的。
把struts2的解压包的lib里找到struts2-jfreechart-plugin-2.0.8.jar,导入到项目的WEB-INF/lib中。
当然,也需要添加JFreeChart有关的系统包文件。
2、在struts.xml里面增加一个chart的result-type。
<result-types><result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/> </result-types>3、编程Action类(需要继承ActionSupport)private JFreeChart chart;public JFreeChart getChart() {return chart;}public String forwardImagesUserInfoStruts2() {Pie3DChartBean onePie3DChartBean=new Pie3DChartBean();String chartTitleString="利用Struts2与JFreeChart相互整合实现的用户统计信息的图表";String categoryName="X轴(分类)文字";String numberString="Y轴(数据)文字";chart=onePie3DChartBean.createOneChart(chartTitleString,categoryName, numberString);return SUCCESS;}在action代码中返回一个JFreeChart对象即可。
第12章Struts2框架技术及应用(第4/4部分)1.1在Web系统中应用Struts2 MVC框架技术1.1.1构建Struts2框架的应用环境1、下载Struts2框架的完整系统包文件读者可以从Apache网站(/downloads.html)下载Struts2框架的完整系统包文件,下载后再进行解压可以看到下图12.4所示的系统包中的各个文件。
图12.4 Struts2框架中的各个目录及文件的图示其中的lib目录为系统包文件的目录,其内的各个文件名称请见下图12.5所示。
而docs 目录为Struts2框架帮助文件所在的目录、apps目录下的各个文件为示例程序。
图12.5 系统包文件lib目录中的各个系统包文件的图示2、在Eclipse工具中构建出Struts2 Web应用项目选择Eclipse中的【文件】菜单中的【新建】菜单项目中的【项目】菜单项,将出现【新建项目】对话框,在该对话框中选择【Web Project】项目,并点击【下一步】按钮。
将出现下图12.6所示的Web应用项目的对话框,在该对话框的【Project Name】输入条中输入项目的名称为“Struts2Web”,在该Web项目的【Context root URL】输入条中输入“/Struts2Web”。
最后的输入结果请见图12.6所示。
图12.6 在Eclipse中构建Struts2 Web应用项目3、添加所需要的Struts2框架有关的各个JAR包文件在本示例Web项目中添加与Struts2框架有关的各个系统JAR包文件,这些JAR包文件主要为freemarker-2.3.4.jar、struts2-core-2.0.1.jar、commons-logging-1.0.4.jar、ognl-2.6.7.jar和xwork-2.0-beta-1.jar等。
这只需要在Eclipse工具中右击Web项目中的WEB-INF/lib目录,并在弹出的快捷菜单中选择【导入】菜单项目,将弹出【导入】向导对话框;在【导入】向导对话框中选中【文件系统】类型的项目后,再点击【下一步】按钮,将出现一个本地文件导入的对话框。
第5 章Web表示层Struts2框架及应用(第1/4部分)目前的Web开发框架主要有请求驱动的Web框架(Request Driven Framework)和事件驱动的Web框架(Event Driven Web Framework)两种不同的类型,前者基于Http请求/响应处理模型而构建,如早期的Struts框架、基于AOP设计思想改进后的Struts2框架和优雅轻便的WebWork框架、Spring MVC框架等都属于此类。
而事件驱动的Web开发框架采用类似于J2SE Swing等图形界面的应用程序开发的思想,将Web视图组件化并根据用户的操作触发不同的事件,服务器端后台系统程序响应这些事件进而驱动整个系统的处理流程。
如Apache 开源社区中的Tapestry框架以及Sun公司的JSF框架等都属于这一类。
本章主要介绍MVC Struts2 框架及系统架构,环境搭建和系统核心配置文件及Action 类的具体编程及应用等方面的内容。
1.1MVC Struts2 框架及系统架构1.1.1Struts2框架系统架构及处理流程1、Struts2框架是对WebWork框架升级的结果Struts2框架是Apache开源社区原有的Struts框架和Open Symphony社区WebWork2框架的合并版本,并集成了这两大流行的MVC框架各自的优点。
因此,Struts2框架是对WebWork框架的升级,而不只是对Struts1.X版架构的早期的Struts框架的系统升级。
Struts 2框架提供了更灵活的控制层和ActionForm表单包装组件实现技术,而与Struts 2框架有关的功能组件主要有Action组件、拦截器组件、国际化本地资源包ResourceBundle、本地语言环境识别Locale和XML配置文件等。
Struts2框架是在WebWork2框架基础上扩展而产生的,与原有的Struts框架相比,它的MVC结构设计更完整,并且可以与FreeMaker等表现层模板工具很好地集成。
第12章Struts2框架技术及应用(第3/4部分)1.1Struts2框架拦截器组件技术及应用1.1.1Struts 2框架拦截器组件技术1、拦截器组件及拦截器组件链1)什么是拦截器组件熟悉Spring AOP技术的读者,对拦截器应该不陌生。
所谓的拦截器是动态拦截Action 组件中的目标方法的调用对象。
拦截器组件为开发人员提供了一种机制,可以使开发者定义在一个Action组件中的目标方法执行前或者后执行所指定的目标代码,当然也可以在一个目标方法执行前阻止该方法的执行。
而如果将若干个不同的拦截器组件相互串接在一起,从而产生出拦截器链(Interceptor Chain)——在Struts 2框架中也称为拦截器栈(Interceptor Stack)。
当被拦截的目标方法被触发调用时,拦截器链中的各个拦截器就会按其定义的顺序被触发调用。
2)拦截器技术的实现原理Struts 2框架中的拦截器技术工作原理其实也很简单,当某个HTTP请求到达前端控制器FilterDispatcher组件时,Struts 2框架运行时系统程序会首先查找有关的配置文件(一般为struts.xml文件),并根据在配置文件中所定义的各个拦截器组件类、实例化相应的拦截器组件对象,然后串成一个列表(List)——也就是拦截器链,最后一个一个地按顺序调用列表中的各个拦截器组件。
2、Struts 2框架中的各种形式的拦截器1)Struts 2框架中的默认拦截器在Struts 2框架中,已经为开发人员提供了功能丰富多样的拦截器组件,而这些默认的拦截器组件已经在struts-default.xml(读者可以在struts2-all-2.0.1.jar或struts2-core-2.0.1.jar系统包文件中找到它)文件中定义出。
请参见图12.3中的Struts2框架中的默认拦截器的声明和定义的struts-default.xml文件内容的图示。
浅谈Java web技术structs2框架的MVC模式Java web技术中,struts2框架是一个非常流行的MVC(Model-View-Controller)模式的Web框架。
它主要用于开发Enterprise Web应用程序。
该框架已经在世界各地的许多企业级应用程序中得到了广泛应用。
在本文中,我们将详细了解MVC模式以及如何使用struts2框架来实现MVC模式。
MVC模式是一种设计模式,用于帮助开发人员更好地组织和管理他们的应用程序。
它将应用程序分为三个主要部分:模型,视图和控制器。
模型表示应用程序的数据和业务逻辑。
视图是用户看到和与之交互的UI。
控制器负责处理用户的输入并相应地更新模型和视图。
在一个标准的MVC框架中,这些三个组件是紧密耦合的。
视图中的UI部分通常直接引用模型和控制器中的数据和逻辑。
控制器通常会直接更新模型,通知视图进行更新。
Struts2框架中的MVC模式也是这样的。
在该框架中,模型通常表示业务逻辑和数据。
视图通常是JSP页面或一些前端框架(如Angular.js或React.js等)。
控制器通常是一个Java类,用于处理用户提交的请求并作出响应。
下面是struts2框架的一些特点:分离逻辑:Struts2框架将逻辑分离到JavaBean中,从而减少了JSP页面中嵌入的Java代码的数量。
组件化:Struts2框架是一个标准JavaEE组件,可以在任何容器中运行。
协作性:Struts2框架可以与其他框架配合使用,例如Hibernate、Spring或MyBatis。
易于扩展:Struts2框架中的组件可以轻松地扩展和更改,从而使应用程序更加灵活。
以下是Struts2框架的一些核心组件:Action类:Action类是一个Java类,负责处理来自用户的请求。
配置文件:配置文件定义Struts2框架的行为。
每个Action和其对应的视图都在配置文件中定义。
拦截器:拦截器是一个 Java类,它可以在Action执行之前或之后执行某些特定任务,例如身份验证、资源管理、日志记录等。
第9章Spring与Struts2、Hibernate框架的整合基础一、搭建Struts框架注:导入的jar包与前面课程介绍的不同二、搭建Spring框架1.添加的类库包括AOP、Core、Persistent Core、JDBC、Web库2.修改applicationContext.xml的存储目录为WebRoot/WEB-INF三、搭建hibernate框架1.建立数据库连接2.搭建框架,注意选择的配置文件为applicationContext.xml而不是hibernate.cfg.xml。
1)设置SessionFactory的Bean id为sessionFactory。
2)设置DataSource的Bean Id为dataSource3)取消“Create SessionFactory class”选项4)导入包commons-pool-1.3到lib文件夹。
四、修改web.xml加入Spring监听器配置,至此所有框架搭建完毕。
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>五、数据库建表六、在工程下创建domain、dao包,反向工程自动生成实体类、配置文件、dao类。
1)反向工程将生成的dao文件2)移动dao类到dao包,修改由于移动dao类后applicationContext.xml出现的错误,并将id名首字母改成小写。
3)为dao类提取出接口。
在工作区右键dao文件-》refactor-》extract interface七、编写service、service接口并配置1)创建service包2)创建service类,定义方法findScoreBySnumber()。
基于Struts2和Spring框架的Web整合开发研究发表时间:2011-04-08T10:32:02.020Z 来源:《价值工程》2011年第3月上旬作者:谢宗旺方旭升[导读] 介绍了最新的基于MVC Model2的Struts2框架,分析了Spring框架的容器特性谢宗旺 Xie Zongwang;方旭升 Fang Xusheng(南京航空航天大学经济与管理学院,南京 211100)(College of Economics & Management,Nanjing University of Aeronautics and Astronautics,Nanjing 211100,China)摘要:介绍了最新的基于MVC Model2的Struts2框架,分析了Spring框架的容器特性,研究了Struts2和Spring的整合开发策略,最后结合实例详细介绍了利用整合框架进行Web应用开发的具体流程和关键技术。
Abstract: The newly- invented Struts2 framework system structure based on MVC Model2 is introduced here while the container feature of Spring framework has been studied. The strategies of integration and development in Struts2 and Spring have been put forward accompanied with an application model which well illustrates the detailed procedure and critical techniques in Web application design utilizing the integrated framework.关键词: Struts2;Spring;MVC;整合开发Key words: Struts2;Spring;MVC;Integration & Development中图分类号:TP311 文献标识码:A 文章编号:1006-4311(2011)07-0168-02 0 引言基于MVC模式的Struts1框架是Web应用开发最为流行的框架,但是它由于采用侵入式的代码设计,代码与JSP/Servlet耦合紧密,代码重用低、测试难,表现层技术只支持JSP。