jsp程序设计期末复习整理.docx
《jsp程序设计期末复习整理.docx》由会员分享,可在线阅读,更多相关《jsp程序设计期末复习整理.docx(43页珍藏版)》请在冰豆网上搜索。
jsp程序设计期末复习整理
第一章什么是JSP
什么是JSP
JSP(JavaServerPages)是基于Java语言的一种Web应用开发技术。
利用这一技术可以建立安全、跨平台、易维护的Web应用程序ss
网络应用中最常见的模式是B/S模式(Browser/Sever即浏览器/服务器)
B/S模式中即需要获取信息的用户使用浏览器向服务器发出请求,服务器对此做出响应,将有关信息发送给用户的浏览器
基于B/S模式的网络程序的核心就是设计服务器端的Web应用程序。
JSP引擎与Tomcat服务器
JSP的核心内容之一就是编写JSP页面,JSP页面是Web应用程序的重要组成部分之一。
简单Web应用程序可能只有一个JSP页面。
复杂的Web应用程序可能由许多JSP页面、Javabean和servlet组成。
当用户请求Web服务器上的JSP页面时,JSP引擎负责运行JSP,并将运行结果返回给用户。
2.apache-tomcat-8.0.3.exe的安装
apache-tomcat-8.0.3.exe文件是针对MS-Window的Tomcat服务器,安装后形成的目录结构和apache-tomcat-8.0.3.zip安装的基本相同。
单击下载的apache-tomcat-8.0.3.exe,将出现“安装向导”界面,单击其中的Next按钮,接受授权协议后,将出现选择“安装方式”的界面。
在“安装方式”界面中选择Norma、Minimun、Custom和Full之一,然后按着安装向导的提示进行安装即可。
网页浏览过程
打开浏览器->输入网址->打开网页
--浏览器是网页浏览的工具
--输入网址是向网站服务器发出请求
--打开网页是接收服务器发送的网页
静态网页与动态网页
网页分为静态网页和动态网页,动态与静态是相对的
静态网页:
静态网页是事先做好并存放于服务器中的文件,无论是否被访问,都是一个独立存在的文件;
静态网页使用语言:
HTML(超文本标记语言);
静态网站没有数据库的支持,在网站制作和维护方面工作量较大;
由于不需通过数据库工作,访问速度比较快;
静态网页的交互性差
动态网页:
动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
动态网页以数据库技术为基础,降低网站维护的工作量;
动态网页技术分为客户端和服务器端
常见动态网页技术:
JSP,PHP,ASP(.net)
ASP——ActiveServerPage
JSP——JavaServerPages(一种动态网页技术标准。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。
)
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame
JSP动态网页技术优势
业务逻辑和显示分离
多平台支持及高可移植性
开发便利
安全
较高的效率与性能
较低的开发和运营成本
使用JSP进行开发,需要具备以下的运行环境:
Web浏览器
JDK开发工具包
数据库
Web服务器
第二章JSP页面
JSP页面可由5种元素组合而成:
①普通的HTML标记符;
②JSP标记,如指令标记、动作标记;
③变量和方法的声明;
④Java程序片;
⑤Java表达式;
JSP页面的运行原理:
把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。
JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。
Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。
1.在JSP页面的标记符
“<%!
”和“%>”有效范围和标识符的位置无关
之间声明的变量称作JSP页面的成员变量(变量类型可以是java允许的任何数据类型)。
之间声明方法。
该方法在整个JSP页面有效
“<%=”和“%>”之间可以是一个Java表达式。
表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示
1.HTML注释格式:
--注释内容-->
2.JSP注释格式:
<%--注释内容--%>
定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
例如:
<%@pagelanguage="java"%>
注:
JSP页面默认有如上page指令。
Import引入Java运行环境提供的包中的类
例如:
<%@pageimport="java.io.*","java.util.Date"%>
注:
JSP页面默认import属性已经有“java.lang.*”、“javax.servlet.*”等值。
contentType属性值确定JSP页面响应的MIME(MultipurposeInternetMailExtention)类型和JSP页面字符的编码。
例如:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pagecontentType="application/msword"%>
注:
不允许两次使用page指令给contentType属性指定不同的属性值.
session属性
用于设置是否需要使用内置的session对象。
session的属性值可以是true或false。
session属性默认的属性值是true。
buffer属性
buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。
<%@pagebuffer=“24kb”%>
buffer属性的默认值是8kb。
buffer属性可以取值“none”,设置out不使用缓冲区。
autoFlush属性:
指定out的缓冲区被填满时,缓冲区是否自动刷新。
注:
autoFlush属性的默认值是true。
isThreadSafe属性:
用来设置JSP页面是否可多线程访问。
注:
isThreadSafe属性的默认值是true。
info属性
的属性值是一个字符串,其目的是为JSP页面准备一个常用且可能需要经常修改的字符串
例如:
<%@pageinfo=“wearestudents”%>
注:
可以在JSP页面中使用方法:
getServletInfo();
获取info属性的属性值。
<%pagecontentType=”text/html;charset=gb2312”%>
<%@includefile=”hello.txt”%>
include动作标记
语法格式:
includepage="文件的URL"/>
或
includepage="文件的URL">
param子标记
include>
include动作标记告诉JSP页面动态加载一个文件。
注:
include动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面。
param动作标记forward动作标记plugin动作标记useBean动作标记
第三章
第四章内置对象
内置对象有:
resquest、response、session、out、application
request对象可以获取用户提交的信息。
request对象获取用户提交信息的最常用的方法是getParameter(Strings).
一般格式是:
提交手段
例如用户提交信息表单:
tom.jsp页面可以使用内置request对象获得用户提交的信息
request.getParameter("boy");
当用request对象获取用户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊的处理
Stringstr=request.getParameter("girl");
byteb[]=str.getBytes("ISO-8859-1");
str=newString(b);
getProtocol():
获取请求使用的通信协议,如http/1.1等。
getServletPath():
获取请求的JSP页面所在的目录。
getContentLength():
获取HTTP请求的长度。
getMethod():
获取表单提交信息的方式,如POST或GET。
getHeader(Strings):
获取请求中头的值。
getHeaderNames():
获取头名字的一个枚举。
getHeaders(Strings):
获取头的全部值的一个枚举。
getRemoteAddr():
获取客户的IP地址。
getRemoteHost():
获取客户机的名称(如果获取不到,就获取IP地址).
getServerName():
获取服务器的名称。
getServerPort():
获取服务器的端口号。
getParameterNames():
获取表单提交的信息体部分中name参数值的一个枚举.
HTML是HypertextMarkedLanguage的缩写,即超文本标记语言。
服务器通过属性name指定的名字来获取“输入对象的GUI类型”中提交的数据。
“输入对象的GUI类型”可以是:
text(文本框)、checkbox(检查框)、submit(提交键)等。
文本框text:
单选框radio:
复选框checkbox:
口令框password:
隐藏hidden:
提交键submit:
重置键:
reset:
处理HTML标记_
1)下拉列表
你选了小猫
你选了小狗
…
(2)滚动列表:
在Select中指定size属性的值就变成滚动列表,size的值是滚动列表的可见行的个数。
计算1到n的连续和
计算1到n的平方和
…
基本格式为:
表格由
标记定义。
一般格式:
其中
…
定义表格的一个行,
或 | 标记定义这一行中的表格单元,二者的区别是: | 定义的单元加重显示, | 称做普通单元,不加重显示。 一行中的加重单元和普通单元可以交替出现,也可以全是加重单元或普通单元。 中增加选项border可指明该表格是否带有边框。 使用或标记都可以显示一副图象,标记的基本格式为 描述文字 描述文字 播放音乐和视频 描述文字 autostart属性的值用来指定音乐或视频文件传送完毕后是否立刻播放,autostart取值“true”或“false”,该属性的默认值是false。 loop属性的取值为正整数,该属性的值用来指定音乐或视频文件重复播放的次数。 动态响应contentType属性 由于page指令只能为contentType属性指定一个值来决定响应的MIME类型。 如果想动态地改变这个属性的值来响应用户,就需要使用response对象的setContentType(Strings)方法来改变contentType的属性值。 publicvoidsetContentType(Strings)方法动态设置响应的MIME类型,参数s可取: text/html、text/plain、image/gif、image/x-xbitmap、 image/jpeg、image/pjpeg、application/x-shockwave-flash、 application/vnd.ms-powerpoint、application/vnd.ms-excel、 application/msword。 response对象可以使用方法: addHeader(Stringhead,Stringvalue); 或使用方法: setHeader(Stringhead,Stringvalue); 动态添加新的响应头和头的值,并将这些头发送给用户的浏览器。 如果添加的头已经存在,则先前的头被覆盖。 例4-12 用户的重定向。 在某些情况下,JSP引擎在响应用户时,可能需要将用户重新引导至另一个页面。 例如,如果用户输入的表单信息不完整,就会再次被引导到该表单的输入页面。 使用response对象的sendRedirect(URLurl)方法实现用户的重定向。 response的状态行 当JSP引擎对用户请求进行响应时,它发送的首行称做状态行。 状态行包括3位数字的状态代码和对状态代码的描述(称做原因短语)。 session对象 内置session(会话)对象记录有关连接的信息.由Tomcat服务器负责创建。 当一个用户首次访问Web服务目录中的某个JSP页面时,JSP引擎为其产生一个session对象。 为用户产生的session对象调用相应的方法可以存储用户在访问各个页面期间提交的各种信息 session对象与URL重写 如果用户端不支持Cookie,那么用户在不同网页之间的session对象可能是互不相同的,因为如果服务器无法将Id存放到用户端,就不能建立session对象和用户的一一对应关系。 可以通过URL重写来实现session对象的惟一性。 所谓URL重写,就是当用户从一个页面重新链接到另一个页面时,通过向这个新的URL添加参数,把session对象的Id传带过去,这样就可以保障用户在该网站各个页面中的session对象是完全相同的。 可以使用response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写. 例4-19中,session对象使用setMaxInactiveInterval(intinterval)方法设置最长的“发呆”状态时间为10秒。 用户可以通过刷新页面检查是否达到了最长的“发呆”时间,如果两次刷新之间的间隔超过10秒,用户先前的session将被取消,用户将获得一个新的session对象。 使用session设置时间间隔例4-20 out对象 out对象是一个输出流,用来向用户端输出数据。 out对象可调用如下的方法用于各种数据的输出, ⏹out.print(Boolean),out.println(Boolean)用于输出一个布尔值。 ⏹out.print(char),out.println(char)输出一个字符。 ⏹out.print(double),out.println(double)输出一个双精度的浮点数。 ⏹out.print(float),out.println(float)用于输出一个单精度的浮点数。 ⏹out.print(long),out.println(long)输出一个长整型数据。 ⏹out.print(String),out.println(String)输出一个字符串对象的内容。 ⏹out.newLine()输出一个换行符。 ⏹out.flush()输出缓冲区里的内容。 ⏹out.close()关闭流。 application对象 任何客户在所访问的服务目录的各个页面浏览时,application对象都是同一个. application对象的常用方法 (1)publicvoidsetAttribute(Stringkey,Objectobj) application对象可以调用该方法将参数Object指定的对象obj添加到application对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清除。 (2)publicObjectgetAttibue(Stringkey) 获取application对象含有的关键字是key的对象。 由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。 (3)publicEnumerationgetAttributeNames() application对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历application中的各个对象所对应的关键字。 (4)publicvoidremoveAttribue(Stringkey) 从当前application对象中删除关键字是key的对象。 (5)publicStringgetServletInfo() application对象可以调用该方法获取Servlet编译器的当前版本的信息。 第五章JSP中的文件操作 JSP通过Java的输入输出流来实现文件的读写操作 File构造方法 ⏹File(Stringfilename); ⏹File(StringdirectoryPath,Stringfilename); ⏹File(Filef,Stringfilename); 1.创建目录 publicbooleanmkdir() File对象调用方法创建一个目录,如果创建成功就返回true,否则返回false。 2.列出目录中的文件(如果File对象是一个目录) publicString[]list()用字符串形式返回目录下的全部文件。 publicFile[]listFiles()用File对象形式返回目录下的全部文件。 3.列出指定类型的文件 publicString[]list(FilenameFilterobj) 该方法用字符串形式返回目录下的指定类型的所有文件。 publicFile[]listFiles(FilenameFilterobj) 该方法用File对象返回目录下的指定类型的所有文件。 File对象调用方法 publicbooleandelete(); 可以删除当前对象代表的文件或目录。 如果File对象表示的是一个目录,则该目录必须是一个空目录,删除成功将返回true 使用字节流读写文件 java.io包提供大量的流类。 称InputStream类及其子类对象为字节输入流类,称OutputStream类及其子类对象为字节输出流。 InputStream类的常用方法: ●intread()输入流调用该方法从源中读取单个字节的数据,该方法返回字节值(0~255之间的一个整数)。 如果未读出字节就返回-1。 ●intread(byteb[])输入流调用该方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。 如果到达文件的末尾,则返回-1。 ●intread(byteb[],intoff,intlen)输入流调用该方法从源中试图读取len个字节到字节数组b中,并返回实际读取的字节数目。 如果到达文件的末尾,则返回-1。 参数off指定从字节数组的某个位置开始存放读取的数据。 ●voidclose()输入流调用该方法关闭输入流。 ●longskip(longnumBytes)输入流调用该方法跳过numBytes个字节,并返回实际跳过的字节数目。 OutputStream类的常用方法: ●voidwrite(intn)输出流调用该方法向输出流写入单个字节。 ●voidwrite(byteb[])输出流调用该方法向输出流写入一个字节数组。 ●voidwrite(byteb[],intoff,intlen)从给定字节数组中起始于偏移量off处取len个字节写入到输出流。 ●voidclose()关闭输出流。 输入、输出流示意图 ⏹FileInputStream类是InputStream的子类。 构造方法: FileInputStream(Stringname) FileInputS
展开阅读全文
相关搜索
|