- 浏览: 751550 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
lengzl:
请问,那个Node 是哪个包里面的类?
JAVA 二叉树的递归和非递归遍历 -
gongchuangsu:
总结的很好,感谢感谢
JAVA 二叉树的递归和非递归遍历 -
Caelebs:
666666666 居然是10年发的,难怪截屏自动保存的名字是 ...
截图工具 -
jijiqw:
是注解不是注释。。。
Spring @Transactional (一) -
letueo:
[b][b][b][b][b][b][b][b][b][b][ ...
Spring @Transactional (一)
一、什么是javaBean
在JSP中调用JAVA类和使用JAVABEAN有什么区别?
你可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。
特殊在可以通过<jsp:useBean />调用JavaBean而其他类,你可以和一般java中一样使用.
Bean 的参数中还可以指定范围, <jsp:useBean scope="application" /> 该Bean在服务器的JVM 中将只有一个实例.
Bean是和WebServer相关的, 不同的页面可以通过 Bean 交互. 而你在一个页面中的类,就没有这个功能, 除非通过session, 那又是另外一回事了.
bean其时也是class文件,只是普通的java文件没有什么限制,如果你按bean的规范来制作class文件,那他就是一个bean。而按bean的规范来制作就相当是一个组件,换句话说bean就是组件技术,至于bean的规范,你可以在书上或网上查一下。
JavaBean的规范
JavaBean必须包含一个无参数的public构造方法。
JavaBean必须包含符合命名规范的get和set方法,以便访问JavaBean的属性。
JavaBean应该是可串行化(serializable)的。
JavaBean不应包含事件处理方法。
JavaBean示例:public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;
// No-arg constructor (takes no arguments).
public PersonBean() {
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
// Different semantics for a boolean field (is vs. get)
public boolean isDeceased() {
return this.deceased;
}
public void setDeceased(boolean deceased) {
this.deceased = deceased;
}
为了确保一个java类成为javabean,有以下四个简单的也是必须的规范:
这个类是可序列化的,即必须实现java.io.Serializable接口。
这个类必须带有一个无参数的构造方法。
这个类的属性必须通过get、set和其他按标准规范命名的方法来操作:若成员变量名为XXX,那么要有方法getXXX(),用来获取属性;setXXX(),用来修改属性;对于Boolean类型的成员变量,可用is代替get和set类中的方法的访问。属性都必须是public的。类中如果有构造方法,那么这个构造方法也是public的,并且无参数。
这个类包含所有必需的事件处理方法。
二、JavaBean和Servlet的不同
Type1: 一般的JavaBean中,只有属性声明和该属性对应的setXxx和getXxx方法,(一般不建议)不包含业务逻辑;这种JavaBean你可以简单地理解为“数据对象”即可。
Type2: 还有一种JavaBean,其内包含业务处理逻辑,用于处理特定的业务数据;一般使用上面所述的“数据对象”(当然也可能不使用)。
Servlet主要是用来:接收请求、封装‘Type1’的JavaBean、调用‘Type2’的JavaBean的相应业务逻辑方法、向客户端发出响应。
以上是Struts 1.x所使用的模式:ActionForm 就是 Type1的JavaBean,ActionBean就是Type2的JavaBean,ActionServlet即是上面所述的Servlet。
Struts 2.x则是使用 Type1 + Type2的方式(数据对象和业务处理)和Servlet相结合的方式(实际上就是Webwork的方式)。
javaBean 和Servlet有什么区别啊?
什么时候用javaBaen?什么时候用Servlet,什么时候二者结合使用呢?
javabean无非就是里面有些set和get方法呀
servlet用来处理一些逻辑层
javabean说笼统点是实现....servlet是控制,一个是mvc的m一个是c....
javabean、servlet、jsp分别对应M(odel)、C(ontroller)、V(iew)
举例:
servlet查询数据库
javabean保存查询结果
jsp显示查询结果
javabean就是一个普通的Java类,里面为属性增加了getter和setter并提供默认构造。可以在多层架构的各层存在。想用它作什么都行。
而Servlet是展示层的东西……应当只在展示层存在。常作为MVC中的控制器。
一般说的Mvc模式,Servlet主要充当了C的作用,
你可以想象,
你有个对象,叫Model(javabean),你通过Servlet来Control它,然后再通过Jsp来显示给其他View。 具体Servlet如何Control,这要根据具体的Model来编写了。同样Jsp也是。
javabean和servlet应该是两回事吧.因为javabean是一个组件,可以用在任何地方,当然就可以用在servlet里了
这个问题看似有些“初级”,但实际上它涉及了对Java EE理解的一个最基本的问题,什么是Java EE,什么不是。本人正在研究Sun公司官方的 "The Java EE 5 Tutorial ",按照Sun的定义,所谓的Java EE应用,是由两大部分组成:(1)组件,表示业务逻辑、表现逻辑,这部分由开发人员完成;(2)标准的系统服务,由Java EE平台,亦即容器来提供,这个范围之外的都不属于Java EE应用的范畴。而Servlet,作为Java EE应用表现逻辑的组件之一,当然是Java EE应用的一部分。而JavaBean,产生的年代早于J2EE,其技术用途更为广泛不限于Java EE使用,按照sun的定义,不属于Java EE技术范围。原文如下
"The server and client tiers might also include components based on the JavaBeans component architecture (JavaBeans components) to manage the data flow between an application client or applet and components running on the Java EE server, or between server components and a database. JavaBeans components are NOT considered Java EE components by the Java EE specification. "
大意是:尽管服务器层和客户层都使用基于JavaBean组件架构的组件来管理客户端与服务器端以及服务器端与服务器的数据流,但Java EE规范并没没有把JavaBean组件看作是Java EE的组件。
如果问Servlet和JavaBean的区别是什么,这就是最根本的区别了。其实真正大规模使用JavaBean组件技术的是在Swing中,wing中的所有控件包括JButton,JTree等用的都是JavanBean技术,这些控件的基本编程模型正是大名鼎鼎的MVC模型,不信找出Swing API来,好好研究一下JTree、JTable,你就知道什么是真正的JavaBean了。而Servlet是只能在Java EE容器中存活的特殊Java类,就像是鱼缸里的鱼,没有容器Servlet是不能生存的。而JavaBean则可以脱离Java EE环境单独存在,按照Sun的说法,既可以用在客户端,也可以用在服务器端。所谓的POJO,就是EJB把E字去掉,剩下的JB就是JavaBean,换句话说,JavaBean在J2EE里,甚至可以充当某些EJB完成的任务,用途远大于Servlet。最后的区别,楼上已经有人指出了,就是在基于 MVC模式的Java Web应用中,Servlet和JavaBean扮演的角色不同,按照上述引用的Sun的Java EE 5规范的说法,JavaBean的主要用途在于管理Java EE应用各个层之间的数据流,所以在一些框架中(如Struts)有FormBean和ActionBean的说法,其本质都是为了管理数据。相信如果把上述几点搞清,区分Servlet和JavaBean应当不会很困难的。
JSP和SERVLET到底在应用上有什么区别,很多人搞不清楚。我来胡扯几句吧。简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。 从网络三层结构的角度看,一个网络项目最少分三层:data layer,business layer, presentation layer。当然也可以更复杂。SERVLET用来写business layer是很强大的,但是对于写presentation layer就很不方便。JSP则主要是为了方便写presentation layer而设计的。当然也可以写business layer。写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentation layer和business layer混在一起。就象前面那个朋友,把数据库处理信息放到JSP中,其实,它应该放在business layer中。根据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的东东,也就是说,只放输出HTML网页的部份。而所有的数据计算,数据分析,数据库联结处理,统统是属于business layer,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。实际上,微软前不久推出的DNA技术,简单说,就是ASP+COM/DCOM技术。与JSP+BEANS完全类似,所有的 presentation layer由ASP完成,所有的business layer由COM/DCOM完成。通过调用,实现整合。为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
另外一方面,纯SCRIPT语言将presentation layer和business layer混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页CODE,采用组件技术就只改组件就可以了
综上所述,SERVLET是一个早期的不完善的产品,写business layer很好,写presentation layer就很臭,并且两层混杂。
所以,推出JSP+BAEN,用JSP写presentation layer,用BAEN写business layer。SUN自己的意思也是将来用JSP替代SERVLET。
可是,这不是说,学了SERVLET没用,实际上,你还是应该从SERVLET入门,再上JSP,再上JSP+BEAN。
强调的是:学了JSP,不会用JAVA BEAN并进行整合,等于没学。大家多花点力气在JSP+BEAN上。
在补充几句:
我们可以看到,当ASP+COM和JSP+BEAN都采用组件技术后,所有的组件都是先进行编译,并驻留内存,然后快速执行。所以,大家经常吹的SERVLET/JSP先编译驻内存后执行的速度优势就没有了。
反之,ASP+COM+IIS+NT紧密整合,应该会有较大的速度优势呈现。而且,ASP+COM+IIS+NT开发效率非常高,虽然BUG很多。
那么,为什么还用JSP+BEAN?因为JAVA实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必定要找一个通用开发语言进行开发,JAVA一统天下的时机就到了。如果微软分拆顺利,从中分出的应用软件公司将成为JAVA的新领导者。目前的JAVA大头SUN和IBM都死气沉沉,令人失望。希望新公司能注入新活力。不过,新公司很有可能和旧SUN展开JAVA标准大战,双方各自制定标准,影响JAVA夸平台。
另外,现在的机器速度越来越快,JAVA的速度劣势很快就可以被克服。
javabean可以作为模型+控制,也可以单做模型,也可以只用来做数据传递(JSP发送数据到BEAN,BEAN执行EXECUTE,操作数据库,反之也可)
如果你还没学到其它框架,如HIBERNATE,SPRING,STRUTS等。那javabean的作用是用来作数据的装载,这种 bean我称为数据bean,比如你从数据库上查询出的记录可以保存在数据bean中,javabean的另一外作用是用来处理一些业务逻辑,比如可以在 javabean中用JDBC去访问数据库,从而从数据库中加载信息到数据bean中,也可以从数据库中删除、保存数据等。而SERVLET的作用主要是用来控制页面的跳转,比如说从login.jsp发一个请求到SERVLET中,SERVLET调用业务bean的方法去查询数据库是否有此密码和用户名,如果正确SERVLET就可以用request或者response对象的方法跳转到你想要的页面。
JSP开发的两种模式
模式一:JSP+JavaBeans
这就是指JSP+JavaBean技术。在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术也实现了页面的表现--和页面的商业逻辑相分离。
大量使用模式形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得非常复杂。对于前端界面设计人员来说,这简直不可想象。
这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导致多多少少的定义不清的响应和项目管理的困难。
综上所诉,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。
模式二:JSP+Servlet+JavaBeans
Servlets技术是一种采用JAVA技术来实现CGI功能的一种术。Servlets技术是运行在WEB服务器上,用来生成WEB页面。Servlets技术非常适用于服务器端的处理和编程,并且Servlet会长期驻留在他们所处的位置。
但是在实际的项目开发过程中,页面设计者可以方便地使用普通HTML工具来开发JSP页面Servlet却更适合于后端开发者使用,开发Servlet需要的是JAVA集成开发环境,也就是说Servlet技术更需要编程人员。
模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。 Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个 JSP页面发送给客户。
从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/discuss/1/040317/19/331843_1.html
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Java Servlet 与 JSP(JavaServer Pages) 的比较:
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在 JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
JSP动态Web内容可能是动态Web内容的一项伟大的技术,并可将内容和表示presentation相分离,
有些人仍然觉得奇怪,为什么servlets仍然有必要和JSP同时实施。
其实servlets的实用性并不是一个问题。它们在服务器端处理方面的表现非常优秀,而且,由于它们引人注目的安装方式而继续存在着。事实上,你可以将 JSP看作一种servlets的高级抽象,它以Servlet 2.1 API扩展的形式来实现。
你仍然不应该不加选择地使用servlets;它们可能并不适用于每个人。例如,当一个页面设计者可以很简单地使用方便的HTML或XML工具来编写 JSP页面时,servlets可能更适合那些在后端的开发者,因为他们经常使用某种IDE来编写-- 这是一种通常需要较高编程经验的处理工作。
当发布servlets时,甚至开发者都不得不小心确保在presentation和内容之间不存在紧密结合。你通常可以通过增加一个第三方发行包如 htmlKona来做到这一点。但即使可以做到这一点,虽然可以通过简单的屏幕上的调整提供一些灵活性,仍无法为你保证在presentation自身格式上的变化。例如,如果你的presentation从HTML改变到DHTML,你将仍然需要确保发行包和新的格式相一致,在最坏的case -- scenario中,如果一个发行包无法得到,你将结束在动态web的内容中对presentation使用手写代码。
所以,解决方法是什么呢?
方法之一就是同时使用JSP和servlet技术来建立应用系统。
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a>
原文链接:http://www.soidc.net/discuss/1/040317/19/331843_1.html
在JSP中调用JAVA类和使用JAVABEAN有什么区别?
你可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。
特殊在可以通过<jsp:useBean />调用JavaBean而其他类,你可以和一般java中一样使用.
Bean 的参数中还可以指定范围, <jsp:useBean scope="application" /> 该Bean在服务器的JVM 中将只有一个实例.
Bean是和WebServer相关的, 不同的页面可以通过 Bean 交互. 而你在一个页面中的类,就没有这个功能, 除非通过session, 那又是另外一回事了.
bean其时也是class文件,只是普通的java文件没有什么限制,如果你按bean的规范来制作class文件,那他就是一个bean。而按bean的规范来制作就相当是一个组件,换句话说bean就是组件技术,至于bean的规范,你可以在书上或网上查一下。
JavaBean的规范
JavaBean必须包含一个无参数的public构造方法。
JavaBean必须包含符合命名规范的get和set方法,以便访问JavaBean的属性。
JavaBean应该是可串行化(serializable)的。
JavaBean不应包含事件处理方法。
JavaBean示例:public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;
// No-arg constructor (takes no arguments).
public PersonBean() {
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
// Different semantics for a boolean field (is vs. get)
public boolean isDeceased() {
return this.deceased;
}
public void setDeceased(boolean deceased) {
this.deceased = deceased;
}
为了确保一个java类成为javabean,有以下四个简单的也是必须的规范:
这个类是可序列化的,即必须实现java.io.Serializable接口。
这个类必须带有一个无参数的构造方法。
这个类的属性必须通过get、set和其他按标准规范命名的方法来操作:若成员变量名为XXX,那么要有方法getXXX(),用来获取属性;setXXX(),用来修改属性;对于Boolean类型的成员变量,可用is代替get和set类中的方法的访问。属性都必须是public的。类中如果有构造方法,那么这个构造方法也是public的,并且无参数。
这个类包含所有必需的事件处理方法。
二、JavaBean和Servlet的不同
Type1: 一般的JavaBean中,只有属性声明和该属性对应的setXxx和getXxx方法,(一般不建议)不包含业务逻辑;这种JavaBean你可以简单地理解为“数据对象”即可。
Type2: 还有一种JavaBean,其内包含业务处理逻辑,用于处理特定的业务数据;一般使用上面所述的“数据对象”(当然也可能不使用)。
Servlet主要是用来:接收请求、封装‘Type1’的JavaBean、调用‘Type2’的JavaBean的相应业务逻辑方法、向客户端发出响应。
以上是Struts 1.x所使用的模式:ActionForm 就是 Type1的JavaBean,ActionBean就是Type2的JavaBean,ActionServlet即是上面所述的Servlet。
Struts 2.x则是使用 Type1 + Type2的方式(数据对象和业务处理)和Servlet相结合的方式(实际上就是Webwork的方式)。
javaBean 和Servlet有什么区别啊?
什么时候用javaBaen?什么时候用Servlet,什么时候二者结合使用呢?
javabean无非就是里面有些set和get方法呀
servlet用来处理一些逻辑层
javabean说笼统点是实现....servlet是控制,一个是mvc的m一个是c....
javabean、servlet、jsp分别对应M(odel)、C(ontroller)、V(iew)
举例:
servlet查询数据库
javabean保存查询结果
jsp显示查询结果
javabean就是一个普通的Java类,里面为属性增加了getter和setter并提供默认构造。可以在多层架构的各层存在。想用它作什么都行。
而Servlet是展示层的东西……应当只在展示层存在。常作为MVC中的控制器。
一般说的Mvc模式,Servlet主要充当了C的作用,
你可以想象,
你有个对象,叫Model(javabean),你通过Servlet来Control它,然后再通过Jsp来显示给其他View。 具体Servlet如何Control,这要根据具体的Model来编写了。同样Jsp也是。
javabean和servlet应该是两回事吧.因为javabean是一个组件,可以用在任何地方,当然就可以用在servlet里了
这个问题看似有些“初级”,但实际上它涉及了对Java EE理解的一个最基本的问题,什么是Java EE,什么不是。本人正在研究Sun公司官方的 "The Java EE 5 Tutorial ",按照Sun的定义,所谓的Java EE应用,是由两大部分组成:(1)组件,表示业务逻辑、表现逻辑,这部分由开发人员完成;(2)标准的系统服务,由Java EE平台,亦即容器来提供,这个范围之外的都不属于Java EE应用的范畴。而Servlet,作为Java EE应用表现逻辑的组件之一,当然是Java EE应用的一部分。而JavaBean,产生的年代早于J2EE,其技术用途更为广泛不限于Java EE使用,按照sun的定义,不属于Java EE技术范围。原文如下
"The server and client tiers might also include components based on the JavaBeans component architecture (JavaBeans components) to manage the data flow between an application client or applet and components running on the Java EE server, or between server components and a database. JavaBeans components are NOT considered Java EE components by the Java EE specification. "
大意是:尽管服务器层和客户层都使用基于JavaBean组件架构的组件来管理客户端与服务器端以及服务器端与服务器的数据流,但Java EE规范并没没有把JavaBean组件看作是Java EE的组件。
如果问Servlet和JavaBean的区别是什么,这就是最根本的区别了。其实真正大规模使用JavaBean组件技术的是在Swing中,wing中的所有控件包括JButton,JTree等用的都是JavanBean技术,这些控件的基本编程模型正是大名鼎鼎的MVC模型,不信找出Swing API来,好好研究一下JTree、JTable,你就知道什么是真正的JavaBean了。而Servlet是只能在Java EE容器中存活的特殊Java类,就像是鱼缸里的鱼,没有容器Servlet是不能生存的。而JavaBean则可以脱离Java EE环境单独存在,按照Sun的说法,既可以用在客户端,也可以用在服务器端。所谓的POJO,就是EJB把E字去掉,剩下的JB就是JavaBean,换句话说,JavaBean在J2EE里,甚至可以充当某些EJB完成的任务,用途远大于Servlet。最后的区别,楼上已经有人指出了,就是在基于 MVC模式的Java Web应用中,Servlet和JavaBean扮演的角色不同,按照上述引用的Sun的Java EE 5规范的说法,JavaBean的主要用途在于管理Java EE应用各个层之间的数据流,所以在一些框架中(如Struts)有FormBean和ActionBean的说法,其本质都是为了管理数据。相信如果把上述几点搞清,区分Servlet和JavaBean应当不会很困难的。
JSP和SERVLET到底在应用上有什么区别,很多人搞不清楚。我来胡扯几句吧。简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。 从网络三层结构的角度看,一个网络项目最少分三层:data layer,business layer, presentation layer。当然也可以更复杂。SERVLET用来写business layer是很强大的,但是对于写presentation layer就很不方便。JSP则主要是为了方便写presentation layer而设计的。当然也可以写business layer。写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentation layer和business layer混在一起。就象前面那个朋友,把数据库处理信息放到JSP中,其实,它应该放在business layer中。根据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的东东,也就是说,只放输出HTML网页的部份。而所有的数据计算,数据分析,数据库联结处理,统统是属于business layer,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。实际上,微软前不久推出的DNA技术,简单说,就是ASP+COM/DCOM技术。与JSP+BEANS完全类似,所有的 presentation layer由ASP完成,所有的business layer由COM/DCOM完成。通过调用,实现整合。为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
另外一方面,纯SCRIPT语言将presentation layer和business layer混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页CODE,采用组件技术就只改组件就可以了
综上所述,SERVLET是一个早期的不完善的产品,写business layer很好,写presentation layer就很臭,并且两层混杂。
所以,推出JSP+BAEN,用JSP写presentation layer,用BAEN写business layer。SUN自己的意思也是将来用JSP替代SERVLET。
可是,这不是说,学了SERVLET没用,实际上,你还是应该从SERVLET入门,再上JSP,再上JSP+BEAN。
强调的是:学了JSP,不会用JAVA BEAN并进行整合,等于没学。大家多花点力气在JSP+BEAN上。
在补充几句:
我们可以看到,当ASP+COM和JSP+BEAN都采用组件技术后,所有的组件都是先进行编译,并驻留内存,然后快速执行。所以,大家经常吹的SERVLET/JSP先编译驻内存后执行的速度优势就没有了。
反之,ASP+COM+IIS+NT紧密整合,应该会有较大的速度优势呈现。而且,ASP+COM+IIS+NT开发效率非常高,虽然BUG很多。
那么,为什么还用JSP+BEAN?因为JAVA实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必定要找一个通用开发语言进行开发,JAVA一统天下的时机就到了。如果微软分拆顺利,从中分出的应用软件公司将成为JAVA的新领导者。目前的JAVA大头SUN和IBM都死气沉沉,令人失望。希望新公司能注入新活力。不过,新公司很有可能和旧SUN展开JAVA标准大战,双方各自制定标准,影响JAVA夸平台。
另外,现在的机器速度越来越快,JAVA的速度劣势很快就可以被克服。
javabean可以作为模型+控制,也可以单做模型,也可以只用来做数据传递(JSP发送数据到BEAN,BEAN执行EXECUTE,操作数据库,反之也可)
如果你还没学到其它框架,如HIBERNATE,SPRING,STRUTS等。那javabean的作用是用来作数据的装载,这种 bean我称为数据bean,比如你从数据库上查询出的记录可以保存在数据bean中,javabean的另一外作用是用来处理一些业务逻辑,比如可以在 javabean中用JDBC去访问数据库,从而从数据库中加载信息到数据bean中,也可以从数据库中删除、保存数据等。而SERVLET的作用主要是用来控制页面的跳转,比如说从login.jsp发一个请求到SERVLET中,SERVLET调用业务bean的方法去查询数据库是否有此密码和用户名,如果正确SERVLET就可以用request或者response对象的方法跳转到你想要的页面。
JSP开发的两种模式
模式一:JSP+JavaBeans
这就是指JSP+JavaBean技术。在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术也实现了页面的表现--和页面的商业逻辑相分离。
大量使用模式形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得非常复杂。对于前端界面设计人员来说,这简直不可想象。
这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导致多多少少的定义不清的响应和项目管理的困难。
综上所诉,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。
模式二:JSP+Servlet+JavaBeans
Servlets技术是一种采用JAVA技术来实现CGI功能的一种术。Servlets技术是运行在WEB服务器上,用来生成WEB页面。Servlets技术非常适用于服务器端的处理和编程,并且Servlet会长期驻留在他们所处的位置。
但是在实际的项目开发过程中,页面设计者可以方便地使用普通HTML工具来开发JSP页面Servlet却更适合于后端开发者使用,开发Servlet需要的是JAVA集成开发环境,也就是说Servlet技术更需要编程人员。
模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。 Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个 JSP页面发送给客户。
从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/discuss/1/040317/19/331843_1.html
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Java Servlet 与 JSP(JavaServer Pages) 的比较:
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在 JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
JSP动态Web内容可能是动态Web内容的一项伟大的技术,并可将内容和表示presentation相分离,
有些人仍然觉得奇怪,为什么servlets仍然有必要和JSP同时实施。
其实servlets的实用性并不是一个问题。它们在服务器端处理方面的表现非常优秀,而且,由于它们引人注目的安装方式而继续存在着。事实上,你可以将 JSP看作一种servlets的高级抽象,它以Servlet 2.1 API扩展的形式来实现。
你仍然不应该不加选择地使用servlets;它们可能并不适用于每个人。例如,当一个页面设计者可以很简单地使用方便的HTML或XML工具来编写 JSP页面时,servlets可能更适合那些在后端的开发者,因为他们经常使用某种IDE来编写-- 这是一种通常需要较高编程经验的处理工作。
当发布servlets时,甚至开发者都不得不小心确保在presentation和内容之间不存在紧密结合。你通常可以通过增加一个第三方发行包如 htmlKona来做到这一点。但即使可以做到这一点,虽然可以通过简单的屏幕上的调整提供一些灵活性,仍无法为你保证在presentation自身格式上的变化。例如,如果你的presentation从HTML改变到DHTML,你将仍然需要确保发行包和新的格式相一致,在最坏的case -- scenario中,如果一个发行包无法得到,你将结束在动态web的内容中对presentation使用手写代码。
所以,解决方法是什么呢?
方法之一就是同时使用JSP和servlet技术来建立应用系统。
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a>
原文链接:http://www.soidc.net/discuss/1/040317/19/331843_1.html
发表评论
-
Servlet上传文件
2012-02-07 23:58 1508准备工作:要到http://commons.apache.or ... -
成为Java高手需要达到的25个学习目标--经典
2012-01-29 16:07 1364本文将告诉你学习Java需 ... -
Timer, Quartz 和 Spring 实现作业调度
2011-11-28 15:43 1204一、java.util.Timer ... -
Java 产生不重复的随机数
2011-06-22 23:32 2377int numberCount = 6; ... -
Date类学习总结(Calendar Date 字符串 相互转换 格式化)
2011-06-20 16:12 1683Date类学习总结 1.计算某一月份的最大天数 ... -
jsp中的cookie用法小实例
2011-06-20 00:13 2503这个小实例有三个页面 index.jsp页面内容如下: Y ... -
JS实现简单的增删改查
2011-06-19 23:41 13003<%@ page language="ja ... -
Jsp 动态显示系统时间
2011-06-19 23:24 4915<%@ page language=" ... -
java 动态显示时间
2011-06-19 23:13 4076import java.util.Date; p ... -
js 动态显示时间
2011-06-19 22:53 1846<%@ page language=" ... -
HTML 显示系统时间
2011-06-19 22:13 7905代码1:(显示静态时间) <script type=& ... -
JavaScript 动态显示系统时间
2011-06-19 19:36 2101JavaScript 动态显示系统时间 <html ... -
两例JavaScript 获取当前系统日期和时间
2011-06-19 19:20 1269两例JavaScript 获取当前系统日期和时间 QUOTE ... -
java五种JSP页面跳转方法详解
2011-06-19 17:08 14861. RequestDispatcher.forward() ... -
Java Object方法
2011-06-19 16:47 1391package com.abin.test.connectio ... -
Java 数组,List,Itarator循环
2011-06-19 16:01 2329package com.abin.test.connect ... -
JAVA DBClass操作数据库,这样算不算单列模式
2011-06-19 14:53 1269到底怎样才算单列模式,单列模式事什么概念 package c ... -
Oracle日期函数集锦
2011-06-16 20:55 964Oracle日期函数集锦(一) 一、 常用日期数据格式 1 ... -
java 页面传送数组
2011-06-15 14:56 26101.可以通过嵌入java代码调用session或者reques ... -
java Calendar当前时间
2011-06-14 13:40 1711Calendar c = Calendar.getIn ...
相关推荐
YOLOv12:以注意力为中心的实时目标检测器
GO语言基础语法指令教程
MATLAB代码实现:分布式电源接入对配电网运行影响深度分析与评估,MATLAB代码分析:分布式电源接入对配电网运行影响评估,MATLAB代码:分布式电源接入对配电网影响分析 关键词:分布式电源 配电网 评估 参考文档:《自写文档,联系我看》参考选址定容模型部分; 仿真平台:MATLAB 主要内容:代码主要做的是分布式电源接入场景下对配电网运行影响的分析,其中,可以自己设置分布式电源接入配电网的位置,接入配电网的有功功率以及无功功率的大小,通过牛顿拉夫逊法求解分布式电源接入后的电网潮流,从而评价分布式电源接入前后的电压、线路潮流等参数是否发生变化,评估配电网的运行方式。 代码非常精品,是研究含分布式电源接入的电网潮流计算的必备程序 ,分布式电源; 配电网; 接入影响分析; 潮流计算; 牛顿拉夫逊法; 电压评估; 必备程序。,基于MATLAB的分布式电源对配电网影响评估系统
三相光伏并网逆变器:Mppt最大功率跟踪与800V中间母线电压的电力转换技术,三相光伏并网逆变器:实现最大功率跟踪与800V中间母线电压的优化处理,三相光伏并网逆变器 输入光伏Mppt 最大功率跟踪中间母线电压800V 后级三相光伏并网逆变器 ,三相光伏并网逆变器; 输入光伏Mppt; 最大功率跟踪; 中间母线电压800V; 后级逆变器,三相光伏并网逆变器:MPPT最大功率跟踪800V母线电压
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
西门子博途三部十层电梯程序案例解析:基于Wincc RT Professional V14及更高版本的应用探索,西门子博途三部十层电梯程序案例解析:基于Wincc RT Professional画面与V14及以上版本技术参考,西门子1200博途三部十层电梯程序案例,加Wincc RT Professional画面三部十层电梯程序,版本V14及以上。 程序仅限于参考资料使用。 ,西门子;1200博途;三部十层电梯程序案例;Wincc RT Professional;V14以上程序版本。,西门子V14+博途三部十层电梯程序案例:Wincc RT Pro专业画面技术解析
基于舆情数据的知识图谱推荐可视化系统论文,全原创,免费分享
基于Vivado源码的AM包络检调制解调与FIR滤波器设计在FPGA上的实现,基于Zynq-7000和Artix-7系列的AM包络检调制解调源码及Vivado环境下的实现,AM包络检调制解调,Vivado源码 FPGA的AM调制解调源码,其中FIR滤波器根据MATLAB设计。 【AM_jietiao】文件是基于zynq-7000系列,但没有涉及AD与DA,只是单纯的仿真。 【AM包络检调制解调_Vivado源码】文件基于Artix-7系列,从AD读入信号后,进行AM调制,并解调DA输出。 ,AM包络检调制解调;Vivado源码;FPGA;AM调制解调源码;FIR滤波器;MATLAB设计;Zynq-7000系列;Artix-7系列;AD读入信号;DA输出,AM包络调制解调源码:Zynq-7000与Artix-7 FPGA的不同实现
yugy
2025山东大学:DeepSeek应用与部署(部署方案大全+API调用+业务应用)-80页.pptx
chromedriver-mac-x64-135.0.7023.0(Dev).zip
基于单片机protues仿真的433MHz无线模块编解码收发通信测试(仿真图、源代码) 该设计为单片机protues仿真的433MHz无线模块收发通信测试; 1、433M超再生收发模块; 2、在仿真图中是把发射MCU的P2_7腿直接输入到接收MCU的INT0实现编码解码的; 3、通过433MHz无线模块实现无线通信的编解码功能; 4、按键控制指令; 5、液晶屏显示收发状态和信息;
资源说说明; 自带文件管理 adb操作以及应用管理等等的功能。 操作性对比其他应用较好。 参阅博文: https://blog.csdn.net/mg668/article/details/145689511?spm=1001.2014.3001.5352
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
智慧图书管理系统(源码+数据库+论文)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 本系统分为读者、管理员2个角色 读者可以进行注册登录、浏览图书以及留言、图书借阅、图书归还、图书续借、个人中心、论坛交流、等功能 管理员可以进行读者管理、图书管理、论坛论坛回复管理、图书借阅管理(下架、库存管理、修改、删除)、轮播图管理 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
三相APFC电路与单相Boost PFC电路仿真模型:电压外环电流内环双闭环控制研究,三相电路仿真模型:探索APFC电路、单相PFC电路及BoostPFC电路的动态特性与双闭环控制策略,APFC电路,单相PFC电路,单相BoostPFC电路仿真模型。 网侧220V 50Hz,输出电压设置为50Hz。 电压外环电流内环双闭环控制仿真模型 ,APFC电路; 单相PFC电路; 单相BoostPFC电路仿真模型; 网侧电压; 220V 50Hz; 输出电压50Hz; 电压外环电流内环双闭环控制仿真模型。,基于APFC电路的单相Boost PFC仿真模型:网侧电压220V/50Hz下电压电流双闭环控制的研究与应用
MATLAB环境下ADMM算法在分布式调度中的应用:比较并行与串行算法(Jocobi与Gaussian Seidel)的优化效果与实现细节——基于YALMIP和GUROBI的仿真平台复刻参考文档的研究结果。,MATLAB下ADMM算法在分布式调度中的并行与串行算法应用:基于YALMIP与GUROBI的仿真研究,MATLAB代码:ADMM算法在分布式调度中的应用 关键词:并行算法(Jocobi)和串行算法(Gaussian Seidel, GS) 参考文档:《主动配电网分布式无功优化控制方法》《基于串行和并行ADMM算法的电-气能量流分布式协同优化》 仿真平台:MATLAB YALMIP GUROBI 主要内容:ADMM算法在分布式调度中的应用 复刻参考文档 ,关键词:ADMM算法; 分布式调度; 并行算法(Jocobi); 串行算法(Gaussian Seidel, GS); MATLAB代码; YALMIP; GUROBI; 主动配电网; 无功优化控制方法; 能量流分布式协同优化。,MATLAB实现:ADMM算法在分布式调度中的并行与串行优化应用
“考虑P2G、碳捕集与碳交易机制的综合能源系统优化调度模型研究”,考虑电转气P2G与碳捕集设备的热电联供综合能源系统优化调度模型研究(含碳交易机制与四种算例场景分析),考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 摘要:代码主要做的是一个考虑电转气P2G和碳捕集设备的热电联供综合能源系统优化调度模型,模型耦合CHP热电联产单元、电转气单元以及碳捕集单元,并重点考虑了碳交易机制,建立了综合能源系统运行优化模型,与目前市面上的代码不同,本代码完全复现了文档中所提出的四种算例场景,没有对比算例,买过去也没有任何意义,四种算例主要包括: 1)t不包括P2G、CCS、以及碳交易 2)t包括P2G,但是不包括CCS以及碳交易 3)t包括P2G和CCS,但是不包括碳交易 4)t包括P2G、CCS以及碳交易 且最终的实现效果与文档进行对比后,虽然数值无法100%一致,但是结果以及数值曲线,几乎完全一样,此版本为目前市面上最好的园区综合能源调度代码,没有之一 ,考虑电转气(P2G); 碳捕集设备; 热电联供综合能源系统; 优化调度模型; 碳交易机制; CHP热电联产单元; 耦合模型; 算
FS-LDM培训材料(DAY_2)_NCR数据仓库事业部.ppt
专题 平面向量的数量积(学生版)20250222.pdf