Servlet和JSP学习指南

出版社:机械工业出版社华章公司
出版日期:2013-4-14
ISBN:9787111418610
作者:Budi Kurniawan
页数:340页

前言

译者序Sun公司于1996年发布了Java Servlet技术,与CGI(Common Gateway Interface,公共网关接口)形成竞争,之后,它成为在Web中生成动态内容的标准。自从Servlet面世以来,也开发出了许多基于Java的Web框架,以帮助程序员更迅速地编写Web应用程序。目前全世界拥有了众多的Java Web开发人员,也是最热门的编程技术。作者Budi Kurniawan是BrainySoftware.com的高级架构师,也是《How Tomcat Works》、《Java for the Web with Servlets, JSP and EJB》以及《Struts 2 Design and Programming》、《Java 7: A Beginner抯 Tutorial》的作者。他已经发表了上百篇技术文章,并编写过授权给全球著名的大公司使用的软件。本书读者对象本书是针对有Java编程语言基础的Web开发者的,Java Web应用程序开发是一种很成熟并且很热门的编程技术。同时,它也汇集各种技术于一身,经常令初学者不知道从何入手。如果你也有同感,那么本书就很适合你,因为它就是一本特意为初学者量身定制的教程。作为一套面对初学者的教程,本书不是要教会你每一种Servlet/JSP技术。如果你是一名有经验的Web应用开发者,对Servlet 3.0的新特性感兴趣,那么本书涵盖新特性的章节正是你所需要阅读并实践的内容。章节简介本书介绍了最重要的编程概念,并教你如何编写Servlet/JSP,以及如何使用Servlet核心类库。对于编写真实的Web应用程序提供了很好的指导。本书是你所能找到的最全面的Java Web应用程序开发之入门教程,其主题有:Java Web编程的核心技术Servlet4种Session管理技术JSP表达式语言JSTL以及定制标签定制标签文件Servlet事件驱动编程之监听器拦截请求的Web对象过滤器Model 2架构利用Servlet 3.0新特性进行文件上传以改善用户的体验通过编程方式将资源发送到浏览器利用Decorator模式等来改变Servlet请求和响应的行为Servlet 3.0新特性之异步处理通过声明和编程方式来保护Java的Web应用程序应用程序的部署及描述符说明Servlet 3.0新特性之动态注册和Servlet容器初始化技术范围本书旨在使你更全面、更专业地掌握Java Web应用程序开发技术,但是它只是一本比较基础的书籍,如果你已经有多年的Java Web应用程序开发经验,或许可以通过快速的阅读或者直接找到自己所需要的新技术点。当阅读本书时,你会遇到许多需要动手进行验证的实例,可以利用本书附带的示例程序进行练习与实践。示例与答案下载地址为:http://books.brainysoftware.com/download/servletjsp.zip。正如在翻译过程中发现原著的错误一样,虽然我们在翻译过程中竭力以求信、达、雅,但限于自身水平,必定仍会有诸多不足,还望各位读者不吝指正。大家可以通过访问我的博客http://YuLimin.ItEye.com或者发送电子邮件到YuLimin@163.com进行互动。关于术语的翻译,仍然沿用翻译《Effective Java中文(第2版)》时采用的术语表以及满江红开放技术研究组织翻译术语,请见http://yulimin.iteye.com/blog/272088。感谢崔毅(http://cuiyi.javaeye.com/)对我在翻译中碰到的问题进行的深入讨论,并对本书翻译时所采用的术语进行了认真的磋商;感谢“满江红开放技术研究组织”的翻译同仁们在术语表讨论中提出许多中肯的建议;感谢满江红开源组织的曹晓钢提供的一些翻译注意事项和热情的帮助;感谢机械工业出版社的编辑认真仔细地审稿,辛苦了,谢谢!本书由我组织翻译,崔毅负责翻译第1~8章,俞哲皆负责翻译第9~14章,我负责翻译前言、第15~18章、附录并对全书所有章节进行全面审校,还负责对原文中的错误与作者进行沟通并加以修正。参与翻译与审校的还有:杨春花、崔毅、张琬滢、蒋凌锋、魏伟、万国辉等,在此再次深表感谢。本书章节安排合理,内容承上启下,但是需要边看书边动手做实验,才能充分理解并掌握Java Web应用程序开发技术及新特性。快乐分享,实践出真知,最后,祝大家能够像我一样在阅读中享受本书带来的乐趣!Read a bit and take it out, then come back read some more.俞黎敏前言欢迎你阅读本书,其内容涵盖了Servlet 3.0和JSP 2.2方面的技术。Java Servlet技术,或简称Servlet,是Java中用于开发Web应用程序的基本技术。Sun公司于1996年发布了Java Servlet技术,与CGI(Common Gateway Interface,公共网关接口)形成竞争。之后,它成为在Web中生成动态内容的标准。CGI的主要问题在于,它为每一个HTTP请求都创建一个新的进程。因为创建进程需要花费大量的CPU周期,这使得编写可扩展的CGI程序变得极为困难。另一方面,Servlet程序也比CGI程序运行得更快,这是因为Servlet执行完它的第一个请求之后,就会驻留在内存中,等待后续的请求。自从Servlet面世以来,也开发出了许多基于Java的Web框架,以帮助程序员更迅速地编写Web应用程序。这些框架可以使我们只关注业务逻辑,而不在编写样板代码(boilerplate code)上花费太多的时间。但你还是需要了解Servlet的基本知识。后来,JavaServer Pages(JSP)发布了,这使得编写Servlet变得更加轻松了。或许你正在使用一种很好的框架,如Struts 2、Spring MVC,或者JavaServer Faces。但是,如果没有充分理解Servlet和JSP方面的知识,你将无法进行高效的编码。顺便说一下,Servlets是指在Servlet容器中运行的Java类。Servlet容器或者Servlet引擎,就像是一个Web服务器,但它能够生成动态的内容,而不只是提供静态的资源。目前的Servlet 3.0是在JSR(Java Specification Request,Java规范请求)315中定义的(http://jcp.org/en/jsr/detail?id=315)。它需要用Java Standard Edition 6或者更新的版本。JSP 2.2则是在JSR 245中定义的(http://jcp.org/en/jsr/detail?id=245)。本书假设你事先已经了解Java和面向对象编程。如果你是刚刚接触Java,那么建议你先看一下笔者的另一本书:《Java 7: A Beginner Tutorial》,ISBN 978-0-9808396-1-6。下一节将讨论Servlet/JSP应用程序架构(Application Architecture)、HTTP协议,以及书中各章节的主要内容。Servlet/JSP应用程序架构Servlet是一个Java程序。一个Servlet应用程序经常包含一个或者多个Servlet。JSP页面要被翻译成Servlet,并进行编译。Servlet应用程序是在Servlet容器中运行的,它不能自动运行。Servlet容器将用户的请求传给Servlet应用程序,并将Servlet应用程序的响应回传给用户。大多数Servlet应用程序至少都包含几个JSP页面。因此,将Java的Web应用程序称为“Servlet/JSP应用程序”比“Servlet应用程序”更为恰当一些。Web用户可以利用如Internet Explorer、Mozilla Firefox或者Google Chrome这类Web浏览器来访问Servlet应用程序。一个Web浏览器相当于一个Web客户端。图1中展示了一个Servlet/JSP应用程序的架构。图1 Servlet/JSP应用程序架构Web服务器与Web客户端之间通过双方都熟悉的一种语言进行通信,即超文本转移协议(HyperText Transfer Protocol,HTTP)。为此,Web服务器也称作HTTP服务器。关于HTTP的更多内容请参见下一节。Servlet/JSP容器是一种特殊的Web服务器,它可以处理Servlet,并提供静态内容。在过去,人们更习惯于将Servlet/JSP容器作为HTTP服务器的一个模块来运行,如Apache HTTP Server,因为他们认为HTTP服务器比Servlet/JSP容器更健壮。在这种情况下,Servlet/JSP容器的任务是生成动态内容,HTTP服务器则负责提供静态资源。如今,人们认为Servlet/JSP容器已经成熟,它们不需要HTTP服务器就可以进行广泛的部署。Apache Tomcat和Jetty是其中最为盛行的两种Servlet/JSP容器,并且它们都是免费、开源的。可以分别从以下两个网站下载二者:http://tomcat.apache.org和http://jetty.codehaus.org。Servlet和JSP是Java Enterprise Edition(EE)定义的众多技术当中的两种。其他的Java EE技术还包括Java Message Service(JMS)、Enterprise JavaBeans(EJB)、JavaServer Faces(JSF),以及Java Persistence。Java EE 6(当前的最新版本)的完整技术列表,可以在以下网站找到:运行Java EE应用程序时,需要一个Java EE容器,如GlassFish、JBoss、Oracle WebLogic,以及IBM WebSphere。也可以将Servlet/JSP应用程序部署在Java EE容器中,只不过用Servlet/JSP容器已经绰绰有余,它还比Java EE容器更轻量化。Tomcat和Jetty则不属于Java EE容器,因此它们不能运行EJB或者JMS。超文本转移协议(HTTP)HTTP协议使得Web服务器与浏览器之间可以通过互联网(Internet)或者企业内部网(Intranet)来交换数据。万维网联盟(World Wide Web Consortium,W3C)是一个开发标准的国际化社区,它负责修订和维护这个协议。HTTP的第一个版本是HTTP 0.9,之后是HTTP 1.0。再后来,HTTP 1.0又被目前的HTTP 1.1取代。HTTP 1.1是在W3C的RFC(Request for Comments)2616中定义的,它可以通过以下网址下载到:http://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf。Web服务器每天24小时,每周7天不间断地运行,随时等待HTTP客户端(一般是Web浏览器)的连接和资源请求。在HTTP中,总是由客户端发起连接,服务器从不主动联系客户端。在查找某一个资源时,互联网用户是通过单击一个包含URL(Uniform Resource Locator,统一资源定位器)的链接,或在他/她的浏览器地址栏中输入一个URL进行的。下面举URL的两个例子:URL的第一部分是http,它是协议的标识。并非所有的URL都用HTTP。例如,下面这两个URL虽然没有使用HTTP,但它们也都是有效的:一般来说,URL的格式是这样的:或者如下所示:以上方括号中的内容都是可选的,因此URL也可以像http://yahoo.ca或者http://192. 168.1.9这么简单。顺便说一下,IP地址其实是分配给某一台计算机或者另一种设备的一个数字标签。一台计算机可以有多个域名,因此,几个域名也可以共用一个IP地址。换句话说,如果不用http://google.com,也可以用它的IP地址:http:/209.85.143.99。为了查出某个域名的IP地址,可以在计算机的控制台或命令行中使用ping命令,如:IP地址很难记住,因此人们更喜欢使用域名。但你知道吗?像example.com和example.org这样的域名是无法购买到的,因为它们是留着备用的,比如编写文档时作为示例用。主机名host部分可以有,但与没有主机名host的地址相比,它表示的则是互联网或者内部网中另一个完全不同的位置。例如,http://yahoo.com(没有主机名host)与http://mail.yahoo.com(有主机名,为mail)表示的是两个完全不同的位置。在过去,www是最盛行的主机名,因此它变成是默认的。一般来说,http://www.domainName就是指http://domainName。80是HTTP的默认端口。因此,如果Web服务器是在80端口上运行,那么不需要端口号也能到达服务器。但是,有的时候,如果Web服务器不是在端口80上运行的,那么就需要输入端口号。例如,Tomcat默认是在端口8080上运行,因此需要提供端口号:localhost是一个保留名称,一般用来表示本机,即正在运行Web浏览器的这台计算机。URL中的context部分是指应用程序的名称,但这个也是可选的。Web服务器可以运行多个context或多个应用程序,其中一个可以设置为默认的context。如果要请求的是默认context中的资源,则URL中的context部分就可以忽略。最后,一个context可以有一个或者多个默认资源(一般为index.html、index.htm或者default.htm)。一个没有资源名称的URL,通常被当作是默认资源。当然,如果一个context中存在多个默认资源,那么当客户端没有指定资源名称时,将总是返回优先级最高的那一个。在资源名称之后,一般是一个或者多个查询字符串。查询字符串是指可以传到服务器进行处理的一个键/值对。后面的章节会介绍到更多关于查询字符串的内容。接下来的几个小节将详细介绍HTTP请求和响应。HTTP请求一个HTTP请求中通常包含三个部分:方法/统一资源标识符(Uniform Resurce Identifier,URI)/协议/版本请求标头实体主体下面是一个HTTP请求的示例:方法/URz/协议版本号,放在请求的第一行。如:这里的POST是请求方法,/examples/default.jsp是URI,HTTP/1.1是协议/版本号部分。HTTP请求可以利用HTTP标准中定义的其中一个请求方法。HTTP 1.1支持7种请求类型:GET、POST、HEAD、OPTIONS、PUT、DELETE以及TRACE。GET和POST是互联网应用程序中最常用的。URI用于指定一个互联网资源,它通常解读为是相对于服务器的根目录。因此,它始终应该以一个正斜线(/)开头。统一资源定位器(URL)实际上也是一种URI(详情请查看http://www.ietf.org/rfc/rfc2396.txt)。在一个HTTP请求中,请求标头包含关于客户端环境和请求实体主体的有用信息。例如,它可以包含为浏览器设置的语言、实体主体的长度等。各标头之间用一个回车换行(Carriage Return/LineFeed,CRLF)序列符隔开。在标头和实体主体之间是一个空行(CRLF),它对于HTTP请求格式是很重要的。CRLF告诉HTTP服务器,实体主体从这里开始。在有些互联网编程书籍中,它们是把这个CRLF当作是HTTP请求的第四个部分。在前一个HTTP请求中,实体主体只有下面这一行:实体主体常常比一个典型的 HTTP请求更长。HTTP响应与HTTP请求类似,一个HTTP响应中通常也包含三个部分:协议/状态码/描述响应标头实体主体下面是一个HTTP响应的示例:响应标头的第一行与请求标头的第一行类似。它在告诉我们,所使用的协议版本是HTTP 1.1,并且请求成功(200是成功状态码)。响应标头也包含与HTTP请求中的标头类似的有用信息。响应的实体主体是响应本身的HTML内容。标头和实体主体之间用一系列的回车换行符(CRLF)隔开。当且仅当Web服务器能够找到所请求的资源时,才会发出状态码200。如果无法找到某个资源,或者无法理解请求,服务器就会发出一个不同的请求代码。例如,401是未授权访问的状态码,405表示未经允许的HTTP方法。关于HTTP状态码的完整列表,请查看以下在线文档:关于本书下面介绍一下各章节的主要内容。第1章介绍Servlet API,还示范了几个简单的Servlet。该章主要关注Servlet API 4个Java包当中的两个:javax.servlet包和javax.servlet.http包。第2章讨论Session追踪,或称作Session管理。由于HTTP的无状态性,因此这是Web应用程序开发中一个非常重要的主题。该章探讨保持状态的4种技术:改写URL、隐藏域、cookie以及HTTPSession对象。JavaServer Pages(JSP)是Servlet的一种补充技术。第3章介绍JSP语法,包括它的指令、脚本元素以及动作。第4章阐述JSP 2.0中增加的最重要特性之一:Expression Language(EL)。EL旨在能够使我们设计出无脚本的JSP页面,并且能够协助你写出更简短、更高效的JSP页面。在该章中,你还会学到如何利用EL来访问JavaBeans和内置对象(Scoped Object)。第5章阐述JavaServer Pages Standard Tag Library(JSTL)中最重要的类库,这是一个定制标签类库的集合,用于解决像迭代映射或集合、条件测试、XML处理以及数据库访问和数据操作这类常见的问题。通常情况下,是利用JSTL访问内置对象,以及完成JSP页面中的其他任务。但是,对于更为具体的任务,可能需要你自己编写定制标签。第6章就教你具体的编写方法。第7章讨论标签文件,这是JSP 2.0中的一项新特性,它使得编写定制动作变得更加简单。该章讨论只利用标签文件来编写定制标签的几个方面。第8章讨论Servlet中的事件驱动编程。其中讨论了Servlet API中的事件类和监听器,并介绍了如何编写监听器,以及如何在Servlet/JSP应用程序中使用它们。第9章讲解过滤器,它们是拦截请求的Web对象。该章内容涵盖了Filter API,其中包括Filter、FilterConfig及FilterChain接口,并介绍如何通过实现Filter接口来编写过滤器。第10章解释Model 2架构,这是针对除最简单的Java Web应用程序之外的建议架构。该章还提供了几个范例,展示了Model 2应用程序中的不同组件。第11章展示如何利用Servlet 3的文件上传特性,以及如何在客户端改善用户的体验。第12章解释如何通过编程方式将一个资源发送到浏览器。Servlet API提供了用于包装Servlet请求和响应的类。在第13章中,将会学到如何利用Decorator模式及这些类来改变Servlet请求和响应的行为。第14章讨论Servlet 3.0中的一项新特性,其用来处理异步的操作。如果Servlet/JSP应用程序中有一个或多个长时间运行的操作,那么这项特性就特别有帮助。该特性的原理是将那些操作分配给一个新的线程,从而将处理线程的请求释放回到池中,准备为另一个请求提供服务。第15章阐述如何通过声明和编程方式来保护Java的Web应用程序。这里讨论了4个主要的安全性主题:验证、授权、保密性及数据完整性。第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素。第17章阐述Servlet 3中的两项新特性。动态注册是指不需要重启应用程序就可以动态地注册Web对象。框架开发者自然会喜欢Servlet容器初始化。第18章介绍作为MVC框架的Struts 2。该章阐述了Struts 2的基础组件和配置,并展示了一个简单的应用程序。附录A阐述如何安装和配置Tomcat,以及如何在各种操作系统中运行它。附录B列出可以用来配置Web对象的所有注解,如Servlet、监听器及过滤器。这些注解是Servlet 3的新特性,它们使部署描述符变成是可选的。附录C阐述如何利用KeyTool程序生成公/私钥对,以及如何请一家可信任的证书颁发机构,将公钥变成一份数字证书。下载应用程序范例从以下网站可以下载到本书配套应用程序范例的压缩档:选择框架当你学完本书,并掌握了Servlet和JSP之后,最好至少选择学习一种Web框架。目前有许多优秀的框架可以免费使用,例如Struts 2、JavaServer Faces、Spring MVC及Google Web Toolkit等都不错。框架可以解决Servlet/JSP开发中常见的问题,大大缩短开发时间。你可以根据工作需要,选择目前最需要的那些框架。

内容概要

作者简介
Budi Kurniawan 全球知名Java技术专家和资深Java企业级应用架构师,是软件咨询和技术出版公司Brainy Software的创始人,经验十分丰富。他还是一位经验丰富的技术作家,撰写了深入揭示Tomcat工作原理和设计理念的名著How Tomcat Works(《深入剖析Tomcat》,机械工业出版社出版)和《Struts Design and Programming》,并在多种权威出版物上发表过100多篇文章。
译者简介
崔 毅 JustCommodity Software Solution Pte 公司技术部经理。毕业于北京航空航天大学计算机学院,获硕士学位,主要研究Web服务、信息交换中间件。目前在新加坡生活和工作,先后从事技术开发、系统分析、系统实施、咨询顾问和产品研发管理等工作,有多年的开发设计和管理经验。
俞哲皆 中国电信莆田分公司产品运营中心产品经理,主要从事通信行业业务系统分析、设计、开发、项目管理等工作,以及Java Web应用系统开发、智能终端Android平台应用开发及基于HTML5跨手机平台的应用开发,熟悉Java开发技术,致力于移动终端的应用开发,热衷于开源技术学习与相关讨论。
俞黎敏 IBM软件部高级信息工程师、资深技术顾问,主要负责IBM WebSphere系列产品的技术支持工作,专注于产品新特性、系统性能调优、疑难问题诊断与解决。开源爱好者,满江红论坛的核心成员,组织翻译了大量开源技术文档和资料,深受社区成员拥戴。利用业余时间担任CSDN、CJSDN、Dev2Dev、Matrix、JavaWorldTW、Spring中文网、WebSphereChina.net等Java论坛的版主,在各大技术社区为推动开源和敏捷开发做出了积极的贡献。参与审校和翻译了《Ajax设计模式》、《CSS实战手册》、《Hibernate实战(第2版)》、《Java脚本编程》、《Effective Java中文版(第2版)》、《REST实战中文版》、《Java 7程序设计》等著作。

书籍目录

译者序
前 言
第1章 Servlet / 1
1.1 Servlet API概述 / 1
1.2 Servlet / 2
1.3 编写基础的Servlet应用程序 / 3
1.4 ServletRequest / 6
1.5 ServletResponse / 7
1.6 ServletConfig / 8
1.7 ServletContext / 10
1.8 GenericServlet / 11
1.9 HTTP Servlet / 13
1.10 处理HTML表单 / 15
1.11 使用部署描述符 / 21
1.12 小结 / 23
第2章 Session管理 / 24
2.1 网址重写 / 24
2.2 隐藏域 / 29
2.3 cookie / 34
2.4 HttpSession对象 / 42
2.5 小结 / 51
第3章 JSP / 52
3.1 JSP概述 / 52
3.2 备注 / 57
3.3 隐式对象 / 57
3.4 指令 / 60
3.5 脚本元素 / 63
3.6 动作 / 68
3.7 小结 / 71
第4章 EL / 72
4.1 EL语法 / 72
4.2 访问JavaBean / 74
4.3 EL隐式对象 / 75
4.4 使用其他EL运算符 / 78
4.5 使用EL / 80
4.6 在JSP 2.0及更高版本中配置EL / 83
4.7 小结 / 85
第5章 JSTL / 86
5.1 下载JSTL / 86
5.2 JSTL类库 / 86
5.3 通用动作指令 / 87
5.4 条件式动作指令 / 91
5.5 iterator动作指令 / 93
5.6 格式化动作指令 / 102
5.7 函数 / 109
5.8 小结 / 114
第6章 编写定制标签 / 115
6.1 定制标签概述 / 115
6.2 简单的标签处理器 / 116
6.3 SimpleTag范例 / 116
6.4 处理属性 / 119
6.5 管理标签主体 / 122
6.6 编写EL函数 / 125
6.7 发布定制标签 / 126
6.8 小结 / 128
第7章 标签文件 / 129
7.1 标签文件简介 / 129
7.2 我们的第一个标签文件 / 130
7.3 标签文件指令 / 131
7.4 doBody / 139
7.5 invoke / 141
7.6 小结 / 143
第8章 监听器 / 144
8.1 监听器接口和注册 / 144
8.2 Servlet Context监听器 / 145
8.3 Session监听器 / 148
8.4 ServletRequest监听器 / 153
8.5 小结 / 155
第9章 过滤器 / 156
9.1 Filter API / 156
9.2 过滤器的配置 / 157
9.3 范例1:日志过滤器 / 159
9.4 范例2:图片保护过滤器 / 163
9.5 范例3:下载计数过滤器 / 164
9.6 过滤器的顺序 / 168
9.7 小结 / 169
第10章 应用程序设计 / 170
10.1 Model 1概述 / 170
10.2 Model 2概述 / 170
10.3 基于Servlet Controller的Model 2 / 172
10.4 基于Filter Dispatcher的Model 2 / 181
10.5 验证器 / 184
10.6 数据库访问 / 189
10.7 依赖注入 / 199
10.8 小结 / 208
第11章 文件上传 / 209
11.1 客户端编程 / 209
11.2 服务器端编程 / 210
11.3 上传Servlet范例 / 212
11.4 多文件上传 / 214
11.5 上传客户端 / 217
11.6 小结 / 223
第12章 文件下载 / 224
12.1 文件下载概述 / 224
12.2 范例1:隐藏资源 / 225
12.3 范例2:防止跨站引用 / 230
12.4 小结 / 232
第13章 请求和响应的装饰 / 233
13.1 Decorator模式 / 233
13.2 Servlet Wrapper类 / 234
13.3 范例:AutoCorrect过滤器 / 235
13.4 小结 / 242
第14章 异步处理 / 243
14.1 概述 / 243
14.2 编写异步的Servlet和Filter / 243
14.3 编写异步的Servlet / 244
14.4 异步监听器 / 249
14.5 小结 / 251
第15章 安全性 / 252
15.1 验证和授权 / 252
15.2 验证方法 / 256
15.3 SSL / 263
15.4 通过编程确保安全性 / 268
15.5 小结 / 271
第16章 部署 / 272
16.1 部署描述符概述 / 272
16.2 部署 / 284
16.3 Web Fragment / 285
16.4 小结 / 287
第17章 动态注册和Servlet容器初始化 / 288
17.1 动态注册 / 288
17.2 Servlet容器初始化 / 291
17.3 小结 / 293
第18章 Struts 2简介 / 294
18.1 Struts 2的优势 / 294
18.2 Struts 2工作原理 / 295
18.3 拦截器 / 297
18.4 Struts 2的配置文件 / 299
18.5 简单的Struts应用程序 / 307
18.6 小结 / 311
附录A Tomcat / 312
附录B Web注解 / 316
附录C SSL证书 / 320

编辑推荐

《Servlet和JSP学习指南》为全球知名Java技术专家撰写,公认系统学习Servlet和JSP必读经典。

作者简介

本书是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《How Tomcat Works》作者)亲自执笔,不仅全面解读Servlet 和JSP 的最新技术,重点阐述Java Web开发的重要编程概念和设计模型,而且包含大量可操作性极强的案例。
本书共18章:第1章介绍Servlet API和几个简单的Servlet;第2章讨论Session追踪,以及保持状态的4种技术;第3章和第4章系统讲解JSP的语法以及JSP中的重要特性之一:Expression Language;第5~7章分别阐述JSTL中最重要的类库、标签的具体编写方法和标签文件;第8~10章讨论Servlet中的事件驱动编程、过滤器,以及Model 2架构;第11章展示如何利用Servlet 3的文件上传特性,以及如何在客户端改善用户的体验;第12章解释如何通过编程方式将资源发送到浏览器;第13章介绍如何利用Decorator模式以及类来改变Servlet请求和响应的行为;第14章讨论Servlet 3中的一项新特性,用来处理异步的操作;第15章阐述如何通过声明和编程方式来保护Java的Web应用程序;第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。


 Servlet和JSP学习指南下载



发布书评

 
 


精彩短评 (总计14条)

  •     比较适合入门,讲的比较基础。可做对JSP和Servlet的入门书籍,但是还需要读其他很多文章和博客来加深理解。
  •     希望是一本好书,有空看看!
  •     Servlet 和 JSP 介绍的很全面 必读经典之作啊 推荐!
  •     泛泛而谈,内容过于简单,不喜欢,很后悔。
  •     很不错的一本入门书,介绍了servlet3.0的新特性
  •     包装的很好,主要是给学生买的,教师推荐书,不错!
  •     基础而全面,读的很畅快
  •     Servlet
  •     根据最新的Servlet和JSP的标准写的
  •     刚开始的时候,没有发现书的印刷质量问题,后来把书放到书架上才看到立面上有一块“伤疤”,ugly。内容的话,还在学习ing,前言说适合java web初学者!挺适合我的,learning ing。
  •     在jsp/servlet上面写的很细的一本书。
  •     挺不错的一本书, 很实用. 大部分的章节讲解的非常流畅(当然也不能忘记翻译者做了很多贡献),尤其是安全性一章让我首次了解了Web安全知识,唯一美中不足的是部署一章有点让人昏昏欲睡.
  •     不知道是翻译的原因还是什么,看的时候里面各种这个,那个,另一个。新手本来知道的不多,直接被说的一脸懵逼,感觉这本书的思路表达的一点也不清晰。。。。
  •     讲解挺详细的,特别是 servlet 3 的新特性方面。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024