JSP学习手册.docx
《JSP学习手册.docx》由会员分享,可在线阅读,更多相关《JSP学习手册.docx(16页珍藏版)》请在冰豆网上搜索。
JSP学习手册
WEB开发预备知识
什么是J2EE
JavaPlatformEnterpriseEditionJava平台企业版
J2EE又称为JEE,不可念成J二EE
JEE的作用
用于解决企业级应用开发中所遇到的问题
JEE的本质:
(集合)
1.JEE是一个规范集
2.JEE是一个技术集
3.JEE是一个框架集和API集
Java的发展方向
JCPJAVA社区(定义JAVA的标准)控制JAVA的技术发展
JSRJAVA服务规范
什么是企业级应用
企业级应用即大规模应用,不要单纯的从字面上理解这个名称
企业级应用的特点
1.用户较多
2.生命周期长
3.稳定性高
4.跨平台
5.可维护(可修改BUG)
6.可扩展(可以增加功能)
7.可重用
8.事务管理
9.安全管理
10.线程管理
11.等等
J2EE的技术分布
表现层:
ServletJspJavaBean(jdk5.0更新JSF)taglib
逻辑层:
EJB(sessionBean)
表现层与逻辑层之间进行通信靠RMI+JNDI/IIOP(后面介绍如何通信)
数据层:
JDBC(jdk6时JDBC4出台)EJB(EntityBean)
服务层:
JTAJTSJAAS
其他技术:
JMSJavaMailJMXJCAJPA等等
Servlet运行在服务器端的小应用程序
JSPJAVASERVETPAGE运行在服务器端的页面
JavaBeanJava封装数据的体系结构
taglib标签库
JSFJAVA服务器端界面(界面制作)
EJB企业JavaBean一种企业级开发的组件体系结构
RMI远程调用
JNDIJava命名与目录接口
JDBCJava数据库连接
JTAJava事务架构(主流)
JTSJava事务服务
JAASJava授权与验证服务(用于安全处理)
JMSJava消息服务
JavaMailJava邮件系统(POP3收邮件SMTP(简单消息传输协议)发邮件)
JMXJava微内核结构
JCAJava连接器架构(用于不同系统间集成)
JPAJava存储架构
企业级应用按照架构的分类
C/S客户端/服务端客户端需要进行大量的数据处理
B/S浏览器/服务器服务器端进行主要的运算
构建JEE平台的角色
工具提供商:
提供开发工具,如Eclipse
组件供应商:
开发人员使用工具开发组件
装备人员:
装备组件称为一个整体
平台供应商:
提供一个JEE运行的平台
部署人员:
将软件部署到JEE运行平台上
系统管理员:
管理系统
组件
完成一定业务功能的单一程序,类似于各种计算机卡,实现一种可插拔式的组建体系结构
容器
为组建提供一个服务的平台,运行在服务器上
功能:
1.提供组件的运行环境
2.控制组件的生命周期
服务器
容器运行的硬件保障
功能:
1.提供容器的运行环境
2.实现JEE的服务(很多)
常见的服务器
WEB服务器:
只提供WEB容器
JEE服务器:
提供WEB容器于EBJ容器
例如:
WEBLOGICBEA
WEBSPHEREIBM
TOMCAT开源
JBOSS开源
以上列出的是4种WEB服务器,都可以支持JEE平台
市场主流开发技术还有.NET,JEE于.NET的体系结构图对比
J2EE.NET
数据层:
JDBC实体BEANODBCADO.NET
业务层:
会话BEANJAVABEANCOM+(多种COM组件)
表现层:
B/SJSP/SERVLETB/SASP.NET
客户层:
C/SswingWINFORM
组件、容器于服务器的关系(图)
组件功能将如何展现出来
1.组件与容器之间连接通过部署描述进行,使其两者配合在一起工作,通过XML文件写
2.容器调用组件通过写在组件中的回调方法进行
3.部署描述与回调方法由规范来约定
4.组件访问容器或服务器使用context进行
客户端调用服务器上的组件功能
访问:
使用SOCKET连接相应的服务器
调用:
RPC:
远程过程调用
RMI:
远程方法调用(主流)
调用机制:
RMI:
调用其他机器虚拟机的运行中的方法
调用流程
客户端机Client服务端机Server
方法:
CM(){方法:
SM(){}
s.SM();
}
客户端发送请求:
1.告诉RMI调用谁的机器,哪一个方法,用什么参数
2.打包要传输的信息
3.传输
服务端接收请求:
1.接收信息
2.解包信息
3.创建一个skeleton骨架
4.执行具体操作
5.得到返回值
6.根据skeleton得到信息,将内容返回
7.打包
8.发送
客户端接收:
4.接收
5.解包
6.取值
完成操作
通过RMI远程调用会抛异常RemoteException
RMI不会单独使用,配合JNDI
JNDI(Java命名与目录接口)
为服务命名,方便调用服务器上的服务
为目录命名,按类快速查找
命名规则包含在javax.naming包中
服务知识:
webservice与(通信协议)SOAP属于SOA面向服务架构
RMI+JNDI连接如何具体实现的流程:
1.设置环境变量使用方法:
System.setProperty()
a)设置连接的URL
b)设置JNDI的初始化工厂
2.设置InitialContext初始化上下文context
3.查找服务ctx.lookup(“服务的名称”)
JDBC
驱动类型
type1借用ODBC连接(借用别人的)为解决该问题,出现type2
type2本地连接(不能跨平台)为解决该问题,出现type3
type3Java+本地(非自己的东西)为解决该问题,出现type4
type4纯Java实现
加快执行并提高安全,实现预编译
PrepareStatementpstmt=conn.prepareStatement(sql);
ResultSetrs=pstmt.executeQuery();
执行select*from…whereid=?
设置?
使用pstmt.setString(1,”aaa”);该语句出现在执行之前
事务
事务边界:
事务的开始到结束的中间过程
事务的特点:
ACID
A:
事务的原子性:
都成功或都失败
C:
一致性:
在事务的操作过程前后,数据满足同样的规则
I:
隔离性:
事务内部数据对外的可见性和可操作性
D:
稳定性:
无论出现什么状况,数据都能被正确的持久化,正确的保存
开启事务后
在执行操作前:
conn.setAutoCommit(false);
在执行之后:
mit();
出现异常中:
conn.rollback();
批处理:
Statementstmt=conn.creatStatement();
Stmt.addBatch(sql1);
Stmt.addBatch(sqln);
Stmt.executeBatch();
Tomcat服务器配置
操作步骤
1.解压Tomcat服务器压缩包
2.配置系统环境变量,在环境变量中添加JAVA_HOME的配置,值为系统安装的JDK根目录。
(注意:
不要在后面添加;号)
3.执行Tomcat安装目录下的bin目录下的startup.bat指令,当提示行出现如下语句表明Tomcat服务器启动成功
Tomcat目录下的目录层次结构
Bin包含Tomcat所有的可执行文件,包括启动,退出等常用指令
ConfTomcat所有的设置目录
LibTomcat所有的类库目录
LogsTomcat的日志文件目录
TempTomcat的临时文件目录
WebappsTomcat的WEB应用程序目录
WorkTomcat真正的执行文件目录(纯servlet内核)
验证Tomcat是否真正安装成功
启动Tomcat服务器后,打开IE浏览器,输入地址
http:
//localhost:
8080
如果启动Tomcat服务器管理页面,表明服务器启动成功
使用Tomcat模拟WEB应用中打开HTML文件
1.创建任意的HTML文件
2.将该文件放入Tomcat根目录下的webapps目录下的任意目录层次中
3.启动Tomcat,在IE浏览器中通过如下地址进行访问
http:
//locathost:
8080/目录层次结构/run.html
如果成功打开页面,表明Tomcat应用服务器操作成功
URL分析
http:
//localhost:
8080/目录层次结构/run.html
localhost表示所要连接的服务器地址;8080表示服务器地址对外提供服务的端口;目录层次结构中的第一个目录称为WEB应用,后面的层级即为应用下的其他分目录,使用该形式访问要访问的目标文件
WEB应用技术
Internet
Internet译为国际互联网,也有的把它称之为环球网或因特网。
Internet的产生,好比当年电视的出现。
电视作为本世纪一个重要的事物,它影响了几代人,而Internet更是本世纪中架构在地球村的超级高速公路,在上面你可以和国内外的同事一起来次Net Meeting(网络会议),共商公事;利用E-mail(电子邮件)可以很快地(几秒钟的事情)向远方的朋友,甚至地球另一面的朋友发送邮件;在网上商店选购自己喜爱的商品,方便又快捷,不用天天逛市场啦;网上理财投资面面俱到,炒股一族不用整天泡在证券交易所呆呆地看着屏幕啃干粮。
当然,Internet的好处不止这些,你以后试了就知道。
那么,计算机网络是什么?
Internet是什么呢?
我们可以将各处的计算机通过通讯线路连接在一起,构成一个高效率的通讯网,据此称之为计算机网络。
凭着这种通讯网,所有在网上的终端机或电脑都能享受网上(即其他电脑内)所有的资源,比如程序、图文资料等。
而Internet则不是指单个区域范围内的网络,而是将横跨全球的各种不同类型的计算机网络连接起来的一个全球性的网络。
在Internet上我们有取之不尽、用之不竭的信息财富。
HTTP协议
我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符)。
就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。
当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。
浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
因此,在我们认识HTTP之前,有必要先弄清楚URL的组成,例如:
1.http:
//:
代表超文本传输协议,通知服务器显示Web页,通常不用输入;
2.www:
代表一个Web(万维网)服务器;
3.M
4.China/:
为该服务器上的子目录,就好像我们的文件夹;
5.Index.htm:
index.htm是文件夹中的一个HTML文件(网页)。
我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层(Applicationlayer),它包含所有高层的协议。
高层协议有:
文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
这就是你为什么在浏览器中看到的网页地址都是以“http:
//”开头的原因。
自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎么能够更加容易地找到我们需要的资讯呢?
当决定使用超文本作为WWW文档的标准格式后,于是在1990年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协议。
经过几年的使用与发展,得到不断的完善和扩展,目前在WWW中使用的是HTTP/1.0的第六版。
MIME规范:
网络传输文件的默认规范
MIME表示多用途Internet邮件扩允协议。
MIME扩允了基本的面向文本的Internet邮件系统,以便可以在消息中包含二进制附件。
RFC822在消息体的内容中做了一点限制:
就是只能使用简单的ASCII文本。
所以,MIME信息由正常的Internet文本邮件组成,文本邮件拥有一些特别的符合RFC822的信息头和格式化过的信息体(用ASCII的子集来表示的附件)。
这些MIME头给出了一种在邮件中表示附件的特别的方法。
MIME信息包含了哪些东西?
一个普通的文本邮件的信息包含一个头部分(To:
From:
Subject:
等等)和一个体部分(HelloMr.,等等)。
在一个符合MIME的信息中,邮件的各个部分叫做MIME段,每段前也缀以一个特别的头。
MIME邮件只是基于RFC822邮件的一个扩展。
然而它有着自已的RFC规范集。
头字段
MIME头根据在邮件包中的位置,大体上分为MIME信息头和MIME段头,MIME信息头指整个邮件的头,而MIME段头只每个MIME段的头。
MIME信息头有:
MIME-Version:
这个头提供了所用MIME的版本号。
这个值习惯上为1.0。
Content-Type:
它定义了数据的类型,以便数据能被适当的处理。
有效的类型有:
text,image,audio,video,applications,multipart和message。
注意任何一个二进制附件都应该被叫做application/octet-stream。
这个头的一些用例为:
image/jpg,application/mswork,multipart/mixed。
Content-Transfer-Encoding:
它说明了对数据所执行的编码方式,客户/MUA将用它对附件进行解码。
对于每个附件,可以使用7bit,8bit,binary,quoted-printable,base64和custom中的一种编码方式。
7bit编码是用在USASCII字符集上的常用的一种编码方式。
8bit和binary编码一般不用。
对可读的标准文本,如果传输要经过对格式有影响的网关时对其进行保护,可以使用quotedprintable。
Base64是一种通用方法,在需要决定使用哪一种编码方法时,它提供了一个不用费脑子的选择;它通常用在二进制,非文本数据上。
注意,任何非7bit数据必须用一种模式编码,这样它就可以通过Internet邮件网关。
Content-ID:
如果Content-Type是message/external-body或multipart/alternative时,这个头就有用了。
Content-Description:
这是一个可选的头。
它是任何信息段内容的自由文本描述。
描述必须使用us-ascii码。
Content-Disposition:
这是一个试验性的头,它用于给客户程序/MUA提供提示,来决定是否在行内显示附件或作为单独的附件。
什么是CGI?
CGI是CommonGatewayInterface的简称。
是一个用于定Web服务器与外部程序之间通信方式的标准,使得外部程序能生成HTML、图像或者其他内容,而服务器处理的方式与那些非外部程序生成的HTML、图像或其他内容的处理方式是相同的。
因此,CGI程序册仅使你能生成表态内容而能生动态内容。
使用CGI的原因在于它是一个定义良好并被广泛支持的标准,没有CGI就不可能实现动态的Web页面,除非使用一些服务器中提供的特殊方法(如今,也有除CGI之外的其他技术逐渐在成为标准)。
CGI主要的功能是在WWW环境下,藉由从客户端传递一些讯息给WWWServer,再由WWWServer去启动所指定的程式码来完成特定的工作。
所以更明确的说,CGI仅是在WWWServer上可执行的程式码,而她的工作就是控制讯息要求而且产生并传回所需的文件。
使用CGI,你的Server可以读取并显示在客户端无法读取的格式(像是SQLDataBase)。
而且可以像闸道(Gateway)一样,在伺服端和客户端之间,产生客户端所需要的讯息。
基本上,在此种主从式(Client/Server)的环境之下,其IPC(InterProcessCommunication)的协定是利用讯息传递及记忆体分享(环境变数)的方式来完成。
CGI有其特定的写法及规格,必须遵守其原则,方可达到主从端资讯交流的目的。
了解性知识
Internet
HTTP
HTTP协议
HTML文档
MIME规范
客户服务器架构
通用客户/服务器Ineternet架构
HTTP的客户/服务器架构
WEB浏览器
WEB服务器
WEB站点与WEB应用的区别
WEB站点是静态的,主要用于展示
WEB应用是动态的,主要用于交互
WEB应用的实现形式及优缺点
CGI(通用网关程序)早期
JAVAServlets
JSP
MVC简介
JEE平台简介
WEB应用架构
Servlet简介
Web应用的部署描述符
Servlet的生命周期
ServletContext
Web应用的异常处理
会话管理
Web应用的安全
Web应用的并发问题
JSP简介
MVC模式
Model1架构(JSP+JavaBean)
Model2架构
JSP重用模版
WEB应用中的数据库连接技术
自定义标签库
开发自定义标签库
开发高级自定义标签
WEB应用程序与EBJ组件的集成