[读书笔记]J2EE 基本概念 --- JSP

JSP技术是用来解决如下问题的:

1.      表现层(presentation,即页面)经常发生变化。而这些变化和应用逻辑(Application Logic)无关,即完全重新编译(recompilation and rebuild)是不必要的。

2.      表现层调试困难。除非运行,才可以知道代码是否有错误。

3.      在多数大型组织中,表现层开发者(presentation developer)和后台开发者(Software developer)是不同的人,这就要求表现层开发者懂得后台使用的语言,以便开发表现层,而许多专门的表现层开发工具也因而变得不能使用。

 

JSP技术简介

Servlets一样,JSP是也是一种J2EEWeb组件。JSP和服务器端脚本技术不同的是,JSP需要被编译(compiled),而服务器端脚本是被翻译的(interpreted)

JSP包括结构化文档(通常是HTML),以及内嵌在其中的java代码。当一个JSP页面被请求的时候,服务器会运行其中的java代码,并把运行结果和静态代码一起返回给发出请求的客户端。

这种想法的目的是,使用标记语言(HTML)来显示页面中的静态内容,内嵌特殊标记(tag)来标记动态内容。服务器会处理这些特殊标记中的代码,并返回处理结果。

 

JSP的典型应用

JSP具有和Servlets同样的能力,即后者能做的事,前者都能做到,反之亦然。

正确的使用二者的方式是:

 使用JSP来显示动态页面内容,而在逻辑处理更重要的地方使用Servlets

(原文: The idea is to leverage the JSP for presentation-centric tasks and utilize the servlets where logic is paramount.)

在有动态内容需要显示给客户看的时候,使用JSP是非常合适的。

总之,JSP的主要用途是用来做显示(presentation)工作,内嵌的Java代码主要是用来和Servlet或者是其他的控制器,数据实体等进行通信。

JSP是需要消耗系统资源的,所以如果只有静态代码就足够了,那么就不要使用JSP。在这种情况下,应当使用一个普通的HTML页面。

 

架构模式:Model1 Model2

Model1:这种架构把页面表现和商业逻辑处理都放在了JSP中。优点是简单并易于实现。缺点是代码会变得越来越庞大,并且难于维护和升级。

Model2:现在大多数开发都使用这种架构。这种架构遵循MVC(Model-View-Controller)模型。在这个模型中,ModelJavabean来实现,它主要是用来存储数据的;JSP被用来从Javabean中取得需要显示的数据显示在页面中(View)Servlets来处理来自客户端的请求,并且把处理结果储存在Javabean(Controller)

使用时机:

Model1:创建简单的,没有复杂逻辑处理的Web应用时使用。

Model2:需要对请求进行扩展处理,并且可能返回多个响应的时候使用Model2

总之,最适合的才是最好的。

JSP VS Servlets

所有的JSP都被编译成Servlets,然后再Servlet容器中运行。所以,从技术角度讲,JSPServlets在能力和用途方面是相似的。

JSP优于Servlets的方面有:

n         JSP是以显示为主要用途,给Web显示层开发者提供了一种更加自然的开发模型。

n         JSP使得“把表示和内容分开”的目的能够实现。这意味着,项目表示层的开发可以和逻辑层的开发同时进行。

n         JSP帮助组织Web应用的物理方面。

JSP是自动编译的,而Servlets需要手动编译。

在显示层经常发生变动的时候,是用JSP;在需要处理更加复杂的业务逻辑的时候使用Servlets

 

在一个具体项目的开发过程中,选择JSP还是Servlets并不是一个非此即彼的命题。更好的方法是混合使用两者来开发一个平衡的系统。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值