电脑频道 手机频道
网络技术 路由器
电脑系统 电脑蓝屏
游戏攻略 明星八卦
电脑问答 最新更新
首页 > 文章列表页>正文 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。

struts helloword struts2 helloword

【2020-10-11 17:16:33】 来源:网络 作者:福州电脑之家 评论:

struts helloword

如何用Guice整合Struts2?

1.Guice简介 2.Hellowold 简介:本文为如何用Guice进行DI和如何整合Stuts2 1. 简介 Guice是Google推出的一款DI框架,因其优秀荣获了Jolt大奖。

和Sping相比,要轻量很多。

运行时只要指定一个配置类,实现其com.google.inject.Module接口,指定接口和实现类即可。

需要的基础ja包有 Guice需要的ja包,如果是we应用,需要guice-sevlet-2.0.ja,整合Stuts2则需要guice-stuts2-plugin-2.0.ja aopalliance.ja guice-2.0.ja guice-sevlet-2.0.ja guice-stuts2-plugin-2.0.ja Stuts2需要的ja包 commons-fileupload-1.2.1.ja commons-io-1.3.2.ja commons-logging-1.0.4.ja feemake-2.3.13.ja ognl-2.6.11.ja stuts2-coe-2.1.6.ja xwok-2.1.2.ja Guice与Sping的对比SpingGuice使用XML使用将类与类之间的关系隔离到xml中,由容器负责注入被调用的对象,因此叫做依赖注入不使用xml,将类与类之间的关系隔离到Module中,声名何处需要注入,由容器根据Module里的描述,注入被调用的对象。

使用Annotation使用 支持自定义Annotation标注,对于相同的接口定义的对象引用,为它们标注上不同的自定义Annotation注释,就可以达到同一个类里边的同一个接口的引用,注射给不同的实现,在Module里用标注做区分,灵活性大大增加。

使用Annotation也未必是好事,范型等新特性也未必是好事,目前大多的服务器均不支持jdk1.5,wls要9以前才支持,而目前的客户由于价格原因也很少选用wls9的,至少我们做过的项目中都没有。

功能再强,客户不需要,何用?运行效率装载sping配置文件时,需解析xml,效率低,getBean效率也不高,不过使用环境不会涉及到getBean,只有生产环境的时候会用到getBean,在装载sping应用程序的时候,已经完成全部的注射,所以这个低效率的问题不是问题。

使用Annotation,cgli, 效率高与sping最明显的一个区别,sping是在装载sping配置文件的时候把该注入的地方都注入完,而Guice呢,则是在使用的时候去注射,运行效率和灵活性高。

类耦合度耦合度低,强调类非侵入,以外部化的方式处理依赖关系,类里边是很干净的,在配置文件里做文章,对类的依赖性极低。

高,代码级的标注,DI标记@inject侵入代码中,耦合到了类层面上来,何止侵入,简直侵略,代码耦合了过多guice的东西,大大背离了依赖注入的初衷,对于代码的可维护性,可读性均不利类编写时需要编写xml,配置Bean,配置注入只需声明为@inject,等着被注入, 最后在统一的Module里声明注入方式仅支持IOC否,sping目前已经涉猎很多部分是,目前仅仅是个DI容器是否易于代码重构统一的xml配置入口,更改容易配置工作是在Module里进行,和sping异曲同功支持多种注入方式构造器,sette方法Field,构造器,sette方法灵活性1,如果同一个接口定义的引用需要注入不同的实现,就要编写不同的Module,烦琐2,动态注入如果你想注射的一个实现,你还未知呢,怎么办呢,sping是没办法,事先在配置文件里写死的,而Guice就可以做到,就是说我想注射的这个对象我还不知道注射给谁呢,是在运行时才能得到的的这个接口的实现,所以这就大大提高了依赖注射的灵活性,动态注射。

与现有框架集成度1, 高,众多现有优秀的框架(如stuts1.x等)均提供了sping的集成入口,而且sping已经不仅仅是依赖注入,包括众多方面。

2, Sping也提供了对Hienate等的集成,可大大简化开发难度。

3, 提供对于om,mi,wesevice等等接口众多,体系庞大。

1,可以与现有框架集成,不过仅仅依靠一个效率稍高的DI,就想取代sping的地位,有点难度。

配置复杂度在xml中定位类与类之间的关系,难度低代码级定位类与类之间的关系,难度稍高 写了一个demo,对于简单的应用Guice还是比Sping方便很多 └─com └─geysh └─guice ├─action │ UseAction.java │ ├─config │ ModuleConfig.java │ ├─model │ Use.java │ └─sevice │ UseSevice.java │ └─impl UseSeviceImpl.java 代码见附件 Guie加载的原理是 先去调用自己实现Module接口的类,这个类类似Sping的applicationcontext.然后调用configue函数的 inde进行绑定,相当于sping里面的ef绑定,然后绑定完后就在需要注入的放指定 @Inject 进行注入,主要有构造函数注入,方法注入,字段注入。

一般而言用方法注入 本教程的Use为实体类,仅仅有一个字段useName; pulic inteface UseSevice { void invoke(Use use); } 对于接口实现 pulic void invoke(Use use) { use.setUseName("Name : " + use.getUseName()); 当然最重要的是action @Inject pivate UseSevice useSevice; @Inject pivate Use use; 本教程采用字段注入 由于不采用Stuts2的自身的DI,因此要指定为guice

Struts怎么样使用

【1】如果以前学习过其它的MVC框架,如struts1,spring mvc,webwork, 那就好办,直接在apache的官方网站下载apache的struts2的包,里面包括API,examples,lib都有,把例子代码放进tomcat里运行就可以了,接着一一看效果,根据代码学习,掌握得很快。

apache官方网站:www.apache.org 打开后发现显示很乱,apache就这样,看似乱七八糟的网站,东西都是精华。

在主页找到struts的链接,进去后接着就可以看到struts1 struts2,选择struts2就可以找到相应的下载了。

建议:如果英文比较好,一边看一边练习,还是比较好学的。

【2】如果以前没有MVC方法的学习或使用经验(个人感觉你应该没怎么学习或使用过MVC),那就需要一步步来学习了,首先,在网站上找一个struts2的入门教程,文档类的也好,视频类的也好,搭建起第一个实例,慢慢领会里面的设计思想与编程思路,吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),经过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着可以做一些针对于自定义拦截器的实现来深化对Struts2的认识。

此时,你已经达到企业中使用的级别了,接下来就可以玩一些SSh整合(其实这个内容跟Struts2没多大关系,但有一些细节,需要掌握一下)。

...

谁有成都软通动力软件测试笔试题2014

1 . 软件测试是软件开发的重要环节,进行软件测试的目的是( ) A )证明软件错误不存在 B )证明软件错误的存在 C )改正程序所有的错误 D )发现程序所有的错误 2 .对于软件质量描述不正确的是: ( ) A )高质量的过程产生高质量的产品 B )软件质量是测试人员测试出来的 C )软件质量是设计和规划出来的 D )项目阶段结束意味着产品质量达到了预期的标准 3 .对于软件测试描述不正确的是: ( ) A )软件测试无法找到程序当中的所有缺陷 B )测试工程师需要在最短时间内完成最有效的测试 C )软件测试工程师只要了解需求就可以了 D )测试工程师也需要了解编码知识 4 .测试工程师需要了解下面哪些知识: ( ) A )项目管理知识 B )测试知识 C )需求管理 D )以上都包括 5 .检查软件产品是否符合需求定义的过程称为: ( ) A )确认测试 B )集成测试 C )性能测试 D )功能测试 6 .评审是对软件进行表态测试的一种方法,下述结论中。

哪个是与软件评审无关的内容: ( ) A )尽量发现错...1 . 软件测试是软件开发的重要环节,进行软件测试的目的是( ) A )证明软件错误不存在 B )证明软件错误的存在 C )改正程序所有的错误 D )发现程序所有的错误 2 .对于软件质量描述不正确的是: ( ) A )高质量的过程产生高质量的产品 B )软件质量是测试人员测试出来的 C )软件质量是设计和规划出来的 D )项目阶段结束意味着产品质量达到了预期的标准 3 .对于软件测试描述不正确的是: ( ) A )软件测试无法找到程序当中的所有缺陷 B )测试工程师需要在最短时间内完成最有效的测试 C )软件测试工程师只要了解需求就可以了 D )测试工程师也需要了解编码知识 4 .测试工程师需要了解下面哪些知识: ( ) A )项目管理知识 B )测试知识 C )需求管理 D )以上都包括 5 .检查软件产品是否符合需求定义的过程称为: ( ) A )确认测试 B )集成测试 C )性能测试 D )功能测试 6 .评审是对软件进行表态测试的一种方法,下述结论中。

哪个是与软件评审无关的内容: ( ) A )尽量发现错误 B )检查软件文档 C )根据评审标准 D )依靠测试信息 7 .路径测试是整个结构测试的重要组成,但在研究路径测试时,通常又是使用程序控制流 图来代替( ) A )程序框图 B )结构图 C )数据流图 D )程序流程图 8 .软件测试类型按开发阶段划分是( ) A )需求测试、单元测试、集成测试、验证测试 B )单元测试、集成测试、确认测试、系统测试、验收测试 C )单元测试、集成测试、验收测试、确认测试、验收测试 D )调试、单元测试、集成测试、用户测试 9 .下述说法错误的是( ) A )单元测试又称为模块测试,是针对软件测试的最小单位 — 程序模块进行正确性检验的测 试工作 B )集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、 弟增的测试。

C )集成测试是检验程序单元和部件的接口关系,逐步集成为符合概要设计要求的程序部件 或整个系统。

D )系统测试是真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、 网络、系统软件和支持平台等正确配置与连接,并满足用户需求 10 .下列关于 alpha 测试的描述: ( 1 ) alpha 测试需要用户代表参加 ( 2 ) alpha 测试不需要用户代表参加 ( 3 ) alpha 测试是系统测试的一种 ( 4 ) alpha 测试是验收测试的一种 A ) ( 1 ) ( 3 ) B ) ( 2 ) ( 3 ) C ( 1 ) ( 4 ) C ( 2 ) ( 4 ) 21 .关于自动化测试描述正确的是( ) A )引入自动化测试可以降低测试成本 B )软件产品测试适合自动化测试 C )自动化测试工具能够完成所有的自动化测试 D )自动化测试脚本同样需要进行验收和确认 22 .关于软件性能简述不正确的是( ) A )在看代码完成之前,无法进行与性能有关的工作 B )性能是设计和规划出来的,而不是测试出来的 C )性能测试在很多情况下不能发现特定的性能缺陷 23 . LoadRunner 中关于“关联( Conelation ) ”描述错误的是( ) A )关联分为手动管理和自动关联 B )关联是对提交数据的参数化过程 C )关联是为了解决服务器端生成数据后期使用的问题 D )关联函数是一种注册类函数 24 . LoadRunner 中 Controller 对于虚拟用户描述正确的是( ) A )虚拟用户并发测试可以做到绝对并发 B )在一台计算机上可以实际模拟任意多的虚拟用户 C )虚拟用户可分布在多台客户端上 D )虚拟用户数和服务器端压力呈线性关系 25 .关于性能测试,描述错误的是( ) A )性能测试是对系统的在性能方面的测量工作。

B )响应时间是系统重要的性能指标,原则上可以用秒表手工测试 C )思考时间是指系统停顿的时间 D )吞吐量是指系统在单位时间内处理事务的能力 26 .下列哪些概念不属于性能测试( ) A )测量相应时间 B )可伸缩性 C )吞吐量 D )可维护性 27 .测试一个 WEB 应用性能,可能会用到的协议有( ) A ) HTTP B ) HTTP/HTTPS C ) HTTP/HTTPS/SOAP D ) HTTP/HTTPS/SOAP/UDP 28 .单元测试范围包括( ) A )方法间集成 B )平行类测试 C )类簇测试 D )以上都是 29 .关于 JUNIT ,描述错误的是( ) A ) JUNIT 是 Java 语言的单元测试框架 B ) ...

可以帮我看看struts2里为什么报错找不到action吗

在jsp页面中使用struts2标签的方法是在jsp页面上引入的struts2标签库。

1、完整的index.jsp代码:pageEncoding="ISO-8859-1"%>Basic Struts 2 Application - Welcome欢迎使用 Struts 22、struts.xml配置:/HelloWorld.jsp这样就可以点击 Hello World跳转到HelloWorld.jsp页面了。

struts2.0中如何实现struts1.2中dispatchaction的功能

有两种方法:一 动态方法调用如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法。

如下:public class HelloWorldAction{private String message;....public String execute() throws Exception{this.message = "我的第一个struts2应用";return "success";}public String other() throws Exception{this.message = "第二个方法";return "success";}}假设访问上面action的URL路径为: /struts/test/helloworld.action要访问action的other() 方法,我们可以这样调用:/struts/test/helloworld!other.action如果不想使用动态方法调用,我们可以通过常量struts.enable.DynamicMethodInvocation关闭动态方法调用。

二 使用通配符定义action/WEB-INF/page/hello.jsppublic class HelloWorldAction{private String message;....public String execute() throws Exception{this.message = "我的第一个struts2应用";return "success";}public String other() throws Exception{this.message = "第二个方法";return "success";}}要访问other()方法,可以通过这样的URL访问:/test/helloworld_other.action

分享:
下载
发表关于《struts helloword struts2 helloword》的评论

福州电脑网(福州iThome)专业电脑/计算机学习网站.提供电脑维修知识,包括计算机软件/硬件维修知识,路由器/交换机/网络设置,电脑蓝屏,网络/it知识学习等等电脑技术学习资料.

免责声明:本站所有信息内容仅供参考,如有冒犯您的权益请联系我们删除!请大家注意:本站删帖完全免费。邮箱:

Copyright (C) FziThome.com, All Rights Reserved.

版权所有 闽ICP备14002611号-3