《广东海洋大学JSP程序设计WEB开发技术复习提纲》由会员分享,可在线阅读,更多相关《广东海洋大学JSP程序设计WEB开发技术复习提纲(9页珍藏版)》请在金锄头文库上搜索。
1、JSP程序设计一、概述1.3 JSP页面与 Web服务目录1. 访问JSP页面的四种方式:(1)根目录:.webappsRoot,直接通过JSP文件名访问(2)webapps 下的 Web 服务目录:.webappsMyWeb ,可通过JSP文件名访问,新建后不必重启Tomcat服务器;(3) 新建 Web服务目录:需要事先配置conf文件夹下的server.xml,添加:,修改后必须重启Tomcat服务器;(4)在已建立好的 Web服务目录下新建路径,通过网址相对路径的方式也能访问文件。1.4 JSP运行原理1. JSP页面的运行原理:(1) 当服务器上的一个 JSP页面被第一次请求执行时,
2、服务器上的JSP引擎首先将JSP页 面文件转译成一个java文件,并对该文件编译生成字节码(.class)文件,然后执行字节码 文件响应用户的请求。(2) 当该JSP页面再次被请求执行时,JSP将直接执行字节码文件来响应用户,从而提高 JSP页面的访问速度。2. JSP页面的执行过程:(1) JSP引擎将JSP页面中的HTML标记发送到用户浏览器,由浏览器中的HTML解释器 负责解释执行HTML标记;(2)JSP引擎处理JSP标记,并将有关的处理结果发送到用户浏览器上;(3)执行“%之间的Java程序片,把执行结果 以字符串的形式 交由用户浏览器显示;(4)当多个用户请求一个 JSP页面时,T
3、omcat服务器为每个用户启动一个线程,负责执行 字节码文件响应请求。二、JSP页面与JSP标记2.1 JSP页面的基本结构(1)HTML标记(2) JSP标记(3)变量/方法的声明(4) Java程序片(5) Java表达式%!int sum;/数据声明public int getFactorSum(int n) / 方法声明sum = n; return sum; / java程序片% % out.println(Hello World); 22 变量和方法的声明(1)在整个JSP页面内有效,与%! %位置无关,习惯写在前面;(2)在%和沖声明的变量成为JSP页面(类)的 成员变量;(3)
4、 多用户访问JSP页面时,页面的成员变量在多个线程之间共享(4)避免用户在操作成员变量时变量被其他用户修改,有以下两种方法: 合理配置变量作用域; 对操作成员变量的方法使用 synchronize关键字修饰。2.3 Java程序片(1)一个JSP页面可以有许多可分割的 Java程序片,JSP引擎会按顺序执行它们;(2)Java程序片中声明的变量称为 JSP页面的局部变量;(3)多用户访问JSP页面时,页面的Java程序片在多个线程中独立运行。2.4 表达式(1)不能在表达式中插入语句,如 %=x=100%是错误的;(2)% =之间不能有空格;(3) 表达式的值交由服务器计算,计算结果以字符串的
5、形式发送至用户端显示。2.5 JSP中的注释(1) HTML注释:用户可通过浏览器查看HTML注释的内容;(2)JSP注释:编译JSP页面时将忽略JSP注释,用户无法查看 JSP注释的内容。2.6 JSP指令标记(静态)2.6.1 page指令标记一一定义JSP页面的属性及其取值page属性的取值:(1)Ianguage :脚本语言,目前只能取 java (默认取值);(2)import :为JSP页面引入 Java核心包中的类,女口: 默认弓 I入了 java .Ian g.*, javax.servlet,javax.servlet.jsp.* 禾口 javax.servlet.http.
6、* ;(3)contentType :确定JSP页面响应的MIME类型(打开方式)及字符编码;女口: contentType 属性只能指定一个值,不允许指定多值;(4)session:是否需要使用内置的 session对象(见4.3节),默认为true ;(5)buffer :设置内置输出流out对象(见4.4节)的缓冲区大小,默认8KB,取值none 表示不使用缓冲区;(6)autoFlush :当out对象的缓冲区被填满时,缓冲区是否自动刷新,默认 true ;当取值false时,缓冲区满会出现缓存溢出异常;buffer取值none时该属性无法设置。(7) isThreadSafe :设置
7、JSP页面是否可多线程访问,默认true ;(8) info : JSP页面设置一个常用且经常修改的字符串值,可通过getServletInfo()方法 调用。2.6.2 include指令标记 在该指令处静态插入一个文件 插入的jsp文件中,page 指令的 contentType 属性的值要与原文件保持一致。2.7 JSP动作标记(动态)2.7.1 param动作标记为其他标记以名值对的形式传递参数不能单独使用,只能作为 in elude、forward 和 plugi n 动作的子标记使用。2.7.2 include动作标记动态加载文件 或param 子标记 注include指令标记与i
8、nclude动作标记的区别:include指令标记:编译时 处理文件,依赖于当前JSP页面,执行速度快:include动作标记:运行时处理文件,可使用 param子标记灵活处理,执行速度慢:2.7.3 forward动作标记页面重定向 或param 子标记 地址不变,属于服务器端的跳转,可用param子标记向跳转页面传参;转向的文件可以使用request内置对象获取param子标记的name属性的值2.7.4 plugin动作标记加载Java plugin插件,运行Java applet小程序vjsp:fallback提示用户浏览器是否支持插件下载的信息v/jsp:fallbackv/jsp:
9、plugi n2.7.5 useBean动作标记创建、使用JavaBean (见第七章)习题二:T2: 两次(Java程序片在多线程中独立运行)T3: 不允许,允许( contentType 属性只能指定一个值 )T4:第一个用户显示sum的值为610,第二个用户显示sum的值为610+600=1210T6:见 注 三、Tag文件与Tag标记使用Tag文件的优点:(1)代码复用(2)数据处理与数据显示分离,有利于页面维护; 用户不能通过 Web服务目录直接访问 Tag文件。3.1 Tag文件的结构(tag指令见341节)% tag pageEncoding=Tag 文件编码 ” tag文件内容
10、,要求同jsp文件3.2 Tag文件的存储目录 Webapps目录WEB-INFtags3.3 Tag标记3.3.1 Tag标记与Tag文件 一一JSP页面必须通过调用 Tag标记调用Tag文件前缀:Tag文件名对象 仁值1对象2=值2. /或前缀:Tag文件名对象 仁值1对象2=值2.标记体/前缀:Tag文件名注此处 对象”指的是JSP文件向Tag文件传递的参数名3.3.2 Tag标记的使用使用Tag标记调用Tag文件前,需要使用taglib指令引入 Web服务目录下的标记库: % taglib tagdir=标记库目录prefix=前缀%若干个Tag文件所对应的Tag标记组成一个标记库,标
11、记库可以有若干个,引入标记库 后,可以使用带前缀的 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文件名 标记体/前缀:Tag文件名Tag文件通过使用vjsp:doBody/来处理从jsp文件传递过来的
12、标记体。(将Tag文件中的doBody标记替换成jsp文件中的标记体)3.4 Tag文件中的常用命令3.4.1 tag指令一一指定tag文件某些属性的值v% tag 属性 1=值 1属性 2=值 2. %也可以使用多个tag指令分别指定tag文件各个属性的值tag指令的属性:(1)body -content : JSP中的Tag标记是否有标记体,以及标记体内容的类型: empty: Tag标记无标记体; tagdepe nde nt: Tag标记可以有标记体,且标记体按 纯文本处理; scriptless (默认):Tag标记可以有标记体,但标记体中不能有Java程序片;(2) Ianguage : Tag文件使用的脚本语言,与 JSP页面中的Ianguage属性类似;(3) import :向Tag文件引入Java核心包中的类,与同 JSP页面import属性类似;(4) pageEncoding :指定Tag文件字符编码,默认值为 ISO8859-1;3.4.2 include指令:与JSP页面中的include指令类似。3.4.3 attribute指令接收从JSP页面Tag标记中传来的对象(参数)% attri