Java Server Pages基础概念.docx
- 文档编号:12637275
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:20
- 大小:29.28KB
Java Server Pages基础概念.docx
《Java Server Pages基础概念.docx》由会员分享,可在线阅读,更多相关《Java Server Pages基础概念.docx(20页珍藏版)》请在冰点文库上搜索。
JavaServerPages基础概念
JavaServerPages基础概念
第1章JSP概述
1.1Java技术的发展
1.2JavaServlet
JavaServlet是运行在Web服务器端的Java程序,与平台无关,内部以线程方式提供服务,每个JavaServlet程序都有一定生命周期,当服务器程序加载一个JavaServlet程序时,它运行servlet的Init()方法,当JavaServlet被加载和初始化后,它就可以执行Service()方法来处理客户端的请求。
在处理客户请求时需要使用servletRequest(负责从客户端传来的参数)和servletResponse(负责将处理的结果返回客户端)两个对象。
一个JavaServlet可以同时处理多个客户的请求,每个Service()方法都运行在一个线程中,当服务器程序不需要某个JavaServlet程序时,可以用Destory()方法将其卸载掉。
1.3JavaServerPages
JSP是一种混合模板系统,脚本可以包含实际编程代码嵌入JSP,JSP支持一组HTML这样的标签集,与服务器用Java对象交互,不需在页面上显示源代码。
JSP是基于Java的开发web应用的集成部分,通过使用脚本元件和面向对象的组件,组合成标准标识文本,把表示从实现逻辑当中分离,JSP提供了web分离前端技术。
1.4Web开发工具简介
1)CGI(通用网关接口):
第一个用于建立动态Web页的实用技术,服务器可以调用某一程序来响应客户的请求,但服务器接受到一个要访问CGI程序的请求后,必须要为每个CGI请求建立一个进程
2)FastCGI:
每个CGI程序建立一个进程
3)ISAPI与NSAPI:
可以开发出用于增强相应服务器性能的代码,从而扩展服务器的能力
4)ASP(ActiveServerPage):
在HTML嵌入某些代码,这些代码由服务器执行,并把执行结果返回给客户端,适合用于生成小网页
5)Serve-SideJavaScript(SSJS):
用于服务器端的Javascript的脚本语言,面向对象(模型)的语法,SSJS是一种被编译语言,依赖于Netscape的HTTP服务器
6)PHP(个人主页开发工具):
支持多平台
1.5JavaServlet的特点
1)可移植性好:
具有平台无关性
2)性能强大
3)执行效率高:
系统为每个JavaServlet保留一个对象实例
4)安全性好
1.6JSP的优点
1)性能:
通过Servletcontainer作为一个线程在HTTPServer内运行实现的,Java类文件是被编译成独立于平台的字节码,而不是原始汇编代码;JVM的工作就是在运行时将这种字节码翻译成本地平台指令
2)可复用的组件:
JSP常驻服务器端有类似于HTML的标签集,用来建立、询问和修改服务器端JavaBeans
3)分离表示和实现(SeparatingPresentationandimplementation):
严格分离表示(最终用户显示)与实现(在第一位置产生信息的代码),JSP具有扩充标签技巧
第2章Java程序设计基础
2.1Java语言规则
Java语言的源程序代码由一个或多个编译单元(一个程序包语句、入口语句、类的声明、界面声明)组成,每个编译单元最多只能有一个类或界面是公共的
注释有三种类型:
// 注释一行
/* 一行或多行注释 */
/** 文档注释 **/
标识符以字符或_开头,后面可以包含数字,大小写有区别,没有长度限制
Java的五种基本类型:
integer(整数),floating(浮点数),point(指针),Boolean(布尔变量),CharacterorString(字符或字符串)
8bits byte
16 bitsshort
32bitsint
64bitslong
32bits float
64bits double
truefalse
创建数组的方法:
1)创建一个空数组
intlist[]=newint[50];
2)用初始数值填充数组
Stringnames[]={"Chenji","Yuan","Chun","Yang"};
运算符(operator)优先级从高到低排列如下:
[]()++--!
~*/%(取模)+-<<(左移)>>(右移)>>>(添零右移)<><=>===!
=&(位与)^&&||?
:
=
控制结构:
分支结构、循环结构
2.2Java变量和函数
成员函数是一个可被其它类或自己类调用的处理子程序,构造函数是一个特殊的成员函数,函数名称一般与本类名程相同,没有返回值
2.3子类
关键词extends来定义对象有的子类
publicpublicvoidAnyOneCanAccess(){}public实例变量和成员函数可以任意其它类调用
protectedprotectedvoidOnlySubClasses(){}protected实例变量和成员函数只能被其子类调用
privateprivateStringCreditCardNumber;private实例变量和成员函数只能在本类里调用
friendlyvoidMyPackageMethod(){}缺省的,如果没有定义任何访问控制,实例变量或函数缺省定义成friendly,意味着可以被本包里的任意对象防问,但其它包里的对象不可访问
2.4this和super
this关键词是指向这个类本身的指针,如果在一个子类里覆盖了父类的某个成员函数,但又想调用父类的成员函数,可以用super关键词指向父类的成员函数
2.5类的类型
Abstract:
一个abstract类必须至少有一个虚拟函数,不能直接创建对象,须继承子类后才能
Fina:
l一个final类声明了子类链的结尾,用final声明的类不能再派生子类
Public:
public类能被其它的类访问。
在其它包里,如果想使用这个类必须先import,否则它只能在它定义的package里使用
Synchronicable:
标识表示所有?
copy;类的成员函数都是同步的
2.6抽象类
当一个类包含一个abstract成员函数,这个类必须定义为abstract类,然而并不是abstract类的所有的成员函数都是abstract的,Abstract类不能有私有成员函数,也不能有静态成员函数
2.7接口
一个接口提供了封装成员函数协议的方法而不必强迫用户继承类,一个接口类可以被任意多的类实现,每个类可以共享程序接口而不必关心其它类是怎样实现的
2.8包(Packages)
包(Package)由一组类(class)和界面(interface)组成,如果使用package语句,编译单元的第一行必须无空格,也无注释,packagepackageName;若编译单元无package语句,则该单元被置于一个缺省的无名的包中。
在一个包中的代码有两种方式定义来自其它包中的类和界面:
(1)在每个引用的类和界面前面给出它们所在的包的名字
//前缀包名法acme.project.FooBar
obj=newacme.project.FooBar();
(2)使用import语句:
//从acme.project引入所有类importacme.project.*;
在使用一个外部类或界面时,必须要声明该类或界面所在的包,否则会产生编译错误
Java系统包:
Java语言提供了一个包含窗口工具箱,实用程序,一般I/O,工具和网络功能的包。
•java.applet
包含了一个类Applet和三个接口.AppletContext;AppletStub;和AudioClip;
•java.awt
包含了一个产生装饰物和GUI成员的类,包括:
Button,Checkbox,Choice,Component,Graphics,Menu,Pane1,TextArea,TextField
•java.ioI/Opackage
包含文件输入/输出类,FileInputStream和FileOutputStream.
•java.lang
包含Java语言类,包含对象,线程,异常出口,系统,整数,原点,数学,字符等
•
支持TCP/IP网络协议,并包含Socket类,URL和URL相联系的类
•java.util
这个类包含一?
copy;程序的同步类,它包含Date,Dictionary类等
第3章JavaServerPages(JSP)
3.1概述
3.2JSP的基本语法
五种JSP编译器指引与指令组件
编译器指示(引)<%@编译器指示%>
声明 <%!
声明%>
表达式 <%=表达式%>
程序代码段/小型指令 <%程序代码片段%>
注释 <%--注释--%>
将JSP生成的数值嵌入HTML页面的方法:
1)编译器指示
<%@pageimport="java.util.Date"%>
<%@pageerrorPage="errorPage.jsp"%>当发生Java问题的事件时应将讯息传送到哪
<%@pagesession="true"%>
<%@includefile="filename.jsp"%>include编译器指示
2)声明
<%!
declaration;[declaration;]+...%>
声明必须以";"结尾,一个声明仅在一个页面中有效
3)表达式
<%=expression%>JSP运算是属于<%=?
%>卷标里,并不包含分号,表达式的顺序从左到右
4)程序代码段/小型指令文件
<%codefragment%>小型指令文件可以是原始的HTML或XML,一个scriptlet能够包含多个jsp语句,方法,变量,表达式;任何文本,HTML标记,JSP元素必须在scriptlet之外
5)注释
<%--针对服务器端的注释--%>
--comment[<%=expression%>]-->客户端
隐藏注释<%--comment--%>
不会显示在客户的浏览器中,也不会在源代码中看到
6)Include指令
<%@includefile="relativeURL"%>在JSP中包含一个静态的文件,同时解析这个文件中的JSP语句
被包含文件可以是html文件,jsp文件,文本文件,或者只是一段Java代码,但不能使用,,
,标记7)Page指令
<%@page
[language="java"]声明脚本语言的种类
[extends="package.class"]标明JSP编译时需要加入的JavaClass的全名
[import="{package.class|package.*},..."]需要导入的Java包的列表
[session="true|false"]缺省值是true
[buffer="none|8kb|sizekb"]处理执行后的JSP对客户浏览器的输出
[autoFlush="true|false"]设置如果buffer溢出,是否需要强制输出
[isThreadSafe="true|false"]设置Jsp文件是否能多线程使用
[info="text"]一个文本在执行JSP将会被逐字加入JSP中
[errorPage="relativeURL"]设置处理异常事件的JSP文件
[contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"]
设置MIME类型。
缺省MIME类型是:
text/html,缺省字符集为ISO-8859-1.
[isErrorPage="true|false"]
设置此页是否为出错页,如被设置为true,就能使用exception对象
%>
定义JSP文件中的全局属性,<%@page%>指令不能作用于动态的包含文件
8) forward> 重定向一个HTML文件,JSP文件,或者是一个程序段 forwardpage={"relativeURL"|"<%=expression%>"}/> or forwardpage={"relativeURL"|"<%=expression%>"}> paramname="parameterName" value="{parameterValue|<%=expression%>}"/>+ forward> forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象. forward>标签以下的代码,将不能执行 page="{relativeURL|<%=expression%>}"一个表达式或一个字符串用于说明将要定向的文件或URL paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+向一个动态文件发送一个或多个参数 9) getProperty> 获取Bean的属性值,用于显示在页面中 getPropertyname="beanInstanceName"property="propertyName"/> 不能使用 getProperty>来检索一个已经被索引了的属性 name="beanInstanceName"bean的名字,由 useBean>指定 property="propertyName"所指定的Bean的属性名 10) include> 包含一个静态或动态文件 includepage="{relativeURL|<%=expression%>}"flush="true"/> or includepage="{relativeURL|<%=expression%>}"flush="true"> paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+ include> 属性 page="{relativeURL|<%=expression%>}"参数为一相对路径,或是代表相对路径的表达式. flush="true"必须使用flush="true"不能使用false值.缺省值为false paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+ param>子句能传递一个或多个参数给动态文件,能在一个页面中使用多个 param>来传递多个参数 11) plugin> 执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它 plugin type="bean|applet" 被执行的插件对象的类型,必须得指定是Bean还是applet,没有缺省值 code="classFileName" 将被Java插件执行的JavaClass的名字,必须以.class结尾,文件必须存在于codebase属性指定的目录中 codebase="classFileDirectoryName"将被执行的JavaClass文件的目录(或路径) [name="instanceName"] Bean或applet实例的名字,将会在Jsp其它的地方调用 [archive="URIToArchive,..."]一些由逗号分开的路径名,用于预装一些将要使用的class [align="bottom|top|middle|left|right"]图形,对象,Applet的位置的值 [height="displayPixels"]Applet或Bean将要显示的长宽的值,值为数字,单位为象素. [width="displayPixels"] [hspace="leftRightPixels"] [vspace="topBottomPixels"] Applet或Bean显示时在屏幕左右,上下所需留下的空间,单位为象素. [jreversion="JREVersionNumber|1.1"] Applet或Bean运行所需的JavaRuntimeEnvironment(JRE)的版本.,缺省值是1.1. [nspluginurl="URLToPlugin"] NetscapeNavigator用户能够使用的JRE的下载地址,值为标准的URL [iepluginurl="URLToPlugin"]>IE用户能够使用的JRE的下载地址 [ params> [ paramname="parameterName"value="{parameterValue|<%=expression%>}"/>]+ params>]需要向applet或Bean传送的参数或参数值 [ fallback>textmessageforuser fallback>] 用于Java插件不能启动时显示给用户的一段文字 plugin> 当Jsp文件被编译,送往浏览器时, plugin>元素将会根据浏览器的版本替换成 注意, 12) setProperty> setProperty name="beanInstanceName"表示已经在 useBean>中创建的Bean实例的名字 { property="*"| 储存用户在Jsp输入的所有值,用于匹配Bean中的属性 property="propertyName"[param="parameterName"]| 使用request中的一个参数值来指定Bean中的一个属性值,property指定Bean的属性名,param指定request中的参数名。 property="propertyName"value="{string|<%=expression%>}"使用指定的值来设定Bean属性 } /> 如果使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序 13) useBean> 创建一个Bean实例并指定它的名字和作用范围 useBean在定义的范围中确认Bean的变量 id="beanInstanceName" scope="page|request|session|application" Bean存在的范围以及id变量名的有效范围,缺省值是page { class="package.class"| 使用new关键字以及class构造器从一个class(公用的,没有参数的构造器)中示例一个bean,package的名字区别大小写 type="package.class"|package和class的名字,区分大小写 class="package.class"type="package.class"| beanName="{package.class|<%=expression%>}"type="package.class" 使用java.beans.Beans.instantiate方法来从一个class或连续模版中示例一个Bean,同时指定Bean的类型 } { />| >otherelements useBean> } 3.3JSP标准文本: 静态的HTML 3.4JSP脚本要素 1.JSP表达式 JSP表达式是直接把java值输出,<%=Java表达式%>,Java表达式是一个值,转换成字符串后插入到页面中。 2.JSPscriptlets scriptlets的形式: <%Java代码%> scriptlets可以象表达式那样随意定义变量 3.JSP声明 JSP声明让定义插入servlet类主体中的方法和域在service方法之外处理这个请求),形式: <%! JavaCode%> 声明不能产生任何输出,它通常用作JSP表达式和scriptlets之间的连接 3.5JSP指令 JSPdirective影响servlet类的整个结构,形式: <%@directiveattribute="value"%> 在一个directive中可以兼有都个属性设置 1.JSPpage指令 1)import="package.class"orimport="package.class1,...,package.classN"指定将引入哪些包 2)contentType="MIME-Type"orcontentType="MIME-Type;charset=Character-Set"指定MIME类型的输出,缺省是text/html 3)isThreadSafe="true|false"为true(缺省),多重请求都可以被单个servlet实例同时处理;为false表明每个请求分配给一个独立的servlet实例 4)session="true|false" 5)buffer="sizekb|none"为JspWriter输出指定缓冲器的大小,缺省是由服务器指定,但必须不小于8kb 6)autoflush="true|false"当用buffer="none",值为false是不合法的 7)extends="package.class"表明servlet的超类将被生成 8)info="message"定义一个可以通过getServletInfo方法检索到的字符串 9)errorPage="url"指定一个JSP页面处理那些没有被抓住的抛出异常 10)isErrorPage="true|false"缺省为false,表明当前的页面是否能够充当另外的JSP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Server Pages基础概念 Pages 基础 概念