J2EE——第12章JavaSerer Pages技术

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Java Web 开发 授课人:张鸽. 第三讲 JSP 内置对象  JSP 有以下九种内置对象,包括:  ·request ,请求对象  ·response ,响应对象  ·pageContext ,页面上下文对象  ·session ,会话对象  ·application ,应用程序对象.
动态页面设计 长沙民政职业技术学院 ☆ WEB 应用开发精品课程. 案例导入 项目 结合 JDBC 技术和 JSP 技术,实现考生登录验证 任务 用户登陆页面与后台验证实现 。 技术要点 ( 关键字 ) 1.JSP 标签和动作应用。 2.JSP 的内置对象 request , response 3.JSP.
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 7 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 与 JavaBean.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
动态Web开发技术--JSP.
JSP页面的组成 JSP页面包括JSP元素、注释及HTML元素。 JSP指令:用于将消息传送到JSP引擎。
第一章 JSP概述.
第15章 Java Web编程 Web编程是Java语言尤其擅长的一个方面。在Java语言整个体系结构中,提供了Servlet和JSP技术支持Web开发。Servlet和JSP是相辅相成的两种技术,具有相同的基本原理,又保持了各自的灵活性。本章包括以下知识点。 Sevlet技术的主要内容(包括运行、生命周期、请求和应答、Cookie、会话)
第五章 JSP内置对象 第4章学习了页面组成元素和使用方法。本章学习JSP内置对象的使用。使用JSP内置对象,可以方便操作页面,访问页面环境,实现页面内、页面间、页面与环境之间的通讯。 学习目标 熟悉主要内置对象的概念 理解主要内置对象的作用域和生命期 理解主要内置对象的作用和关系 熟悉主要内置对象的使用方法.
第九章 开发视图.
JavaServer Pages(JSP) 网页程序设计
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
Java程序设计教程 第一讲 Java概述.
基于SSH的web开发 AND 企业级WEB应用开发新技术
Tool Command Language --11级ACM班 金天行.
JSTL标签库 讲师:梁 桐 北京传智播客教育 1。缓存数据 2。处理字符乱码 3。监听器中的定时器
MVC Servlet与MVC设计模式.
第一章 JSP概述 学习目标 JSP技术是目前WEB开发技术中应用最广泛的一种.本章对JSP技术、优点、缺点、应用前景作了简要介绍。
攻击JAVA WEB 阿里巴巴集团安全中心 周拓.
J2EE Struts 和Spring 的区别.
Oracle数据库 Oracle 子程序.
J2EE与中间件技术 ——Lab.
JSP示例(Hello.jsp) <HTML> <BODY> 你好<br> </BODY>
Hello World 體驗實作第一個JSP程式.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
Signutil.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
专题4:JSP脚本和指令.
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
Java语言程序设计 第八部分 Applet小程序.
辅导课程十三.
第一讲 J2EE基础 博和利初级培训 —开发技能.
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
JavaServer Pages(JSP) 网页程序设计
第6章 JSP标签技术.
SOA – Experiment 2: Query Classification Web Service
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
Ch09 在網頁之間傳遞資訊 網頁程式設計.
第十二章 过滤器.
Java Server Faces 参考书籍 Java Server Faces 核心编程.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
Chapter 18 使用GRASP的对象设计示例.
关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Delphi 7.0开发示例.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第2章 Java语言基础.
WEB程序设计技术 数据库操作.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
第5章 表达式语言.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
第四章 jsp语法 4.1 jsp页面的基本结构 一个jsp页面可由五种元素组合而成: 普通的html标记符
Presentation transcript:

J2EE——第12章JavaSerer Pages技术

JavaServer Pages技术 主要特性 JSP页面 开发JSP页面的语言 访问服务器端对象的表达式语言 定义JSP语言扩展的机制 供Web容器开发人员使用的API JSP页面 静态数据(HTML, SVG, WML, XML) JSP元素(用于构造动态内容,标准、XML语法)

JSP示例(1) <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="/functions" prefix="f" %> <html> <head><title>Localized Dates</title></head> <body bgcolor="white"> <jsp:useBean id="locales" scope="application“ class="mypkg.MyLocales"/> <form name="localeForm" action="index.jsp" method="post"> <c:set var="selectedLocaleString" value="${param.locale}" /> <c:set var="selectedFlag" value="${!empty selectedLocaleString}" /> <b>Locale:</b>

JSP示例(2) <select name=locale> <c:forEach var="localeString" items="${locales.localeNames}" > <c:choose><c:when test="${selectedFlag}"> <c:choose> <c:when test="${f:equals(selectedLocaleString,localeString)}"> <option selected>${localeString}</option> </c:when> <c:otherwise> <option>${localeString}</option></c:otherwise> </c:choose> </c:when><c:otherwise><option>${localeString}</option></c:otherwise> </c:choose></c:forEach> </select> <input type="submit" name="Submit" value="Get Date"> </form> <c:if test="${selectedFlag}" > <jsp:setProperty name="locales" property="selectedLocaleString" value="${selectedLocaleString}" /> <jsp:useBean id="date" class="mypkg.MyDate"/> <jsp:setProperty name="date" property="locale" value="${locales.selectedLocale}"/> <b>Date: </b>${date.date}</c:if></body></html>

JSP示例(3)

MVC体系结构 模型 系统的内部状态 可以改变状态的操作(事务逻辑) 视图 提供可交互的界面,向用户显示模型数据 控制器 响应客户的请求,根据客户的请求来操纵模型,并把模型的响应结果用视图显示个客户

Struts MVC示意图

JavaServer Pages Standard Tag Library 流程控制 c:if、c:choose、c:when、c:otherwise 设置作用域变量 c:set 编码URL c:url 提供地区敏感的消息、编号和日期 fmt:message、fmt:formatNumber fmt:formatDate

JSP页面的生命周期 如果servlet更旧,则将jsp转换为servlet并编译 静态数据:可将该数据发送到响应流中的代码 JSP元素 指令:控制Web控制器如何转换和执行JSP页面 表达式:作为参数传递到JSP表达式计算器的调用 jsp:[set|get]Property:到JavaBeans组件的调用 jsp:[include|forward]:到Java Servlet API的调用 jsp:plugin:转换为激活applet的浏览器特定标记 自定义标签:到实现自定义标签的标签处理器调用

转换和编译后的生命周期 如果JSP页面的servlet的实例不存在,则容器将 通过调用jspInit方法初始化servlet实例 容器调用_jspService方法,传递request和response对象 如果容器需要删除JSP页面的servlet,则调用jspDestroy方法

页面指令--缓冲 <%@ page buffer=“none|xxxkb” %> 大的缓冲区允许在实际发回客户端前编写更多的内容,从而使JSP页面有更多的时间来设置适当的状态代码和标题,或者转发到另外的Web资源 小的缓冲区将降低服务器内存的加载量,使客户端更快地启动接收数据的操作

页面指令--处理错误 <%@ page errorPage=“file_name” %> <%@ page isErrorPage="true" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html><head><title><fmt:message key="ServerError"/></title></head> <body bgcolor="white"><h3><fmt:message key="ServerError"/></h3> ${pageContext.errorData.throwable}<c:choose> <c:when test="${!empty pageContext.errorData.throwable.cause}"> : ${pageContext.errorData.throwable.cause} </c:when> <c:when test="${!empty pageContext.errorData.throwable.rootCause}"> : ${pageContext.errorData.throwable.rootCause} </c:when></c:choose></body></html>

创建静态内容和动态内容 在JSP页面中使用对象 隐含对象:page,request,session,application <%@ page contentType="text/vnd.wap.wml"%> <%@ page contentType="text/html; charset=UTF-8" %> 在JSP页面中使用对象 隐含对象:page,request,session,application 应用程序特定对象:JSP标准标签、脚本元素 共享对象 <%@ page isThreadSafe="true|false" %> 正确同步page级别定义的所有共享对象的访问 声明、page作用域的JavaBean和pageContext

表达式语言 EL表达式可用于 静态文本 可以接受表达式的任何标签属性 <c:if test="${sessionScope.cart.numberOfItems > 0}"> ... </c:if> <c:if test="${bean1.a < 3}">...</c:if> <c:if test="true">...</c:if> <mytags:example attr1="an expression is ${'${'}true}" /> <%@ page isELIgnored ="true|false" %> EL表达式可用于 静态文本 可以接受表达式的任何标签属性 <some:tag value="${expr}"/> <some:tag value="some${expr}${expr}text${expr}"/> <some:tag value="sometext"/>

变量 PageContext.findAttribute(String) ${product}:page,request,session,application等scope expr-a.expr-b等价于expr-a[expr-b] 隐含对象 PageContext: servletContext, session, request, response param, paramValues, header, headerValues, cookie, initParam pageScope, requestScope, sessionScope, applicationScope

常量 true, false java整数 java浮点数 字符串:”或’ 转义:\ null

运算符 +、-、*、/、div、%、mod and、&&、or、||、not、! ==、eq、!=、ne、<、lt、>、gt、<=、le、>=、ge empty A?B:C 保留字:以上、instanceof

示例(1)

示例(2)

示例(3)

函数 functions.tld: <%@ taglib prefix="f" uri="/functions"%> ... <c:when test="${f:equals(selectedLocaleString, localeString)}" > package mypkg; public class MyLocales { ... public static boolean equals( String l1, String l2 ) { return l1.equals(l2); } } functions.tld: <function> <name>equals</name> <function-class>mypkg.MyLocales</function-class> <function-signature>boolean equals( java.lang.String, java.lang.String )</function-signature> </function>

JavaBeans组件 可重用的Java类,符合特定的设计约定 组件属性 读/写、只读、只写 简单属性(单个值),或索引属性(值数组) PropertyClass getProperty() {…} setProperty(PropertyClass pc) {…}

创建和使用JavaBeans组件 <jsp:useBean id="beanName" class="fully_qualified_classname" scope="scope"/> class="fully_qualified_classname" scope="scope"> <jsp:setProperty … /> </jsp:useBean> <jsp:useBean id="locales" scope="application" class="mypkg.MyLocales"/>

设置JavaBeans组件属性 <jsp:setProperty name="beanName" property="propName" value="string constant"/> <jsp:setProperty name="beanName" property="propName" param="paramName"/> <jsp:setProperty name="beanName" property="propName"/> <jsp:setProperty name="beanName" property="*"/> <jsp:setProperty name="beanName" property="propName" value="expression"/> <jsp:setProperty name="beanName" property="propName" > <jsp:attribute name="value">expression</jsp:attribute> </jsp:setProperty> beanName必须是在useBean元素中为id属性指定的那一个 在JavaBeans组件中,setPropertyName方法必须存在 paramName必须是参数名称

设置JavaBeans组件属性(示例) 检索JavaBeans组件属性 <c:set var="bid" value="${param.bookId}"/> <jsp:setProperty name="bookDB" property="bookId" value="${bid}" /> <jsp:useBean id="bookDB" class="database.BookDB" scope="page"> <jsp:setProperty name="bookDB" property="database" value="${bookDBAO}" /> </jsp:useBean> 检索JavaBeans组件属性 ${bookDB.bookDetails.title} <jsp:getProperty name="beanName" property="propName"/>

使用自定义标签 标签文件.tag和标签库描述符文件.tld 绝对URI <prefix:tag attr1="value" ... attrN="value" /> <prefix:tag attr1="value" ... attrN="value" > body</prefix:tag> <%@ taglib prefix="tt" [tagdir=/WEB-INF/tags/dir | uri=URI ]%> <%@ taglib prefix="tlt" uri="/WEB-INF/iterator.tld"%> <%@ taglib prefix="tlt" uri="/tlt"%> 标签文件.tag和标签库描述符文件.tld 绝对URI Core: http://java.sun.com/jsp/jstl/core XML: http://java.sun.com/jsp/jstl/xml Internationalization: http://java.sun.com/jsp/jstl/fmt SQL: http://java.sun.com/jsp/jstl/sql Functions: http://java.sun.com/jsp/jstl/functions

包括标签库实现 标签文件:/WEB-INF/tag 标签处理器类:/WEB-INF/classes 打包的标签库:/WEB-INF/lib <J2EE_HOME>/lib/appserv-jstl.jar 在JSP页面中重用内容 静态包含<%@ include file="filename" %> <%@ include file="banner.jspf" %> 动态包含<jsp:include page="includedPage" /> <jsp:include page="response.jsp"/>

将控制转移到另一Web组件 <jsp:forward page="/main.jsp" /> <jsp:include page="..." > <jsp:param name="param1" value="value1"/> </jsp:include> A=foo A=bar A=bar,foo

包括小程序 <jsp:plugin type="applet" code="DigitalClock.class" codebase="/bookstore2" jreversion="1.4" align="center" height="25" width="300" nspluginurl="http://java.sun.com/j2se/1.4.2/download.html" iepluginurl="http://java.sun.com/j2se/1.4.2/download.html" > <jsp:params> <jsp:param name="language" value="${pageContext.request.locale.language}" /> <jsp:param name="country" value="${pageContext.request.locale.country}" /> <jsp:param name="bgcolor" value="FFFFFF" /> <jsp:param name="fgcolor" value="CC0066" /></jsp:params> <jsp:fallback><p>Unable to start plugin.</p></jsp:fallback> </jsp:plugin>

设置JSP页面组的属性 isELIgnoreed pageEncoding(不一致导致错误) 定义隐式包含 deploytool,页面指令,标签文件指令 pageEncoding(不一致导致错误) deploytool,页面指令 定义隐式包含 deploytool preludes and codas