编辑: 施信荣 | 2016-03-09 |
3 个Spring 相关章节取代, 这是为了从实际的框架中学习, 而不是空谈概念;
然而,Spring 那些章节并不是作为全面探讨 Spring 之用,而是作为一个 衔接,希望从实际的应用程序重构中筛选出对应用程序有益的框架特性,以便逐步掌握框 架的本质. 当然,照例要谈一些 Java EE
8 的功能,相关讨论会放在各章节中适当的地方.由于 《JSP & Servlet 学习笔记(第2版)》是基于 Java EE 6,为了便于查找 Java EE 7/8 的功能介绍, 如果发现页左侧有如 图示, 就表示提及 Java EE
7 或Java EE
8 功能, 本书还提供了 Java EE 7/8 功能快速查询目录. 各章节的范例都做了全面改写,由于 Java EE
8 是基于 Java SE 8,范例程序代码会适 当使用 Java SE
8 的特性,例如 Lambda 与Stream API 等. 时至今日,撰写应用程序时必须有相关的安全防护概念,作为一本谈论 Web 应用程序的 书,适时地提及安全概念是必要的,书中谈到了 OWASP TOP 10,讨论了 Session 防护、注入 攻击、Cookie 安全、密码加盐哈希、跨域伪造请求(Cross-Site Request Forgery,CSRF)等安全 基本观念,并在适当的地方介绍了 OWASP Java Encoder、Java HTML Sanitizer 等项目的使用. 程序范例 本书大多数范例使用完整的程序实作来展现,如果是用以下方式示范程序代码: IV FirstServlet Hello.java package cc.openhome;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello") public class Hello extends HttpServlet { @Override protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;
charset=UTF-8");
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.print("");
out.print("");
out.print("");
out.print("Hello");
out.print("");
out.print("");
out.printf(" Hello! %s!%n", name);
out.print("");
out.print("");
} } 范例开始的左边名称为 FirstServlet,表示可以在范例文件的 samples 文件夹中查找相 应章节目录,即可找到对应的 FirstServlet 项目,而右边名称为 Hello.java,表示可以在项 目中找到 Hello.java 文件.如果程序代码中出现标号与提示文字,表示后续的内文中会有 对应于标号及提示的更详细说明. 原则上, 建议每个项目范例都亲自动手撰写, 如果由于教学时间或实现时间上的限制, 本书有建议进行的练习.在范例开始前有 图示的,表示建议动手实践,而且在范例文件 的labs 文件夹中有练习项目的基础内容,可以在导入项目后,完成项目中遗漏或必须补齐 的程序代码或设置. 如果文中使用以下程序代码, 则表示它是一个完整的程序内容, 但不是项目的一部分, 主要用来展现如何撰写一个完整的文件. JSP 范例文件 Y重新定义doGet() Z设置响应内容类型\取 得响应输出对象]跟 用户说Hello! [取得请求参数 X继承 HttpServlet V 导读