澳门新葡萄京娱乐场 21

澳门新葡萄京娱乐场一、Servlet和JSP概述

1.1 Java Servlet及其特点

一、JSP简介

JSP全名为Java Server
Pages,Java服务器端页面,其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签。Jsp是一种动态网页技术标准,是在服务器端执行的

澳门新葡萄京娱乐场 1

它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

JSP是一种Java servlet,主要用于实现Java
web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

澳门新葡萄京娱乐场,  
Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java
Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是,
Servlet程序员收入要比Perl程序员高:-):

# 为什么使用JSP?

首先先了解CGI(Common Gateway Interface,通用网关接口),是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。

CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势:

  • 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
  • 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
  • JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java
    API,包括JDBC,JNDI,EJB,JAXP等等。
  • JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet
    模板引擎所支持。

最后,JSP是Java
EE不可或缺的一部分,是一个完整的企业级应用平台。这意味着JSP可以用最简单的方式来实现最复杂的应用。

高效。

# JSP的优势

以下列出了使用JSP带来的其他好处:

  • 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
  • 与纯
    Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
  • 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
  • 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
  • 与静态HTML相比:静态HTML不包含动态信息。

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。

# JSP总览图

澳门新葡萄京娱乐场 2

方便。

二、常用动态网站开发技术

常见动态网站开发技术对比:

澳门新葡萄京娱乐场 3

JavaEE比较适用于以下开发:

澳门新葡萄京娱乐场 4

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

三、JSP页面元素构成

澳门新葡萄京娱乐场 5

功能强大。

 3.1、JSP指令

JSP的三大指令元素:

澳门新葡萄京娱乐场 6

  • page指令语法:

澳门新葡萄京娱乐场 7

如:

澳门新葡萄京娱乐场 8

注意:pageEncoding是jsp文件本身的编码,contType的charset是指服务器发给客户端的内容编码。contType更常用。 

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

 3.2、JSP注释

在JSP页面的注释。

可以在JSP页面使用三种注释:

澳门新葡萄京娱乐场 9

如:

澳门新葡萄京娱乐场 10

可移植性好。

 3.3、JSP脚本

在JSP页面中执行的Java代码。

澳门新葡萄京娱乐场 11

写在这一对标签的所有语句都可以认为是JSP脚本。

Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet
Enterprise
Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft
IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

 3.4、JSP声明

在JSP页面中定义变量或者方法。

澳门新葡萄京娱乐场 12

如:

澳门新葡萄京娱乐场 13

节省投资。

 3.5、JSP表达式

在JSP页面中执行的表达式。

澳门新葡萄京娱乐场 14

如:通过表达式调用上面声明的函数或变量。

澳门新葡萄京娱乐场 15

运行结果:

澳门新葡萄京娱乐场 16

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。
   1.2 JSP及其特点

四、JSP页面的生命周期

JSP页面的生命周期是用户发出对jsp页面的访问,如果是第一次访问,jsp引擎就会将jsp文件生成为一个servlet,生成字节码文件执行jspInit(),注意这个方法只在生成字节码文件时会被使用,即在一个生命周期中只执行一次,然后对于不是第一次访问jsp页面时,直接返回字节码文件。

澳门新葡萄京娱乐场 17

具体说明:

澳门新葡萄京娱乐场 18

注意:

1、生成字节码文件,执行jspInit()只在第一次请求时执行,重复请求仅只执行一次。生成的文件在work里,【每次修改会重新编译,生成新的字节码文件】
2、jspService()用于处理用户请求,对于每一个请求,JSP引擎会创建一个新的线程来处理该请求【JSP多线程:降低资源需求,提高系统并发量及响应时间,但注意同步问题】。
3、由于该Servlet常驻于内存里,所以响应速度非常快。

Ps:当用户第一次请求一个jsp页面时,首先被执行的方法是构造方法。

   JavaServer
Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,有关JSP基础概念的说明请参见《JSP技术简介
》。

五、阶段项目

澳门新葡萄京娱乐场 19

表达式方式实现:

澳门新葡萄京娱乐场 20

脚本方式实现:

澳门新葡萄京娱乐场 21

注:out对象是JspWriter类的实例,用于向客户端输出内容

  
许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。例如,下面就是一个简单的JSP页面:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD>
<BODY>
<H1>欢迎</H1>
<SMALL>欢迎,
<!– 首次访问的用户名字为”New User” –>
<% out.println(Utils.getUserNameFromCookie(request)); %>
要设置帐号信息,请点击
<A HREF=”Account-Settings.html”>这里</A></SMALL>
<P>
页面的其余内容。.
</BODY></HTML>

   下面是JSP和其他类似或相关技术的一个简单比较:

JSP和Active Server Pages(ASP)相比

Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VB
Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。

JSP和纯Servlet相比

JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用
println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。

JSP和服务器端包含(Server-Side Include,SSI)相比

SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。

JSP和JavaScript相比

JavaScript能够在客户端动态地生成HTML。虽然JavaScript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。另外,由于是在客户端运行,JavaScript不能访问服务器端资源,比如数据库、目录信息等等。

发表评论

电子邮件地址不会被公开。 必填项已用*标注