收藏 分销(赏)

广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx

上传人:快乐****生活 文档编号:2200776 上传时间:2024-05-22 格式:DOCX 页数:13 大小:63.26KB
下载 相关 举报
广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx_第1页
第1页 / 共13页
广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx_第2页
第2页 / 共13页
广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx_第3页
第3页 / 共13页
广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx_第4页
第4页 / 共13页
广东海洋大学-JSP程序设计-WEB开发技术-复习提纲.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、_JSP程序设计一、概述1.3 JSP页面与Web服务目录1. 访问JSP页面的四种方式:(1)根目录:.webappsRoot,直接通过http:/127.0.0.1/JSP文件名访问(2)webapps下的Web服务目录:.webappsMyWeb,可通过http:/127.0.0.1/MyWeb/JSP文件名访问,新建后不必重启Tomcat服务器;(3)新建Web服务目录:需要事先配置conf文件夹下的server.xml,添加:,修改后必须重启Tomcat服务器;(4)在已建立好的Web服务目录下新建路径,通过网址相对路径的方式也能访问文件。1.4 JSP运行原理1.JSP页面的运行原

2、理: (1)当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个java文件,并对该文件编译生成字节码(.class)文件,然后执行字节码文件响应用户的请求。(2)当该JSP页面再次被请求执行时,JSP将直接执行字节码文件来响应用户,从而提高JSP页面的访问速度。2.JSP页面的执行过程:(1)JSP引擎将JSP页面中的HTML标记发送到用户浏览器,由浏览器中的HTML解释器负责解释执行HTML标记;(2)JSP引擎处理JSP标记,并将有关的处理结果发送到用户浏览器上;(3)执行“”之间的Java程序片,把执行结果以字符串的形式交由用户浏览器显示;(

3、4)当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,负责执行字节码文件响应请求。二、JSP页面与JSP标记2.1 JSP页面的基本结构(1)HTML标记(2)JSP标记(3)变量/方法的声明(4)Java程序片(5)Java表达式 % out.println(Hello World); / java程序片 % 2.2 变量和方法的声明(1)在整个JSP页面内有效,与位置无关,习惯写在前面;(2)在中声明的变量成为JSP页面(类)的成员变量;(3)多用户访问JSP页面时,页面的成员变量在多个线程之间共享。(4)避免用户在操作成员变量时变量被其他用户修改,有以下两种方法:

4、 合理配置变量作用域; 对操作成员变量的方法使用synchronize关键字修饰。2.3 Java程序片(1)一个JSP页面可以有许多可分割的Java程序片,JSP引擎会按顺序执行它们;(2)Java程序片中声明的变量称为JSP页面的局部变量;(3)多用户访问JSP页面时,页面的Java程序片在多个线程中独立运行。2.4 表达式(1)不能在表达式中插入语句,如是错误的;(2)%和=之间不能有空格;(3)表达式的值交由服务器计算,计算结果以字符串的形式发送至用户端显示。2.5 JSP中的注释(1)HTML注释:用户可通过浏览器查看HTML注释的内容;(2)JSP注释:编译JSP页面时将忽略JSP

5、注释,用户无法查看JSP注释的内容。2.6 JSP指令标记(静态)2.6.1 page指令标记 定义JSP页面的属性及其取值page属性的取值:(1)language:脚本语言,目前只能取java(默认取值);(2)import:为 JSP页面引入Java核心包中的类,如:默认引入了java.lang.*, javax.servlet, javax.servlet.jsp.*和javax.servlet.http.*;(3)contentType:确定JSP页面响应的MIME类型(打开方式)及字符编码;如:contentType属性只能指定一个值,不允许指定多值;(4)session:是否需要

6、使用内置的session对象(见4.3节),默认为true;(5)buffer:设置内置输出流out对象(见4.4节)的缓冲区大小,默认8KB,取值none表示不使用缓冲区;(6)autoFlush:当out对象的缓冲区被填满时,缓冲区是否自动刷新,默认true;当取值false时,缓冲区满会出现缓存溢出异常;buffer取值none时该属性无法设置。(7)isThreadSafe:设置JSP页面是否可多线程访问,默认true;(8)info:JSP页面设置一个常用且经常修改的字符串值,可通过getServletInfo()方法调用。2.6.2 include指令标记 在该指令处静态插入一个文

7、件插入的jsp文件中,page指令的contentType属性的值要与原文件保持一致。2.7 JSP动作标记(动态)2.7.1 param动作标记 为其他标记以名值对的形式传递参数不能单独使用,只能作为include、forward和plugin动作的子标记使用。2.7.2 include动作标记 动态加载文件 或param子标记注include指令标记与include动作标记的区别:include指令标记:编译时处理文件,依赖于当前JSP页面,执行速度快;include动作标记:运行时处理文件,可使用param子标记灵活处理,执行速度慢;2.7.3 forward动作标记 页面重定向 或pa

8、ram子标记地址不变,属于服务器端的跳转,可用param子标记向跳转页面传参;转向的文件可以使用request内置对象获取param子标记的name属性的值2.7.4 plugin动作标记 加载Java plugin插件,运行Java applet小程序提示用户浏览器是否支持插件下载的信息2.7.5 useBean动作标记 创建、使用JavaBean(见第七章)习题二:T2:两次(Java程序片在多线程中独立运行)T3:不允许,允许(contentType属性只能指定一个值)T4:第一个用户显示sum的值为610,第二个用户显示sum的值为610+600=1210。T6:见2.7.2注三、Ta

9、g文件与Tag标记使用Tag文件的优点:(1)代码复用(2)数据处理与数据显示分离,有利于页面维护;用户不能通过Web服务目录直接访问Tag文件。3.1 Tag文件的结构(tag指令见3.4.1节)tag文件内容,要求同jsp文件3.2 Tag文件的存储目录 Webapps目录WEB-INFtags3.3 Tag标记3.3.1 Tag标记与Tag文件 JSP页面必须通过调用Tag标记调用Tag文件 或标记体注此处“对象”指的是JSP文件向Tag文件传递的参数名3.3.2 Tag标记的使用使用Tag标记调用Tag文件前,需要使用taglib指令引入Web服务目录下的标记库:若干个Tag文件所对应

10、的Tag标记组成一个标记库,标记库可以有若干个,引入标记库后,可以使用带前缀的Tag标记调用Tag文件。注(1)标记库必须以/WEB-INF/tags开头; (2)Tag文件中声明的变量,会在Tag文件执行完毕后立即释放内存空间。JSP处理Tag标记的原理:(1)Tag文件被首次调用或被修改时,JSP依次将该文件转译(java文件)、编译(.class字节码文件)并执行;(2)Tag文件已经编译成字节码文件时,JSP直接执行该文件。3.3.3 Tag标记的标记体 动态向Tag文件传递信息标记体Tag文件通过使用来处理从jsp文件传递过来的标记体。(将Tag文件中的doBody标记替换成jsp文

11、件中的标记体)3.4 Tag文件中的常用命令3.4.1 tag指令 指定tag文件某些属性的值也可以使用多个tag指令分别指定tag文件各个属性的值tag指令的属性:(1)body-content:JSP中的Tag标记是否有标记体,以及标记体内容的类型: empty:Tag标记无标记体; tagdependent:Tag标记可以有标记体,且标记体按纯文本处理; scriptless(默认):Tag标记可以有标记体,但标记体中不能有Java程序片;(2)language:Tag文件使用的脚本语言,与JSP页面中的language属性类似;(3)import:向Tag文件引入Java核心包中的类,

12、与同JSP页面import属性类似;(4)pageEncoding:指定Tag文件字符编码,默认值为ISO-8859-1;3.4.2 include指令:与JSP页面中的include指令类似。3.4.3 attribute指令 接收从JSP页面Tag标记中传来的对象(参数)name:从JSP页面的Tag标记传递过来的对象名(必须有);require: true:JSP页面必须传递该对象,若没有传递则产生错误; false(默认):JSP页面可以不传递该对象;type:传递对象的类型,必须带上包名,如java.lang.String(默认);注(1)Tag文件中定义的变量名与attribute

13、指令接收的对象名相同时,变量将覆盖对象名,使其失效。(2)标记和attribute指令的区别: 标记是通过替换的方式接收JSP页面传递的信息; attribute指令是通过传值的方式接收JSP页面传递的信息; 标记接收传递信息的类型大部分是字符串; attribute指令可以接收除字符串外其他类型的对象; 标记可以接收Java程序片,而attribute指令不可以。3.4.4 variable指令 Tag文件通过该指令向JSP页面返回对象1. 格式:name-given:同attribute指令中的name属性;variable-class:同attribute指令中的type属性;scope

14、: AT_BEGIN:在Tag标记开始后就可使用; NESTED:只能在Tag标记体内使用;AT_BEGINNESTEDAT_ENDHello World!. AT_END:在Tag标记结束后才能使用。2. 对象的返回:除了要使用variable指令外,Tag文件还需要调用Tomcat中的内置对象jspContext的setAttribute方法,将对象名和对象引用(对象值)存储到jspContext中,JSP页面才能使用该对象。jspContext.setAttribute(对象名,对象引用);注(1)若JSP定义的变量名与variable指令返回的对象名相同,Tag文件将出现编译错误。(2

15、)若attribute指令接收的对象名与variable指令返回的对象名相同,Tag文件也会出现编译错误。3.4.5 taglib指令 与JSP页面的taglib指令类似Tag文件也可以引入标记库,通过tag标记引用其他Tag文件(Tag文件的嵌套调用);习题三:T1:不可以(用户不能通过Web服务目录直接访问Tag文件)T2:Webapps目录WEB-INFtags或该路径下的自定义子目录四、JSP内置对象HTTPWWW底层协议介绍:用户端浏览器服务端服务器请求(Request)响应(Response)浏览器按照HTTP协议发出的请求包括请求行、HTTP头和信息体:(1)请求行:规定了请求方

16、法(如GET、POST等)、请求资源及HTTP版本;(2)HTTP头:提供信息体的附加信息及请求来源;(3)信息体:可包含HTML表单的内容。服务器收到请求时,返回HTTP响应,包括状态行,响应HTTP头和响应信息体:(1)状态行:说明所使用的协议、状态代码(如404)及文本信息;(2)响应HTTP头:提供信息体的附加信息及响应来源;(3)响应信息体:用户请求的网页运行结果。4.1 request对象 获取用户提交的信息request.getParameter(表单中的对象名);注通过表单标签提交信息时,method属性取值get和post的区别:get:URL后附加字符串参数,表示提交的变量

17、,以?开始,用&连接,速度快;post:以名值对的形式将数据存放在HTTP请求报头尾部,不在URL显示,安全。4.1.1 获取用户提交的信息使用变量获取request对象的信息并处理,当JSP执行字节码文件时会认为该变量对象值为空,从而提示空指针异常。可通过判断和初始化变量来消除异常:if (var = null) var = “”;4.1.2 处理汉字信息用户提交的汉字字符会出现乱码,应利用字节数组来对汉字进行编码转换。byte b = str.getBytes(“iso-8859-1”);str = new String(b);4.1.5 处理HTML标记String items = re

18、quest.getParameter(“item”); / 复选框返回字符串数组4.2 response对象 动态响应用户请求4.2.1 动态响应contentType属性response.setContentType(jsp文件page指令contentType属性的值);4.2.2 response的HTTP文件头response.addHeader (响应HTTP头名,响应值);response.setHeader (响应HTTP头名,响应值);response.getHeader (响应HTTP头名,响应值);如:response.setHeader (Refresh,5;url=跳转

19、地址);可以实现5秒后跳转指定页面;response.getHeader(referer);将返回引用该页面的页面地址。4.2.3 response重定向response.sendRedirect (URL);注与forward指令不同的是,使用response对象重定向的地址会改变,是客户端的跳转,不传参。4.2.4 response的状态行response.setStatus (int n);n的取值:1xx:实验用;2xx:请求成功;3xx:需进一步动作;4xx:浏览器请求失败;5xx:服务器错误;4.3 session对象 在一次会话中保存用户提交的信息会话:从用户访问服务器的Web服

20、务目录,到用户离开该目录的过程。4.3.1 session对象的IdJSP引擎为每个线程的用户分配一个Session对象的Id字符串,存放在用户的Cookies中,可通过session.getId();获取。同一用户在不同服务目录(网站)的session不同。需要tomcat的session对象和客户端的cookies支持。4.3.2 session对象与URL重写URL重写:用户从一个页面链接到另一页面时,通过向URL添加参数,将用户session对象的ID传递给新页面。String str = response.encodeRedirectURL(URL);FORM action= met

21、hod=post name=form4.3.3 session对象存储数据session.setAttribute(key,Obj value); / 新设置的同关键字值会覆盖旧值session.getAttribute(key);session.getAttributeName();/ 返回枚举对象,使用nextElements()遍历对象关键字session.getCreationTime();session.removeAttribute(key);4.3.4 在Tag文件中使用session对象4.3.5 session对象的生存期限session对象的生存期限取决于:(1)是否调用了

22、invalidate()方法使其无效;(2)是否达到了最长“发呆”时间(两次请求发送之间的间隔,可通过web.xml或setMaxInactiveInterval()方法设置,当设置为负数时,表示发呆时间不受限制);(3)服务器是否被关闭;4.4 out对象 输出数据out.println(数据类型);4.5 application对象 在同一Web服务目录下为所有用户所共享;4.5.1 application对象的常用方法:同Session对象;习题四:T1:C(复选框返回字符串数组)T4:实现用户的重定向。(见4.2.3节)T5:(1)不同。(2)相同。(3)可能消失。(4)可能消失(见4

23、.3.1和4.3.5节)六、在JSP中使用数据库1.JDBC是什么?有什么作用?(P146)答:JDBC是用Java语言编写的数据库驱动程序,它可以调用本地的JDBC-数据库驱动程序和响应的数据库建立连接。七、JSP与JavaBeanJavaBean是一种Java类,通过封装属性和方法称为具有某种功能或者处理某个业务的对象,简称Bean。7.1 编写使用JavaBean1. 编写bean:为使JSP引擎识别bean对象的属性和方法,在类的方法命名上需要遵守以下规则:(1)为类的成员变量提供两个操作方法: public Type getXxx();/ 获取成员变量 public void set

24、Xxx(Type T);/ 设置成员变量注关联属性,即可由其他成员变量计算得出的属性值无需提供set方法。(2)类中方法的访问权限必须为public,其中构造方法必须为无参构造方法;(3)Tomcat 5.0以上版本:bean必须带有包名。2. 保存bean:将编写好bean的java源文件编译成字节码文件后,保存在:Webapps目录WEBclasses根据bean中包名建立相应路径7.1.2 使用bean(1)JSP页面需要导入bean中对应的包名,如:;(2)使用useBean动作标记加载使用bean:1. useBean标记的格式: 或2. bean的有效期限:scope取值: pag

25、e:当前页面; request:一次请求响应期间; session:用户会话期间; application:在JSP页面下分配多用户共享的bean7.2 获取和修改bean的属性7.2.1 getProperty动作标记 要求保证bean对象中有相应属性的get方法 或7.2.2 setProperty动作标记 要求保证bean对象中有相应属性的set方法1. 将bean属性的值设置为表达式或字符串:jsp:setProperty name=bean对象名 property=bean对象属性 value= / 或注当value属性的值为表达式时,表达式值的类型要与bean中对应属性的类型一致;当value属性的值为字符串时,字符串会自动转化为bean中对应属性的类型。2. 通过HTTP表单的参数值设置bean中相应属性的值:要求表单中的参数名与bean中的属性名一一对应相同;不要求表单中的参数名与bean中的属性名相同。习题七 T1:保存在mymoonWEB-INFclassesbluesky中。T2:不允许。T3:C。T4:A。Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服