基于 Struts 2 构建 WebSphere Portal 上的 Portlet 应用
- 格式:docx
- 大小:753.57 KB
- 文档页数:28
MyEclipse开发Struts2详解(一)让迷茫者清晰让清晰者坚定让坚定者辉煌一、准备1、下载安装java,本文使用的名称及版本为为jdk1.6.0-202、下载Tomcat,本文使用的名称及版本为apache-tomcat-6.0.183、下载安装MyEclipse,本文使用的名称及版本为MyEclipse.8.0.GA4、下载Struts2,本文使用的名称及版本为struts-2.1.6二、开发、配置第一个工程启动MyEclipse,新建Web Project工程,取名如为Struts2_0100,并在J2EE Specification Level中选中Java EE 5.0建好工程后,第一步就是要设置你自己的Tomcat,其配置步骤如下:从MyEclipsr的Window菜单开始,依次单击选择Window→Preferences→MyEclips→Servers→Tomcat→Tomcat 6.x在下图中单击Browse选择你的Tomcat,并选中Enable单选按钮。
第二步是配置自己的JDK:Window→Preferences→Java→Installed JRE,如下图:单击Add,添加自己的jdk。
第三步就是配置你的Struts2环境了。
配置时,我们可以借鉴Struts2开发包中的实例。
把事先下载的struts2程序包(本文使用的版本为2.1.6)解压后打开可看到该开发包中有4个文件夹:apps是一些实例文件;docs是帮助文档;lib是开发包;src是开源的源代码。
Apps是一些实例,我们可以借助于这些实例来配置我们自己的开发环境,通过复制粘贴修改即可达到我们自己的目的。
进入apps中,可看到有5个war文件,这些实际是压缩文件,可用解压软件打开。
其struts2-blank-2.1.6.war是最基本的配置,解压后进入apps\struts2-blank-2.1.6\WEB-INF\lib中,选择开发struts2须最小配置的几个包:commons-fileupload-1.2.1.jar(处理文件上传的)、commons-io-1.3.2.jar(是commons-fileupload-1.2.1.jar所依赖的)、commons-logging-1.1.jar(关于日志处理的)、ognl-2.6.11.jar(对象图的表达语言)、struts2-core-2.1.6.jar(struts2的核心包)、xwork-2.1.2.jar(基于xwork的内核)、freemarker-2.3.13.jar()把这个7个jar直接拷贝粘贴到刚才新建的web工程中的:WebRoot/WEB-INF/lib中,此时MyEclipse会自动新建一个引用库夹Referenced Libraries,所拷贝的几个包自动进入其中。
配置说明说明:本配置文件为解决Websphere配置说明,附件中是050927版本web.war包。
1、连接IBM得Websphere控制台;例如:http://10.52.153.28:9060/ibm/console2、以任意用户名登录;3、路径:资源/JDBC提供者,此处可以新建JDBC。
其中必添项如下:选择数据库类型:Oracle选择提供者类型:Oracle JDBC Driver选择实现类型:连接池数据源名称:Oracle JDBC Driver(可以改变)类路径:%ORACLE_HOME%:/ora92/jdbc/lib/ojdbc14.jar(ojdbc14.jar路径)实现类名:oracle.jdbc.pool.OracleConnectionPoolDataSource(为系统默认,不用改变)点击确定或者应用才可以继续4、在JDBC提供者列表中,点击刚才新建得JDBC(Oracle JDBC Driver)。
在页面得右侧其他属性一栏,点击数据源其中必添项如下:名称:OracleDS(可以改变)JNDI名称:jdbc/OracleDS(不可以改变)URL: jdbc:oracle:thin:@10.52.153.28:1521:ora9i点击确定或者应用才可以继续5、在数据源列表中点击刚刚新建得数据源(OracleDS)。
在右侧得其他属性列表中点击定制属性添加2项如下:点击新建名称:user值:ipos_cc点击确定或者应用才可以继续点击新建名称:password值:sysmanager点击确定或者应用才可以继续6、点击保存才可以继续7、此时,配置完成。
可以测试连接注:每次重新配置数据源时,应该重新WebShpere常见问题:1、具有JNDI 名称jdbc/Oracle JDBC Driver DataSource 的资源已存在。
您必须使用唯一的名称。
解决:此时数据源中URL与其他数据源中URL重复。
Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。
再对起进行修改。
删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。
Struts2配置 (1)Action接受请求参数 (6)拦截器 (10)OGNL表达式 (16)输入校验 (22)文件上传下载 (26)Struts2配置1、Struts2框架配置文件Struts2框架按照如下顺序加载struts2配置default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2包里面struts-default.xml 该文件保存在 struts2-core-2.3.7.jarstruts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jarstruts.xml 该文件是web应用默认的struts配置文件struts.properties 该文件是Struts的默认配置文件web.xml 该文件是Web应用的配置文件如果多个文件配置了同一个struts2 常量,则后一个文件中配置的常量值会覆盖前面文件配置的常量值2、Struts2常量配置∙指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法和freemarker 、velocity的输出<constant name="struts.i18n.encoding" value="UTF-8"/>∙该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开<constant name="struts.action.extension" value="action"/>∙设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭<constant name="struts.serve.static.browserCache"value="false"/>∙当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开<constant name="struts.configuration.xml.reload" value="true"/>∙开发模式下使用,这样可以打印出更详细的错误信息<constant name="struts.devMode" value="true" />∙默认的视图主题<constant name="struts.ui.theme" value="simple" />∙与spring集成时,指定由spring负责action对象的创建<constant name="struts.objectFactory" value="spring" />∙该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。
REST Web服务及基于IBM WebSphere应用服务器的构
建实例
韩久正
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2014(0)9
【摘要】表征状态转移(Representational State Transfer,REST)在Web领域已经得到了广泛的接受,是基于SOAP和Web服务描述语言的Web服务的更为简单的替代方法.越来越多的主流Web 2.0服务提供者已经开始了对REST的采用,这些提供者弃用或放弃了基于SOAP和WSDL的接口,而采用了更易于使用、面向资源的REST模型来公开其服务.介绍了REST的基本原理,并通过一个基于IBM WebSphere应用服务器的示例应用程序场景的设计与实现,展示了将JAX-RS应用于WebSphere应用服务器上的应用程序.
【总页数】3页(P54-56)
【作者】韩久正
【作者单位】IBM中国开发中心,北京100094
【正文语种】中文
【相关文献】
1.新一代Web应用服务器软件-WebSphere应用服务器探析 [J], 韩德志;耿红琴
2.85天建成电子商务系统——IBM WebSphere帮助CareToueh构建Web电子商系统 [J],
3.构建高效沟通的桥梁——IBM WebSphere为马自达搭造富有成效的交流平台[J],
4.IBM将自主运算技术应用于WebSphere和DB2——WebSphereApplicationServer5和DB28将协助企业利用计算资源处理需求峰值[J],
5.IBM WebSphere应用服务器性能超越竞争对手64% [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
第5 章Web表示层Struts2框架及应用(第4/4部分)1.1核心配置文件struts.properties及应用1.1.1struts.properties文件作用及常用属性1、struts.properties文件的主要作用Struts 2框架中的struts.properties配置文件为开发人员提供了一种改变Struts2框架系统本身的缺省行为的机制。
在一般的应用场合下,开发人员是没有必要修改这个配置文件中的相关属性项目。
因为在struts.properties文件中所包含的各个属性项目都可以在Web应用系统的部署描述文件web.xml中对FilterDispatcher过滤器组件使用<init-param>初始参数标签进行对应的配置定义,或者在struts.xml文件中使用<constant>标签进行配置定义。
2、struts.properties文件的基本格式struts.properties文件其实是一个标准的Java属性(Properties)文件,该文件包含了一系列的key-value(键一值)对象。
每个key名代表一个Struts 2框架中的属性配置项目,该key名所对应的value就是一个Struts2框架中的属性值。
如struts.properties属性文件中的如下属性配置项目:struts.devMode = true,也就相当于在struts.xml文件中的如下配置项目:<constant name="struts.devMode"value="true"/>,或者相当于在web.xml文件中的FilterDispatcher过滤器组件的如下初始化参数:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><init-param><param-name>struts.devMode</param-name><param-value>true</param-value></init-param></filter>3、struts.properties文件中的常用属性及含义开发者可以在struts.properties配置文件中对某个特定的属性进行修改,新的属性值将会覆盖对应的默认属性项目的值。
第1讲搭建Struts2环境与简单应用开发1. Struts2框架●Struts2由传统的Struts1和WebWork两个经典MVC框架发展而来●Struts2是一个非常优秀的MVC框架2. MVC思想概述MVC思想将应用中各组件按功能进行分类,不同的组件使用不同技术充当,甚至推荐了严格分层,不同组件被严格限制在其所在层内,各层之间以松耦合的方式组织在一起,从而提供良好的封装。
Model1(JSP+JavaBean):JSP页面接收处理客户端请求,对请求处理后直接做出响应。
用少量的JavaBean来处理数据库连接、数据库访问等操作。
JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性低,增加了应用的扩展和维护的难度。
Model2(JSP+Servlet+JavaBean):属于MVC架构的设计模式。
MVC思想将一个应用分为三个基本部分:Model(模型)、View(视图)、Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性。
MVC有如下特点:●多个视图对于一个模型,一旦模型发生变化,易于维护;●模型返回的数据与显示逻辑分离;●应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性;●控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。
因此,控制层可以说是包含了用户权限的概念;●MVC更符合软件工程化管理的精神。
3. Struts2的下载和安装下载并搭建Struts2环境:(1).下载Struts2.2.1;(2).找到开发Struts2应用需要使用到的jar文件;(3).编写Struts2的配置文件;(4).在web.xml中加入Struts2框架的启动配置。
开发Struts2最少需要的jar文件:(1).struts2-core-2.2.1.1.jar:Struts2框架的核心类库;(2).xwork-core-2.2.1.1.jar:XWork类库,Struts2在其上构建;(3).ognl-3.0.jar:对象图导航语言(Object Graph Navigation Language),一种功能强大的表达式语言,主要用于读写对象的属性;(4).freemarker-2.3.16.jar:Struts2UI标签的模板使用FreeMarker编写;(5).commons-fileupload-1.2.1.jar:文件上传组件,2.1.6以后版本必须加入此文件;(6).commons-io-1.3.2.jar:IO输入输出流组件,主要完成文件的读写功能;(7).javassist-3.7.ga.jar:Javassist是一个开源的分析、编辑和创建Java字节码的类库。
Struts2教程1:第一个Struts2程序在本系列教程中我们将学习到Struts2的各种技术。
在本教程中使用的工具和程序库的版本如下:开发工具:MyEclipse6Web服务器:Tomcat6Struts版本:Struts2.0.11.1JDK版本:JDK1.5.0_12J2EE版本:Java EE5.0在本系列教程中Web工程的上下文路径都是struts2,如果在Web根目录有一个index.jsp文件,则访问路径如下:http://localhost:8080/struts2/index.jsp由于MyEclipse6目前并不支持Struts2,所以我们需要到去下载Struts2安装包。
要想正常使用Struts2,至少需要如下五个包(可能会因为Struts2的版本不同,包名略有差异,但包名的前半部是一样的)。
struts2-core-2.0.11.1.jarxwork-2.0.4.jarcommons-logging-1.0.4.jarfreemarker-2.3.8.jarognl-2.6.11.jarStruts2虽然在大版本号上是第二个版本,但基本上在配置和使用上已经完全颠覆了Struts1.x的方式(当然,Struts2仍然是基于MVC模式的,也是动作驱动的,可能这是唯一没变的东西)。
Struts2实际上是在Webwork基础上构建起来的MVC框架。
我们从Struts2的源代码中可以看到,有很多都是直接使用的xwork(Webwork的核心技术)的包。
既然从技术上来说Struts2是全新的框架,那么就让我们来学习一下这个新的框架的使用方法。
如果大家使用过Struts1.x,应该对建立基于Struts1.x的Web程序的基本步骤非常清楚。
让我们先来回顾一下建立基于Struts1.x的Web程序的基本步骤。
1.安装Struts。
由于Struts的入口点是ActionServlet,所以得在web.xml中配置一下这个Servlet。
2008 年 2 月 28 日 Struts 2 是 MVC 框架发展的最新阶段。Struts 2 从WebWork发展而来,而不是由 Struts 1 演化而来,因此利用 Struts 2 开发和部署应用程序有很多不同于 Struts 1 的地方,尤其是在开发和部署Porlet方面,Struts 2 更是有着以往Portlet应用程序开发方式所无法比拟的优势。本文的目的就是通过在 IBM 的WebSphere Portal Server 上开发和部署一个基于 Struts 2 的Porlet应用,向读者介绍利用 Struts 2 进行Portlet应用开发的优势和关键流程。
概述
WebSphere Portal Server5.1 及以上版本支持两种Portlet API:第一种是 IBM Portlet,这种Portlet API 是WebSphere Portal Server 专有的一种Portlet API;第二种是符合 JSR168 标准的Portlet API。由于 JSR168 是一个开放的标准,因此符合 JSR168 标准的Portlet将更易于移植。 IBM 为 IBM Portlet API 和 JSR168API 分别实现了基于 Struts1 的Portlet开发框架,由于基于 Struts1,这两种Portlet框架 API 同Portlet API 耦合紧密,尤其需要指出的是由于无论 IBM Portlet还是在WebSphere Portal Server 上实现的 JSR168 标准的Porlet API, 它们的接口都直接依赖于PortletRequest/PortletResponse对象,这就使得程序移植和单元测试等变得比较困难。此外,我们在使用 Struts1 开发 Servlet 应用时,习惯于将数据存放在 request 作用域中,通过页面的跳转将数据呈现到jsp视图页面。但是,这种做法在portlet开发中是不可行的。与 servlet 的生命周期有所不同,portlet存在操作响应阶段和呈现阶段。在portlet操作响应阶段存放在 request 作用域的变量,在呈现阶段就会失效。在原有 API 上解决这个问题既费时又不优雅,而 Struts 2 对Portlet的支持将能够很好的解决这些问题。 本文就是要通过一个简单的示例应用程序的开发和部署过程,来展示 Struts 2 怎样解决旧有的Portlet API 所无法克服的困难的。 本文的重点不在于开发一个 Struts2 Web 应用程序,而在于开发一个作为Portlet的 Struts2 应用程序所需的的实现和配置。读者可以了解到如何利用 Struts 2 来创建一个Portlet,这个Portlet将完全独立于其所开发和部署的平台。 在示例应用程序的开发和部署中用到了下列产品:
IBM WebSphere Portal Server 集成测试环境 5.1
IBM WebSphere Application Server Version 5.1
Struts 2 Full Distribution 2.0.11
IBM Rational Application developer 7(RAD7)
Porlet示例程序设计概述 示例应用程序是一个简单的用户登录程序。合法的用户将跳转到的登录成功页面,登录失败的用户则跳转到登录失败页面,并被要求输入正确的用户名和密码。用户可以自由的在Portlet的 View、Edit 和 Help 模式之间进行切换。应用程序视图部分分为以下几部分:
登录页面(login.jsp)——提示用户输入正确的用户名和密码,登录应用程序。
登录成功页面(success.jsp)——提示用户登录成功。
登录失败页面(fail.jsp)——提示用户登录失败,提示用户输入正确的用户名和密码。
Edit 页面(edit.jsp)——用户进入 Edit 模式后的页面。
Help 页面(help.jsp)——用户进入 Help 模式后的页面。
程序主类——Login.java。 图 1. 程序初始页面 下图是本文示例的 Action 与页面的交互图: 图 2. Action 与页面的交互图 利用 Struts2 实现Portlet 在本文中,使用 Struts2 开发Portlet应用需要经历以下步骤: 1. 使用 RAD7 建立开发环境 2. 生成 web.xml 配置文件 3. 生成 portlet.xml 配置文件 4. 编辑 jsp 文件 5. 应用 Struts2 6. 部署 Portlet 应用程序 7. 访问 Portlet 应用
使用 RAD7 建立开发环境 在 Rational Application developer 7 中启动一个Portlet项目,需要遵循下列步骤: 1. 选择新建一个Portlet项目,如图 3 所示: 图 3. 新建一个Portlet项目
2. 输入项目名 Struts2TestPortlet,目标运行时选择WebSphere Portal v5.1 或者更高版本,注意Portlet API 选择 JSR 168 Portlet, 注意勾掉创建portlet选项,点击完成按钮。如图 4 所示: 图 4. 设置项目属性 生成portlet项目及其结构如图 5 所示: 图 5.portlet 项目及其结构 3. 接下来到 Apache 官方网站下载 strtus2 的完整版 (Full Distribution)。将下载到的 Zip 文件解压缩。本文中使用的版本为 struts-2.0.11。将 struts-2.0.11 j4 文件夹下的 backport-util-concurrent-3.0.jar, retrotranslator-runtime-1.2.2.jar,struts2-core-j4-2.0.11.jar,xwork-j4-2.0.4.jar 和 lib 目录下的 ognl-2.6.11.jar, freemarker-2.3.8.jar 文件拷贝到portlet web 工程的 WEB-INF/lib 目录下。 在这里需要注意的是从 j4 文件夹下拷贝过来的 JAR 包,这是因为WebSphere Portal Sever 5.1 基于 jdk1.4,而 j4 文件夹下的内容就是 Struts2 支持 JDK1.4 的 JAR 文件。
生成 web.xml 配置文件 双击 WEB-INF/web.xml,打开 web 部署描述符界面,如图 6 所示: 图 6.web 部署描述符界面
切换到过滤器选项卡,点击添加按钮,创建一个过滤器,名称设定为 Struts2 Filter, URL 映射为 /*,并且使用现有的过滤器类 org.apache.struts2.dispatcher.FilterDispatcher,如图 7 所示。点击完成
图 7. 创建一个过滤器 生成的 web.xml 描述文件内容如下所示: web.xml 描述文件内容
"http://java.sun.com/dtd/web-app_2_3.dtd"> Struts2TestPortlet Struts2 Filter Struts2 Filter Struts2 Filter org.apache.struts2.dispatcher.FilterDispatcher Struts2 Filter /* index.html index.htm index.jsp default.html default.htm default.jsp
生成 portlet.xml 配置文件 双击 portlet.xml,打开Portlet部署描述符界面,切换到portlet选项卡,如图 8 所示: 图 8.Portlet 部署描述符界面
点击添加按钮,添加一个portlet,输入portlet类型 org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher,确定,如图 9 所示:
图 9. 添加portlet