java bean就是把自己的数据成员封装起来, 让外界不能直接 *** 作数据成员; 而只能通过bean提供的get 和 set方法进行 *** 作,保证了数据安全性。可以理解为:get就是把对象中的值拿出来, set就是把某个值放到对象中去。
比如:
public class LoginInfoBean {
private String time; //时间
private String ip; //IP
private String account; // 账号
public String getTime() {
return time;
}
public void setTime(String time) {
thistime = time;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
thisip = ip;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
thisaccount = account;
}
}
---------------------------------------------------------------
关于如何在servlet中取得数据:
首先要明白,我们提交到servlet的数据,需要走servlet的doGet或者doPost方法。
如果你不用框架,只用纯粹的servlet,在servlet的doGet和doPost方法中因为只有两个参数,也就是>
1、web容器启动,开始扫描所有被指定的spring配置文件。 2、根据配置文件,实例化所有的bean对象,以java语法创建。 3、加载spring配置文件配置的对象依赖关系,将有依赖关系的bean注入到相应的对象中。 你这里报错是因为,datasource对象还没有
可以用到java反射机制,Class和Method这些类。 动态调用的方法:agetClass()getMethod(str, new Class[]{})invoke(a, new Object[]{})
其中,a为类的对象,str为要被调用的方法名 。
1、agetClass()得到aclass 对象 ;
2、getMethod(str, new Class[]{})得到a对象中名为str的不带参数的方法;
如果str方法带参数如str(String s, int i),就要这样写getMethod(str, new Class[]{Stringclass,intclass}) 。
3、invoke(a,new Object[]{})调用方法,第一个参数是要调用这个方法的对象,如果方法是static的,这个参数可以为null
如果调用有参数的方法str(String s, int i),应该这样写:invoke(a,new Object[]{"jimmy", 1})。
用orgjson以及谷歌提供gson来解析json数据的方式更好一些。
安卓下通常采用以下几种方式解析json数据:
1、orgjson包(已经集成到androidjar中了)
2、google提供的gson库
3、阿里巴巴的fastjson库
4、json-lib
以Google出品的Gson为例,具体步骤为:
1、首先,从 codegooglecom/p/google-gson/downloads/list下载GsonAPI:
google-gson-171-releasezip 把gson-17jar copy到libs(项目根目录新建一个libs文件夹)中。 可以使用以下两种方法解析JSON数据,通过获取JsonReader对象解析JSON数据。
代码如下:
String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
JsonReader reader = new JsonReader(new StringReader(jsonData));
readerbeginArray();
while(readerhasNext()){
readerbeginObject();
while(readerhasNext()){
String tagName = readernextName();
if(tagNameequals("username")){
Systemoutprintln(readernextString());
}
else if(tagNameequals("userId")){
Systemoutprintln(readernextString());
}
}
readerendObject();
}
readerendArray();
}
catch(Exception e){
eprintStackTrace();
}
2、使用Gson对象获取User对象数据进行相应的 *** 作:
代码如下:
Type listType = new TypeToken<LinkedList<User>>(){}getType();
Gson gson = new Gson();
LinkedList<User> users = gsonfromJson(jsonData, listType);
for (Iterator iterator = usersiterator(); iteratorhasNext();) {
User user = (User) iteratornext();
Systemoutprintln(usergetUsername());
Systemoutprintln(usergetUserId());
}
3、如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:
代码如下:
String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gsonfromJson(jsonData, Userclass);
Systemoutprintln(usergetUsername());
Systemoutprintln(usergetUserId());
*** 作简单,要求硬件配置低。
量级主要是看容器的依赖性所决定的,依赖性越小,越轻量,
Jim Rivera是 BEA 公司的一位技术主管,负责通过技术传播推广BEA 产品的应用。Jim 于1999 年加入BEA,担任 BEA WebLogic Server 6、7 和8 版本的技术产品经理。在这个岗位上,Jim 负责各种服务器组件的策略和路线图,包括 EJB、Web services、XML 和集群。Jim 在dev2dev 上有一个blog。dev2dev 通过电子邮件采访了 Jim,获得他对轻量级Java、应用程序框架和持久性框架,以及它们与应用服务器上企业计算的关系的看法。
轻量级Java
dev2dev: 您是如何定义“轻量级Java”的?
Jim: 我认为,在Java 应用程序开发环境中,“轻量级Java”主要是指两个东西:简化的编程模型和更具响应能力的容器。轻量级Java 旨在消除与传统 J2EE API 有关的不必要的复杂性和限制。它也将缩短应用程序的部署时间,这对于支持开发最佳实践(比如频繁单元测试)非常重要。
dev2dev: 对您来说哪种轻量级技术是最重要的,轻量级Java 对终端用户有什么帮助?
Jim: 很显然,控制反转 (IoC)模式在这个领域有着重大的影响。使用IoC,开发人员不需要编写复杂的代码来执行查询、处理基础架构异常或管理连接,就能够解决对象依赖性问题。这有助于简化代码、将业务逻辑与基础架构分离,从而使应用程序更易于维护。
轻量级Java 的另一个关键特征是,它不会强迫业务对象遵循平台特定接口。这允许开发人员在普通旧式Java 对象(POJO)中实现业务逻辑,从而提高生产率。
与具体的类相反,当把开发的最佳实践与界面相结合时,这些特性也使得对代码进行单元测试容易得多。由于业务逻辑实现在 POJO中,所以不再需要将对象部署到重量级容器中以在单元测试中练习它。因此,将对象宿主在诸如 JUnit 之类的简单测试环境中和为快速迭代单元测试“模拟”外部依赖性就变得微不足道了。
dev2dev: 作为一个技术传播者,您一定目睹了许多新的和已部署的技术。您是否看到了转向轻量级技术的趋势?
Jim: 当然。在早期的采用者当中,明确地存在转向诸如 Spring、Hibernate 和Beehive 之类框架的趋势。它在应用程序的构建方式上有了明显的不同,对未来 J2EE技术的方向有着积极的影响。例如,EJB 30就基本上是以使得轻量级Java盛行的概念为基础的。
重量级
dev2dev:人们在想起应用服务器供应商时,通常把它们置于“重量级阵营”。我想您正在努力改变这种状况,对吧?换言之,许多人认为应用程序供应商已经在实现重量级组件(比如 EJB 20)上付出了很大的代价,它们不愿意轻易放弃这些成果。
Jim: 首先,我认为没有理由放弃在 EJB 上的现有投资,因为在某些场景中它仍然是最好的技术,例如当您希望通过 RMI远程公开业务服务时。当然,诸如 EJB 之类的开放标准在保护客户投资方面的价值也不能低估。
已经说过,我觉得人们经常过分强调 EJB在应用服务器中的实际价值。尽管这一点未必对所有的应用服务器供应商都适用,但是 BEA 只投入了相对较少的一部分开发资源来支持 J2EE API。我们工作最主要的目标是为宿主应用程序构建最可靠、可伸缩和容错的内核。这些品质以及分布式事务服务、高速消息传递、遗留系统集成、高级 Web 服务、配置管理、诊断和故障排除和高级安全性,代表了 WebLogic Server 的真正价值,而且对总体拥有成本(TCO)有着巨大的影响。幸运的是,这些附加值对基于Spring 或Beehive 的应用程序的相关性和适用性与采用EJB 构建的应用程序是一样的。虽然轻量级Java 技术使得应用程序的开发和维护更容易,但是它们不会代替真正高端应用服务器的品质。实际上,我们认为轻量级Java 与WebLogic Server 是一致的。
dev2dev: BEA 有没有一个轻量级 Java 策略?BEA 实现轻量级 Java 的方法是什么?
Jim: 我们的策略是接纳所有有利于提高开发人员生产率、在市场上为部署这些技术提供最佳平台的技术。轻量级 Java有助于降低开发成本,WebLogic Server 则有助于降低运营成本,它们是一个非常强大的组合。
应用程序框架
dev2dev:由BEA赞助的Beehive项目显然是一个轻量级 Java组件模型。您能否谈谈关于 Beehive 的情况,以及它在你们的整个策略中的地位?
Jim: Beehive是一个应用程序框架,致力于使J2EE 应用程序和基于SOA 的应用程序的开发更容易,它基于我们发布WebLogic Workshop 的经验。它基于 POJO 和用于配置依赖性、服务质量等的元数据提供一个编程模型。元数据以 J2SE 50 代码注解和外部 XML文件的形式获得支持。存在一些用于访问 J2EE资源、定义业务和 Web 服务以及基于 MVC模式开发 Web 应用程序的组件。在我们努力提高开发人员生产率、巩固 Java 整体市场的过程中,Beehive 是非常关键的一部分。
dev2dev: Beehive 可以被认为是一个“应用程序框架”。在Spring Framework中提供了一种非常流行的轻量级 Java 方法。Spring(以及其他类似的框架)对于 BEA 有多重要?
Jim: 任何能够帮助我们的客户提高生产率的东西都对我们非常重要。我们欢迎并且接纳这些技术,在适当的时候也可以在技术层面上集成或者共享这些技术。
dev2dev: 你们考虑过明确支持这些框架吗?
Jim: 就像我原来说过的,WebLogic Server具有很多方面的特性,能够提供基于轻量级 Java 技术的应用程序。许多都是隐含的,然而在某些情况下,最小量的集成工作就能为轻量级 Java 开发人员提供重要的价值。举个例子,当今存在的一些适配器允许 Spring 应用程序使用 WebLogic Server 的分布式事务能力,无需改变任何应用程序代码。我们正在调查许多其他的机会,当然也一直在倾听客户的需求。
dev2dev: 我们已经看到轻量级框架对EJB 3 的一些影响。您认为这会扩展到J2EE的其他方面吗?
Jim: 是的。我认为 JSR 175(即Java元数据)对于简化 J2EE 编程模型是一种关键的支持技术。EJB 30使用了它,而且它也是 JSR 181(即Web Services 元数据,一个BEA 倡导的规范)的基础。没有理由相信它会就此停止。
轻量级持久性
dev2dev: IoC 容器看起来是轻量级 Java 的中心。另外的一个关键因素是POJO 和轻量级持久性。您能针对这个问题谈谈看法吗?
Jim: 同样,共同的主题是简化编程模型。没有比POJO更简单的了。当然,企业开发要求我们有能力应用附加的品质,比如持久性规则、事务语义和 POJO 的安全约束。盛行很广的方式是在元数据中定义这些品质,要么作为代码注解,要么放在外部文件中。
dev2dev: 您是否觉得因为有多种方法用于完成持久性这样的事情而存在一些危险?比如,我们很快将会有EJB 2、EJB 3、JDO、Hibernate,等等。
Jim: 我认为这只是成熟领域的一个实际情况。多年来,J2EE 规范没有完全涵盖这个特定的领域,自然就会导致其他规范的出现。就我所知道的在 JCP中发生的事情,我们似乎正在走向统一。这对于整个行业来说是一件好事。
未来
dev2dev: 您能预见一下轻量级 Java和 BEA 的未来吗?
Jim: 我们将会继续活跃于这个领域中,既通过诸如 Apache Beehive、XMLBeans、Eclipse和JCP 之类的渠道推动创新,又吸收诸如 Spring 这样的其他领先技术,并且为了客户的利益而展开协作。
艾伯特爱因斯坦曾经说过:“一切都应该尽可能地简单,但是不能更简单。”确实如此,简化一门理论的基本假设,使我们可以专注于真正关键的地方,这正是一直以来对科学真理的追求。企业软件开发同样如此。
提供一个将复杂的事物(例如,事务、安全或持久性)对开发者进行隐藏的应用框架是简化企业软件开发的关键。一个设计良好的框架可以提高代码重用率、开发者的生产力及软件的质量。然而,现有J2EE14的EJB21框架被普遍认为设计差,且过于复杂。不满于EJB21的框架结构,Java开发者尝试了各种各样的中间件服务传递方法。最引人注目的是,以下两个框架引起了开发者极大兴趣并得到了大量正面的反馈。他们以未来企业Java应用所选框架的姿态展现。
Spring框架虽然很流行但并不是一个标准的开源框架。它主要由Interface21 Inc开发和控制。Spring框架结构是基于依赖注入(Dependency Injection (DI))的设计模式。它可以独立或在现有的应用服务器上运行,而且大量地使用了xml配置文件
EJB30是由Java Community Process (JCP)制订的标准框架,为所有主要的J2EE厂商支持。JBoss已经提供了试用版EJB30标准的开源或商业性质实现。EJB30充分利用了Java的注释
这两个框架结构都有一个共同核心设计理念:将中间件服务传递给耦合松散的POJOS (Plain Old Java Objects, 简单洁净Java对象)。 这样的框架利用截取执行上下文或在运行时将服务对象注入POJO来把应用服务“缠绕”到POJO。POJO本身并不关心这种“缠绕”,对这种框架结构也没有什么依赖。因此,开发者可专注于业务逻辑和脱离框架的POJO单元测试。除此之外, 由于POJO并不须要继承框架的类或实现其接口,开发者能够极其灵活地搭建继承结构和建造应用。
然而,在拥有同一理念的同时,两个框架结构使用不同的方式来传递POJO服务。许多书籍或文章都将Spring 或EJB30和EJB21做了比较,但是对Spring 和EJB30的比较并没有仔细研究过。在本文中,我将对Srping和EJB30框架背后的关键不同处进行考察,并讨论其优缺点。本文的观点也适用于其它更少为人知的框架,因为他们都是对“耦合松散的POJO”的设计。希望这篇文章可以帮助你选择适合你需求的最好框架。
厂商无关性
开发者选择Java平台其中最引人注目的理由之一:厂商无关性。EJB30正是一套设计为厂商无关的开放性标准。EJB30标准为所有企业Java社团里开源或商业性质厂商所开发和支持。它将开发者与应用服务器实现完全隔离。例如,JBoss的 EJB30实现基于Hibernate,Oracle的基于TopLink,但是开发者并不须要学习Hibernate- 或TopLink的具体API来使应用可在Jboss或Oracle上运行。厂商无关性使EJB30与现今其它POJO中间件框架区别开来。
但是,正如许多EJB30评论家迅速所指出的,在本文撰写时EJB30标准还没有到达一个最终版本。大概还有一到两年的时间EJB30才能广泛地为所有主要J2EE厂商所支持。即使你的应用服务器本身不支持EJB30,你仍然可以通过下载安装”内嵌的”EJB30产品来运行EJB30的应用。例如,JBoss的内嵌EjB30是开源产品且可以在任何J2SE50兼容的环境运行(例如, 在任何Java服务器上),此产品正处于软件测试阶段。其它厂商不久也将发布自己的内嵌EJB30产品,特别是针对标准中关于数据持久性的部分。
另一方面,Spring一直以来都是非标准的技术,在未来可预知的一段时间内这种情况将持续下去。虽然你可以在任何应用服务器上使用Spring框架,Spring应用会被锁入在Spring本身和你选择整合进Spring的具体服务中。
Spring框架是一个开源项目,但同时它有一个XML格式的配置文件和编程接口。当然任何一个非标准的产品都会有这种“锁入”(lock-in)的情况,并不是Spring特有的。但Spring应用的长期生存能力仍然还得托Spring这个项目的福(或者是Interface21公司,它雇佣了大部分Spring核心开发人员)。除此之外,假如你用到任何一个具体的Spring服务,例如,Spring事务管理器或则Spring MVC,你也会被锁入到这些API里。
Spring的应用对终端用户是不可知的。例如,对数据持久服务,Spring框架兼容不同的DAO和JDBC的模版帮助类,如Hibernate, iBatis, 和 JDO。所以假如你需要为spring应用切换在数据持久化服务(例如从JBDC到Hibernate),你需要修改你的代码以适合新的模版帮助类。
服务整合
从一个很高的角度上看,Spring框架处于应用服务器和服务库的上方。服务整合的代码(如,数据访问模板和帮助类)属于框架,并暴露于应用开发者。相反,EJB30框架与应用服务器高度整合,服务整合代码也包装在一个标准接口后面。
因此,实现EJB30的厂商可以大大地优化整体性能和提升开发者的体验。例如,在JBoss EJB30的实现中,当你在用EntityManager持久化一个Entity Bean时,后台的Hibernate会话事务已经自动地帮定到调用方法的JTA 的事务上,在JTA 事务提交的同时Hibernate会话事务也提交了。你甚至可以使用一个简单的 @PersistenceContext 注释(稍候例子演示)将EntityManager和它后台的Hibernate事务绑定到一个stateful session bean的应用事务中。在一个会话中应用事务横跨多个线程,这在事务性网页应用很有用,例如,多页面的购物车。
由于高度整合的EJB30的框架,使简单、集成的编程接口成为可能。Oracle EJB30框架和其后台的Toplink持久化服务也同样程度地整合。
另一个EJB30整合服务的绝好例子就是集群支持。假如你在一个服务器集群上部署了一个EJB30的应用,所有容错(fail-over)、负载均衡、分布式缓冲和状态复制都已经自动为应用所获得可用。后台的集群支持被隐藏在EJB30的框架后面,对EJB30开发者来说这些都是完全透明不可见的。
在Spring里,很难优化框架和服务之间的通讯。例如,为了使用Spring里的声明事务服务来管理Hibernate事务,你必须显示地在XML文件中配置Spring TransactionManager和Hibernate SessionFactory对象。Spring必须电显示地管理横跨多个>
以上就是关于在java bean中如何写 get 和set方法啊 就是这两种类型。还有就是在servlet中如何获取数据,给个例子全部的内容,包括:在java bean中如何写 get 和set方法啊 就是这两种类型。还有就是在servlet中如何获取数据,给个例子、java注解@Resource机制怎么取到注入过的Bean、如何不通过依赖注入获取spring环境中的Bean等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)