CGI (JSP的前身)
了解JSP之前我们要先知道一下CGI,在客户端请求是一个静态的HTML网页数据时,web服务器会自行处理返回信息,如果涉及动态数据的话,就要由内嵌的CGI程序负责处理,再由web服务器传回
这本身就增加了系统整体资源的负担,因为CGI程序属于"操作系统进程",对于每次的HTTP请求都必须对应的开启一个CGI服务
CGI程序的编写可以有多种语言,这导致他不一定对所有系统兼容
CGI也无法形成一种通用的规范,因为不同服务器的CGI代码都不同
此时JSP出生了
JSP基于Java的"平台无关性",能够实现再各平台的迁移
在客户端执行的网页语言(动态网页)
动态网页的程序语言可以分为客户端Script语言和服务器端网页语言
客户端Script语言就是只需要再客户端利用浏览器解释的网页语言,比如JavaScript和VBScript,客户端的Script语言可以直接在浏览器端完成一些工作,不用将所有工作都返回服务器,降低了服务器负担,但是他最大的缺点是无法集成服务器上的资源,如文件操作和数据库存取等
但是拥有script的网页仅仅只是一个拥有动态效果的网页,而不是一个真正的有互动行为的网页,因为服务器将网页送出时就无法再与其沟通
在服务器端执行的网页语言(交互动态网页)
服务器端网页语言和前者不同的是他要进行两次解释,一次在服务器,一次在客户端
在服务器通过JSP文件创建HTML页面时,不同的条件可以用同一份JSP文件输出完全不同的网页内容,包括Script代码
可以用于交互式动态网页技术的除了JSP还有CGI,ASP和新版的ASP.NET
网站数据库
如果在解析JSP文件时,遇到包含数据库操作的代码,web服务器就会连接相应的数据库服务器,并执行需要的SQL语句,如插入,修改,删除等,这个过程称为HTTP响应.这里的Web服务器和数据库服务器在物理上可以是同一台服务器,也可以是相距非常远的两台或多台服务器
网页开发时,我们仅需要数据库的基本操作,如插入,修改,删除等
JSP网页主要是为了提供 用户与服务器数据库的操作存取功能,JSP网页也是数据库内容的展示界面
客户端浏览器,服务器JSP网页,数据库三者形成一个交互式的数据库网站
正文开始!! 什么是JSP
JSP页面代码具有web和Java功能的双重特性,一般由HTML语句和特殊的基于Java语言的嵌入标记组成
写代码时可以随便用HTML语句写,遇到动态部分用特殊标记嵌入即可,标记常为 <% 阿巴阿巴 %>
每个页面都被Java虚拟机事先解析成一个Servlet,在接收到HTTP请求后,Servlet将开启一个线程来提供服务,服务结束后将自动销毁这个线程