JavaWeb核心技术四

第01章:JSP入门

  1. 什么是JSP
    JSP(Java ServerPage)是原SUN公司开发的一款运行在Web服务器中的动态Web技术之一,属于JavaEE体系架构之一。

  2. 为什么要用JSP
    用Servlet来做Web页面显示比较烦麻,难以后期维护,这时就需要一个新的技术来替代Servlet在显示页面方面的不足,且又必须是一种动态Web技术,于是原SUN制定的JSP规则,用于替代Servlet在显示界面的不足。
    注意,初学者不要认为JSP可以完全取代Servlet,只是弥补了Servlet。(JSP本质还是还是Servlet–>编译时JSP会打包成Servlet)

  3. 在哪里用JSP
    做Web页面显示,包括静态页面显示和动态页面显示。
    JSP = HTML技术 + Java技术 + JSP特有技术

  4. 我的第一个JSP程序
    01_date.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<title>My JSP 'date.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 当前时间:<%=new Date().toLocaleString()%><br/>

第02章:JSP运行原理

  1. 谈Web服务器是如何调用并执行一个JSP页面的
    参见JSP运行原理图

  2. 谈JSP页面中的HTML标签是如何被发送到客户端的
    JSP中的HTML标签(静态内容)通过JspWriter.write()方法输出到客户端的

  3. 谈JSP页面中的Java代码服务器是如何执行的
    JSP中的Java代码(动态内容)通过JspWriter.print()方法输出到客户端的

  4. 谈Web服务器在调用JSP时,会给JSP提供一些什么Java对象
    因为Web服务器会将JSP页面翻译成Java代码,其实这个Java代码就是
    我们的Servlet代码,会向service()方法传入一些对象,例如:request和response对象
    这些对象我们不需要创建,直接用就可以,我们称其为JSP内置对象/隐式对象

注意:观察以下目录,是JSP引擎/容器翻译JSP为Servlet的源代码位置:
E:\apache-tomcat-7.0.64\work\Catalina\localhost\day14\org\apache\jsp\jsp

第03章:JSP最佳实践,即MVC模式

  1. 在长期的实战中,人们得出如下习惯用法:
    显示View:JSP适合做页面的显示,例如:显示登录成功界面
    控制Controller:Servlet适合做业务控制操作,例如:接收用户请求,
    将用户请求的参数值封装到JavaBean对象中去,调用其它Java类处理,
    如果有结果,将结果放入到域对象中去,转发或重定向到显示结果的JSP页面
    功能Model:Bean,即就是普通Java类,该类中封装大量的业务操作

  2. 画图演示MVC
    参见MVC运行图

第04章:JSP基础语法

  1. JSP模版元素
    就是HTML标签,在JSP中一样可以书写HTML标签,就些标签就叫模版元系,
    属于静态内容

  2. JSP输出表达式
    <%= “xx” %>
    主要用于向浏览器输出变量的值
    注意:<%=和%>不可分隔
    注意:后面无分号
    Response.getWriter().write();

  3. JSP脚本片断
    <% Java代码; %>
    书写一行或多行Java代码
    多个脚本片段可以相互访问,
    注意:后面有分号

为什么多个脚本片段之间可以相互调用呢?
答案:查看JSP翻译后的Servlet源文件便知

  1. JSP声明
    <%! java代码 %>
    JSP声明的变量或方法,会被翻译成Servlet的实例变量和成员方法

  2. JSP注释
    JSP中可以书写Java代码,所有Java代码的注释在JSP同样可以使用//
    JSP中可以书写HTML代码,所有HTML代码的注释在JSP同样可以使用
    JSP也有自已特有的注释,<%-- xxxxxx -->,不能嵌套
    JSP引擎将 当作有效内容,翻译进Servlet源文件
    JSP引擎将<%-- --%>当作无效内容,忽略,不翻译进Servlet源文件,推荐使用

02_random.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%-- JSP声明 --%>
<%!
    int global;
    public int getNumber(){
         return new Random().nextInt(10);
    }
%>
<%-- JSP脚本 --%>
<%
    for(int i=1;i<=6;i++){
         int number = getNumber();
%>
         <%-- JSP输出表达式 --%>
         <h4><%=number%></h4>
<%
    }
%>

03_font.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import=“java.util.*” %>
<%
    for(int i=1;i<=6;i++){
%>
         <h<%=i%>>哈哈</h<%=i%>>
<%
    }
%>

第05章:JSP指令

  1. 什么是JSP指令
    JSP指令是通知JSP引擎如何处理该JSP页面,
    例如:通知JSP引擎加载java.util.*包中的类

  2. 谈JSP共有三种指令

    1. page指令
    2. include指令
    3. taglib指令
  3. 谈JSP指令语法
    <%@ page 属性名=”属性值” %>
    一个指令可以有多个属性,属性名=“属性值”
    指令通常放在JSP的第一行,第一行前不要有任何空白符和注释

  4. 谈page指令

<%@page
 [ language="java" ] 默认java
在JSP的脚本片段只能书写java代码
[import="{package.class|package.*},..]
%>

默认java.lang,javax.servlet,javax.servlet.http,javax.servlet.jsp

向jsp翻译后的servlet源码导入包
[session=“true | false” ] 默认true
true表示一旦访问jsp页面,自动创建HttpSession,false表示不自动创建HttpSession
[ autoFlush=“true | false” ] 默认true
jsp页面有缓存,在默认情况下,autoFlush=true表示缓存满后自动强行输出到浏览器,
如果设置为false的话,得通过人工调用flush()方法才可以输出到浏览器
[ isThreadSafe=“true | false” ] 默认true

jsp页面是否被多个线程同时访问安全?
如果设置为true,表示多个线程来访问jsp是安全的。如果设置为false的话,就表示该jsp页面在没有加锁的情况下,多个线程来访问,可能会出现安全问题

[ info=“这是我的第一个jsp程序” ] 默认""
表示给该jsp页面记录一些附加的信息

[errorPage=“relative_url” ] 无默认值
表示该jsp页面出错后,转发到指定的jsp页面进行错误消息的显示

/表示当前web应用的根目录,即/day14
否则表示当前jsp页面

[ isErrorPage=“true | false” ] 默认false
如果是用于错误消息的显示jsp页面,要加上isErrorPage=true这个属性,这样jsp引擎就会创建exception内置对象,该exception内置对象中封装了出错的原因
如果设置为false的话,jsp引擎不会将exception内置对象翻译到servlet代码中,即无法在jsp页面中用exception对象来获取出错原因
500:表示服务器执行代码时,出错了,即属于服务器出错
404:表示客户端访问服务器资源时,路径错了,即属于客户端出错

04_error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page errorPage="/WEB-INF/message.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>errorPage+isErrorPage</title>
</head>
<body>
    <%
        int i = 1/0;
    %>
</body>
</html>

message.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>errorPage+isErrorPage</title>
</head>
<body>
    出错了<br/>
    <%=exception.getMessage()%>
</body>
</html>

[ contentType=“mimeType [;charset=characterSet ]” | “text/html ; charset=ISO-8859-1” ]
默认ISO-8859-1

对内(开发工具):表示设置该jsp文件采用的编码方式,推荐用UTF-8
对外(浏览器):表示浏览器采用什么解码方式,推荐用UTF-8
[ pageEncoding=“characterSet | ISO-8859-1” ] 默认ISO-8859-1
对内:表示设置该jsp文件采用的编码方式,推荐用UTF-8
对外:表示浏览器采用什么解码方式,推荐用UTF-8
如果在jsp页面中,同时存在contentType和pageEncoding的话,会有如下结果:
对内:pageEncoding来决定
对外:contentType来决定

建议都用contentType = pageEncoding = UTF-8
对于MyEclipse工具而言,只需设置pageEncoding=UTF-8即可

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'date.jsp' starting page</title>
  </head>
  <body>
     当前时间:<%=new Date().toLocaleString()%><br/>
  </body>
</html>

[isELIgnored=“true | false” ] ,默认支持,即false
如果JSP引擎支持EL的话,即为false,就会将${}符号中的内容运算出来,再显示
如果选用true的话,表示JSP引擎会忽略EL,将EL做为一个普通字符串来输出

05_el.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'date.jsp' starting page</title>
  </head>
  <body>
     10+3=${10+3}
  </body>
</html>

可以配置一个全局的出错处理,在web.xml文件中配置,

<error-page>
	<error-code>500</error-code>
	<location>/WEB-INF/03_globalerror.jsp</location>
</error-page>

只要当前web应用下的所有jsp或servlet资源,出现了500错误,都会转发到
/WEB-INF/03_globalerror.jsp页面
如果既有局部出错处理,又有全局出错处理,局部优先

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<error-page>
    <error-code>500</error-code>
    <location>/WEB-INF/globalerror.jsp</location>
</error-page>
  1. 谈include指令
    在一个JSP页面中包含多个其它的JSP页面
    <%@include file=”被包含的jsp页面的路径” %>
    在翻译成Servlet时,就将被包含的JSP页面中的内容翻译成Servlet中了,即多个JSP只会翻译成1个Servlet,静态包含。
    06_include.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="/jsp/date.jsp"%>
<%@ include file="/jsp/el.jsp"%>
  1. 谈taglib指令
    在JSP页面中需要引用第三方的标签
    <%@ taglib uri=”名称空间” prefix=”标签的前缀”%>
    我们在《JSP之JSTL标签库》中再讲

第06章:JSP九大内置/隐式对象

  1. 什么是内置对象
    由JSP引擎将JSP翻译成Servlet时,自动创建的对象,无需程序员创建的对象,直接使用即可,这些对象就叫内置对象。

  2. 谈JSP中有9个内置对象,分别是

JSP叫法 功能等价 部份Servlet叫法
requestHttpServletRequest请求对象,请求域对象
responseHttpServletResponse响应对象
sessionHttpSession会话域对象
applicationServletcContext应用域对象
configServletConfig获取某个Servlet的初始化参数
outJspWriter(带缓冲的PrintWriter)JSP专用的字符输出对象
exception(特殊情况下使用)异常对象
pagethis(本JSP页面)JSP页面自己
pageContext当前域对象

pageContext功能强大,其中有一个findAttribute()这个API,它会
依次从page->request->session->application这几个域对象,例如:
如果在request中找到了,就不会再去其它域对象中找了
如果在JSP中的上述四个域对象都没找到,返回null

07_getData.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8%>
<title>演示pageContext从JSP四个域对象中取数据</title>
 <%
       //pageContext.setAttribute("NAME","pageContext");
       //request.setAttribute("NAME","request");
       //session.setAttribute("NAME","session");
       //application.setAttribute("NAME","application");
 %>
 <%= pageContext.findAttribute("NAME")%>

JSP中
pageContext 生命周期:页面范围有效
request 生命周期:请求范围有效
session 生命周期:会话范围有效
application 生命周期:应用范围有效

Servlet中:
HttpServletRequest 请求范围内有效
HttpSession 会话范围内有效
ServletContext 应用范围内有效

第07章:JSP之EL表达式

  1. 什么是EL(Expression Language)
    EL是一种在JSP中使用的,由JSP引擎解析的特殊字符串

  2. 谈EL有什么作用
    2.1 获取域对象数据(包括JavaBean,数组,集合)
    EL会依次从page->request->session->application中依次查找字符串对应的值,
    如果EL找不到,返回空白字符串””,不是null
    EL底层就是pageContext.findAttribute()这个API
    ${NAME}找不到返回””
    findAttribute(“NAME”)找不到返回null

08_el_1.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8%>
<%@ page import=“cn.itcast.android.javaweb.servlet.User” %>
<%
    User user = new User("赵君");
    pageContext.setAttribute("USER",user);
%>
姓名:${USER.name}<br/>

2.2 执行运算 算术(+-*/),关系(>>=<<=!=和==),逻辑(&&||!)

09_el_2.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8%>
一天有${1*24*60*60}<br/>
10>3吗?${10>3?"是":"不是"}<br/>
true && false 结果为:${true && false}<br/>

2.3 获取web开发常用11个内置对象


3. 谈EL中有11个内置(隐式)对象

pageContext当前域对象
pageScope/requestScope/sessionScope/applicationScope域对象中key=value形式的Map对象,不是域对象
param/paramValues用于获取请求行和体中的内容
header/headerValues 用于获取请求头中的内容
cookie用于获取浏览器中Cookie的名和值
initParam用户获取整个Web应用初始化参数

10_el_3.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8%>
<a href="${pageContext.request.contextPath}/Demo01">获取web应用的名字</a><br/>
<%
    pageContext.setAttribute("location","深圳");
    request.setAttribute("location","广州");
%>
${requestScope.location}<br/>
${param.id}<br/>

第08章:JSP之动作标签

  1. 什么是动作标签
    是JSP内置标签,无需导入第三方的jar包,
    该标签封装了一定的业务逻辑

  2. 常用的动作标签
    1. <jsp:forward page=””/>
    2. <jsp:include page=””/>,属于动态包含
    静态包含:将多个JSP翻译成一个Servlet
    动态包含:将多个JSP翻译成多个Servlet
    3. <jsp:param name="" value=""/>

from.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8%>
<title>My JSP 'date.jsp' starting page</title>
 <jsp:forward page="/jsp/to.jsp">
       <jsp:param value="jack" name="name"/>
       <jsp:param value="123" name="pass"/>
 </jsp:forward>
 to.jsp
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8%>
<title>My JSP 'date.jsp' starting page</title>
 to.jsp<br/>
 ${param.name}<br/>
 ${param.pass}<br/>

第09章:JSP之JSTL标签

  1. 什么是JSTL标签
    JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的,在所有支持JSP的Web服务器中都可以运行。

  2. 为什么要用JSTL标签
    其实不管是动作标签,EL,还是JSTL,他们都是为了在JSP中,封装业务操作,但又不想在JSP中书写大量的<%%>符号,达到页面的整体统一,让人觉得JSP页面都是由标签组成。
    但jsp:forward/这个标签本质上还是与标签有区别的。

  3. 常用的JSTL标签

    1. c:if
    2. c:choose/c:when/c:otherwise
    3. c:forEach
      要在jsp声明一个指令:
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix=“c” %>

jstl.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<title>My JSP 'date.jsp' starting page</title>
 <%
       List<String> list = new ArrayList<String>();
       list.add("HTML");
       list.add("CSS");
       list.add("JS");
       list.add("XML");
       list.add("AJAX");
       list.add("TOMCAT");
       request.setAttribute("LIST",list);
 %>
 <c:if test="${!empty LIST}">
       <c:forEach var="course" items="${LIST}">
            ${course}<br/>
       </c:forEach>  
 </c:if>             
 <hr/>
 <c:choose>
       <c:when test="${!empty LIST}">
            <c:forEach var="course" items="${LIST}">
                 ${course}<br/>
            </c:forEach>
       </c:when>
       <c:otherwise>
            查无数据
       </c:otherwise>
 </c:choose>

练习:购物车V2

提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 JavaWeb程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值