第一部分 Jsp应用初步
第一章 JavaServer Pages入门
JavaServer Pages是一种用于开发包含有动态内容的Web页面的技术
JSP的优点:
JSP同时支持基于脚本和基于元素的动态内容,并允许开发人员创建定制标记库来满足特定于应用的需求
JSP页面可以编译从而完成高效的服务器处理
JSP页面可以与处理业务逻辑的Servlet结合使用,这是Java Servlet模版引擎所推崇的模式
JSP 是一个规范,而不是一个产品
JSP是J2EE的一个集成部分,而J2EE是面向企业类应用的一个完整平台
第二章 HTTP和Servlet基础
HTTP(HyperText Transport Protocol)超文本传输协议
HTTP 是一个无状态协议
不同于独立的GUI应用,Web应用无法轻松地立即提供反馈
协议中未明确请求是如何建立的,相应地,服务器也无法对触发客户请求的不同方法加以区别
请求参数:
以查询串的形式加在URI上,或者作为请求消息体的一部分发送
请求方法:
GET:获取一个资源,不需要服务器做任务工作
POST:请求在服务器上做某种处理,例如:更新一个数据库或者处理一个购买订单
Servlet
优点:
平台独立性和开发商独立性
集成性
高效率
可扩展性
健壮性和安全性
Servlet容器
Servlet上下文
第三章 JSP概述
Servlet存在的不足
处理代码和HTML元素堆积在一起
对Servlet代码进行更新和重编译
在设计应用界面时,很难充分利用Web页面开发工具
JSP元素
指令
动作
脚本
EL(Expression Language)表达式语言
${1 + 2 + 3}
第四章 建立JSP环境
---------------------------------------------------------------
第二部分 JSP应用开发
第五章 生成动态内容
JSP注释: <%-- --%>
动作分3类:标准动作,定制动作,和JSP标准标记库动作
隐式EL变量
<c:out value="${param.username}">
第六章 在JSP页面中使用JavaBeans组件
bean就是遵循某些编码约定的Java类,从而可以在更大型的应用中作为组件由工具加以使用
bean类一定要使用一个包名
bean类必须有一个无参数的构造函数
bean性质要通过获取方法(getter)和设置方法(setter)来访问
bean类必须实现java.io.Serializable或java.io.Externalizable接口
<jsp:useBean id="cartoon" class="com.ora.jsp.beans.motd.CartoonBean" /> <img src="images/<jsp:getProperty name="cartoon" property="fileName" />">
<jsp:useBean id="cartoon" class="com.ora.jsp.beans.motd.CartoonBean" /> <img src="images/${cartoon.fileName}">
<jsp:setProperty name="msg" property="category" value="thoughts" />
使用JSTL<c:set>动作
第七章 使用定制标记库和JSP标准标记库
定制动作:1.由程序员开发为Java类 2.由网页设计人员开发为标记文件
JSTL
Core(核心库) | http://java.sun.com/jsp/jstl/core | c |
XML processing(xml处理) | http://java.sun.com/jsp/jstl/xml | x |
I18N formatting(国际化) | http://java.sun.com/jsp/jstl/fmt | fmt |
Database access(数据库访问) | http://java.sun.com/jsp/jstl/sql | sql |
Functions(函数) | http://java.sun.com/jsp/jstl/functions | fn |
bean还是定制动作
bean擅长作为信息载体,定制动作在处理信息方面更加突出
第八章 处理输入和输出
You entered:<br> Name: <c:out value="${param.userName}" /><br> Birth Date: <c:out value="${param.birthDate}" /><br> Email Address: <c:out value="${param.emailAddr}" /><br> Gender: <c:out value="${param.gender}" /><br> Lucky Number: <c:out value="${param.luckyNumber}" /><br> Favorite Food: <c:forEach items="${paramValues.food}" var="current"> <c:out value="${current}" /> </c:forEach>
访问其他请求数据
pageContext.request
使用bean捕获参数值
<jsp:useBean id="userInfo" class="com.ora.jsp.beans.userinfo.UserInfoBean"> <jsp:setProperty name="userInfo" property="*" /> </jsp:useBean> You entered:<br> Name: <c:out value="${userInfo.userName}" /><br> Birth Date: <c:out value="${userInfo.birthDate}" /><br> Email Address: <c:out value="${userInfo.emailAddr}" /><br> Gender: <c:out value="${userInfo.gender}" /><br> Lucky Number: <c:out value="${userInfo.luckyNumber}" /><br> Favorite Food: <c:forEach items="${userInfo.food}" var="current"> <c:out value="${current}" /> </c:forEach>
使用JSTL动作验证用户输入
使用bean验证用户输入
使用<c:out> 还是fn.escapeXml()函数来转换特殊字符
第九章 错误处理和调试
1.处理语法错误
元素语法错误
表达式语言语法错误
2.处理运行时错误
第十章 在JSP页面,请求和用户间共享数据
将控制从一个页面传递到另一个页面
<jsp:forward>
将数据从一个页面传递到另一个页面
page,request,session,application
信息发送给浏览器
1。作为一个cookie
2.作为隐藏域嵌套在一个HTML表单中
3.URL重写
<html> <head> <title>Counter page</title> </head> <body bgcolor="white"> <%-- Increment counters --%> <c:set var="sessionCounter" scope="session" value="${sessionCounter + 1}" /> <c:set var="applCounter" scope="application" value="${applCounter + 1}" /> <h1>Counter page</h1> This page has been visited <b>${sessionCounter}</b> times within the current session, and <b>${applCounter}</b> times by all users since the application was started. </body> </html>
重定向与转发
重定向:新的请求,请求作用域变量将不可用
转发:同一个请求
<c:redirect url="catalog.jsp" />
第十一章 将定制标记库开发为标记文件
<%@ tag body-content="empty" %> <jsp:useBean id="now" scope="application" class="java.util.Date" /> Copyright © ${now.year + 1900} My Company
<%@ page contentType="text/html" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %> <html> <body bgcolor="white"> Any old page content ... <p> <my:copyright/> </body> </html>
第十二章 访问数据库
第十三章 鉴别和个人化
用户鉴别:
http基本鉴别
http摘要鉴别
https客户鉴别
基于表单的鉴别 Servlet容器实现
应用控制的鉴别
第十四章 国际化
第十五章 处理XML数据
第十六章 使用脚本元素
脚本元素:
1.小脚本(scriptlet)
2.表达式(expression)
3.声明(declaration)
第十七章 拾遗补缺
--------------------------------------------------------------------------------
第三部分 J2EE和JSP组件开发中的JSP
第十八章 web应用模型
第十九章 结合JSP和Servlet
第二十章 为JSP开发JavaBeans组件
第二十一章 使用Java开发定制标记库
第二十二章 高级定制标记库特性
第二十三章 定制代码与JSTL的集成
第二十四章 数据库访问策略