- 浏览: 113374 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
wenbing2610:
其实用Struts实现图片上传比用Servlet实现容易多了。 ...
Struts2文件上传深入FileUploadInterceptor -
i_feng:
public class uploadImageAction ...
Struts2文件上传深入FileUploadInterceptor -
wenbing2610:
...
ognl.MethodFailedException
一. Servlet简介
客户机/服务器计算的发展。Java提供了一整套客户机/服务器解决方案,在这个方案中,程序可以自动地下载到客户端并执行,这就是applet。但是它仅仅是问题的一半。问题的另一半就是Servlet。
servlet可以被认为是服务器端的applet。servlet被Web服务器加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种作业,然后返回结果。使用servlet的基本流程如下:
·客户端通过HTTP提出请求.
·Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载,Web服务器将把它加载到Java虚拟机并且执行它。
·servlet将接收该HTTP请求并执行某种处理。
·servlet将向Web服务器返回应答。
·Web服务器将从servlet收到的应答发送给客户端。
由于servlet是在服务器上执行,通常与applet相关的安全性的问题并不需实现。要注意的是Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。 而servlet是用Java编写的,所以它们一开始就是平台无关的。这样,Java编写一次就可以在任何平台运行(write once,run anywhere)的承诺就同样可以在服务器上实现了。
servlet还有一些CGI脚本所不具备的独特优点: servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。与之相反,CGI脚本是短暂的、瞬态的。每一次对CGI脚本的请求,都会使Web服务器加载并执行该脚本。一旦这个CGI脚本运行结束,它就会被从内存中清除,然后将结果返回到客户端。CGI脚本的每一次使用,都会造成程序初始化过程(例如连接数据库)的重复执行。
servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
setvlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们,就像你使用applet一样。
二.JSP与Servlet
现在已经对Servlet有了大概的了解,现在我们就来说说JSP和Servlet的关系。 JSP是一种脚本语言,包装了Java Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。尽管如此,JSP仍没有超出Java和Servlet的范围,不仅JSP页面上可以直接写Java代码,而且JSP是先被译成Servlet之后才实际运行的。JSP在服务器上执行,并将执行结果输出到客户端浏览器,我们可以说基本上与浏览器无关。它是与JavaScript不同的,JavaScript是在客户端的脚本语言,在客户端执行,与服务器无关。
JSP与Servlet之间的主要差异在于,JSP提供了一套简单的标签,和HTML融合的比较好,可以使不了解Servlet的人可以做出动态网页来。JSP修改后可以立即看到结果,不需要手工编译,JSP引擎会来做这些工作;而Servelt缺需要编译,重新启动Servlet引擎等一系列动作。但是在JSP中,HTML与程序代码混杂在一起,而Servlet却不是这样。
下面我们对JSP的运行来做一个简单的介绍:当Web服务器(或Servlet引擎,应用服务器)支持JSP引擎时,JSP引擎会照着JSP的语法,将JSP文件转换成Servlet代码源文件,接着Servlet会被编译成Java可执行字节码(bytecode),并以一般的Servlet方式载入执行 JSP语法简单,可以方便的嵌入HTML之中,很容易加入动态的部分,方便的输出HTML。在Servlet中输出HTML缺需要调用特定的方法,对于引号之类的字符也要做特殊的处理,加在复杂的HTML页面中作为动态部分,比起JSP来说是比较困难的。 除去了转换和编译阶段,JSP和Servlet之间的区别实在是不大。
JSP引擎通常架构在Servlet引擎之上,本身就是一个Servlet,把JSP文件转译成Servlet源代码,再调用Java编译器,编译成Servlet。这也是JSP在第一次调用时速度比较慢的原因,在第一次编译之后,JSP与Servlet速度相同.因为在整个运行过程中,JSP引擎会检查编译好的JSP(以Servlet形式存在)是否比原始的JSP文件还新,如果是,JSP引擎不会编译;如果不是,表示JSP文件比较新,就会重新执行转译与编译的过程。
JSP的运行和开发环境
浏览器:常见的浏览器有IE和火狐两种。
数据库:Oracle,SQLServer,MySQL,Sybase,DB2,Access,等。
操作系统:常见的有Windows,Linux,以及各种Unix系统。
Web服务器:常见的有IIS,Apache,Netscape Enterprise Server等。
JSP引擎:一般JSP引擎都以Servlet引擎为基础,并以Servlet的形式出现。同时,在各种免费和商业引擎的实现中,Servlet引擎和Jsp引擎通常也是一起出现,我们成为Servlet/JSP引擎,或从某种成为JSP引擎。
Servlet的作用:简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。后来SUN推出了类似于ASP的镶嵌型的JSP(是Servlet发展的产物),把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。
发表评论
-
CSS样式表的overflow属性
2015-01-02 19:22 28一、滚动条样式overflow ... -
jrebel运用
2014-07-13 22:00 1144JRebel热部署 ... -
JPA执行原生SQL截断Char类型问题
2014-05-24 21:39 1137在JPA的API中执行原生 ... -
JPA基本数据类型映射
2014-05-24 21:06 3842/** ... -
spring定时器配置
2014-03-18 21:36 656创建测试类: ... -
The Struts dispatcher cannot be found
2013-11-03 18:48 614运行环境:struts2环境中访 ... -
JasperException
2013-09-15 20:41 984JasperException异常: ... -
equal symbol expected
2013-09-15 20:08 1139equal symbol ... -
Hibernate主键生成器
2013-09-12 21:11 759... -
Criterion和Criteria
2013-09-08 16:00 1854Hibernate Criter ... -
getHibernateTemplate用法
2013-09-08 15:02 541HibernateTemplate提供的方法 ... -
JS中页面跳转
2013-09-08 14:01 617<html><head><t ... -
GridPanel详解
2013-03-10 10:45 9901、Ext.grid.GridPanel ... -
tomcat内存溢出
2013-03-04 20:26 689在使用Java程序从数据库中查询大量的数据或 ... -
History Object
2013-01-07 21:06 708history 对象是window 对象的另一个子 ... -
Write to programmer
2012-12-29 20:16 806很多的java初级程序员对自己没有一个明确的方 ... -
EL语言
2012-09-27 22:08 847EL的前世今生: ... -
JSTL标签的使用
2012-09-27 22:00 752JSP 标准标记库( Standard Tag Library ... -
使用IBATIS防止sql注入
2012-08-26 21:17 1534对于ibaits参数引用可以使用#和$两 ... -
IBATIS动态SQL标签用法
2012-08-26 21:04 11451、动态SQL片段通过SQL片 ...
相关推荐
JSP与Servlet学习课件
JSP与Servlet程序设计实践教程.pdf 电子版。
JSP实验报告,完整,详尽。1. 系统概述 图书馆管理系统,具有登录、注册、图书的添加、修改、删除,个人信息查询、修改,退出等功能。
JSP与Servlet核心技术JSP与Servlet核心技术JSP与Servlet核心技术
JSP与Servlet开发技术与典型应用教程完整版课件全套ppt教程(最新).ppt
JSP与Servlet复习
jsp与Servlet跳转jsp与Servlet跳转jsp与Servlet跳转,图形并茂
JSP与Servlet联合JSP与Servlet联合
JSP与servlet之间的传值JSP与servlet之间的传值
简单介绍了jsp与servlet的一些基本的联系和区别
jsp与servlet文件上传代码,可以上传中文文件名,不乱码 jsp与javaBean文件上传代码,但上传中文文件名乱码 刚写完的。
JSP与Servlet核心技术
利用jsp与servlet结合,在oracle数据库中查询数据的一个简单实用的例子的全部代码。
总结JSP与servlet之间的传值 JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP。 通过对象 request和 session (不考虑 application)完成传值。
jsp与servlet的介绍,jsp入门,servlet入门必看。
一本不错的关于jsp与servlet的电子书