在缺省模型中,只载入servlet(或JSP)的单一实例。Servlet引擎维护线程池,当请求到达时将其设置到请求。每个线程运行适当的服务方法,典型为donget()或dopost()。在高峰活动期,许多请求可能通过同一个servlet方法在同时运行,但因为每个线程都有其自己的指令指针和本地变量栈,请求间不会发生冲突。缺省模型提供好的吞吐率,但存在一些限制。因为只有一个servlet实例,任意实例变量只存在一个副本。如果考虑不谨慎,代码允许写入变量,一个线程覆盖了另一个线程所需的值。写入和读取就可能发生重叠。还有,如果donget()或dopost()方法调用子过程,它必须将所有必要对象作为参数传递,因为从其被写入知道子过程读取它们为止,不能依赖实例变量保留其值。

XML解决的问题
早期的文本处理格式经常不会区分内容和表示。例如,RTF具有类似于表格和列表的结构化数据编码以及字体和图像编码。HTML也遇到了同样的问题。类似于table标签、tr标签和td标签具有指定宽度和长度属性的元素通常用于对web页面的物理布局产生影响,而不是以列表风格将相关条目分组。
此方法的问题是当需要新的输出格式时,包含在文档中的格式化信息变得毫无用处。更糟的是,最初设计来传送结构化信息的标签只是因为其边界影响会被无用,如使用UL标签时产生缩进。
比较起来,XML则完全基于结构。特定数据元素可被清晰标识并通过文本搜索应用抽取出来。如果一个XML文档需要交付给web浏览器,可使用XSL样式单编程将其转换为HTML。如果文档需要用于一个事务处理系统,可通过XML解析器解析它,该解析器抽取指定域完成事物处理。XML文档可作为一个树型结构加以浏览或将其压缩成关系型数据库表格。只要使用文档的应用知道其编写语言,应用就可以找到并抽取所需数据。
XML解析器
为使用应用中的XML文档,需要对其进行解析。一个XML解释器读取文档并将其分隔称为开始标签、属性、体内容和结束标签。解析器具有应用程序接口,使用户可以不必自己去解释输入流的复杂性而轻松抽取所需元素。存在两种常用的XML解析器模型:1、DOM文档对象模型。2、SAX,XML的简单API。
文档对象模型(DOM)是内存中文档的W3C标准表示法。与文本字符串不同,DOM将文档表示成一个节点树。该树可按任意次序遍历。节点可被增加和删除并且已修改DOM树可被保存为新文档。DOM规范有不同的版本,由级别指定。DOM级别1是核心特性集,提供和访问文档元素的方式。DOM级别2作为W3C推荐产品被批准,增加了对名空间的支持。
JSP的调试工具
大部分商业集成化开发环境(IDES)都提供某种调试器使你可以步进执行一个Java类,检验并可能改变变量的取值。JDK包含一个命令行调试器名为jdb,它或多或少地执行以上功能。这些工具可能会有用,但用于调试JSP代码时有一些弊端。
首先,JSP页面与其等价的字节代码并不存在紧密的映射关系。它们可能由scriptlet、伪指令、表达式、HTML和定制标签组成。如果对按行进行跟踪有兴趣,就需要使用生成的servlet源码,而不是.jsp文件惊醒调试。
另外,JSP类被载入并运行于由可能链接到web服务器的servlet引擎控制的单独的虚拟机中。为了调试单独的类,必须以调试模式启动整个servlet引擎。需要验证所有同样的类路径入口都是激活的并使用相同的端口等等。你甚至可以指出其执行方式。这使得调试环境与真正的运行时环境有很大差别。还有,在两种环境之间微小的差异可能会导致出现与正在被调试的问题无关的超时和竞争条件。
捕获窗体参数
当使用HTML窗体发送请求参数到一个JSP或servlet时,明显需要测试的是能够知道其发送的参数及其取值。这通常是不明显的。如果一个SELECT元素允许多个选择,那么请求参数值是什么?发现以上取值的一种容易方式是使用捕获请求参数并作为表格形式的名字/取值对显示它们调试的JSP页面。
从请求对象中取得所有参数名,然后循环列表并打印每一参数的名字和取值。唯一难的是参数可能有多个取值。例如,检查框组可以有同样的名字但却有不同的value属性。Servlet API考虑了这一点,提供了请求对象中的getParameterValues()方法返回一个取值组。
使用JDBC连接后台数据库
当我们的JSP程序获取数据库的数据时,是无法直接进行存取的,因为后台数据库并无法明白JSP命令的意义。所以,当我们要存取后台数据库时必通过一个标准接口来存取,那就是JDBC。所以,JDBC可以说是JSP程序与后台数据库的一个沟通管道。基本上,JDBC也可以说是一种API,它主要的功能:1、建立与后台数据库的连接。2、向后台数据库传送SQL程序处理。3、将查询的结果传回JSP程序处理。
由于JDBC是由Java语言所开发而成的,所以具有跨平台的特性。程序开发人员只要专注于程序的开发及SQL语句的撰写,即可通过JDBC这个标准接口来存取后台数据的数据。但是,要与它连接的数据库需具备有相对应的JDBC驱动程序,否则是无法连接的。
通过web存取数据库
信息爆炸的时代,在许多时候,我们不但利用数据库保存大量的信息,更会利用网际网络来散布这些有用的信息,和数据库相连的web网站在网际网络上大受欢迎,如国内著名的人力资源网站,提供在线数据库让许多求职者在网站上登录自己的履历数据,也可以让许多公司在网站内的履历数据库中寻找合适的人才,这使得求职者和求才者形成一个非常良好的互动关系。
存取架构仍是遵循传统的client/server架构。在服务器端由web服务器和数据库服务器所组成,而client端只需要一个支持Java的浏览器即可。服务器端的web服务器负责执行JSP程序,我们在JSP程序中通过JDBC的处理机制来和数据库服务器相连,并取数据库中的数据,当让我们也可以通过JDBC向数据库下达SQL命令,对数据库进行新增、删除和修改记录等操作,这一切都靠JDBC提供的类与方法来达成。Web服务器还有一个工作,便是将我们操作数据库的结果,以HTML的形式通过HTTP协议,回传给前端的浏览器。在这整个存取架构中,最重要的部分就JDBC,没有JDBC,我们的JSP程序根本没有办法和数据库相连。
面向对象的编程方法
现在,面向对象的编程方法早已经成为编程的主流,那么究竟怎么理解面向对象这个概念呢? 小编带大家一起来了解一下!!
1、万物皆对象。将对象想成一种特殊的变量;它存储数据,而且还可以让你提要求,命令它进行某些操作。从理论上讲,你可以把所有待解决的问题中的概念性组件都表示成程序里的对象。
2、程序就是一组相互之间传递消息,告诉对象该干些什么的对象。你只要向那个对象发一个消息,就能向它提出要求。更确切的说,你可以这样认为,消息是调用专属某个对象的方法的请求。
3、每个对象都利用别的对象来组件它自己的记忆。换言之,你通过将已有的对象打成一个包,来创建新的对象。由此,你可以将程序的复杂性,隐藏在对象的简单性之下。
网站建设编码中复用实现
一旦类创建完成并且测试通过之后,它就应该能(很好地)表示一段有用的代码。但实际上代码复用并不像我们希望的那样容易;要设计一个复用性良好的对象,需要经验和远见。代码复用是OOP语言最显著的优点之一。
复用代码最简单的方式是直接用这个类来创建对象,但是你也可以将那个类的对象放到一个新的类中。我们把它称为创建一个成员对象。为了能让那个新的类提供你所设计的功能,它可以由任意多个,任意类型的对象,以任意形式组合在一起。由于你是用已有的类来合成新的类,因此这一概念被称为合成。通常将合成称为“有”关系,就像“轿车有引擎”。
继承复用接口
当你继承了一个类时,你也创建了一个新的类。这个新的类不仅包含了已有类的所有成员(尽管private成员已经隐藏起来了,是不能访问的),更重要的是它复制了基类的接口。于是所有能够传给基类的消息也都可以传给派生类。由于我们根据它能接受什么消息来判断这是什么类,因此这就意味着派生类和基类是属于同一类型的。
既然基类和派生类具有相同的基本接口,那么这个接口的背后就必须跟着实现。也就是当对象收到某个消息的时候,它必须能执行一些代码。如果你只是继承了一个类,其他什么都不做,那么基类的方法会直接带进派生类,也就是说派生类的对象与基类的对象的类型相同而且行为也一样,这可就没有什么吸引力了。