关于本书的内容有任何问题,请联系 许金霞
目 录 第1章 Java Web开发基础知识 1 1.1 B/S概述 1 1.1.1 浏览器 1 1.1.2 服务器 1 1.2 静态代码和动态代码 1 1.2.1 HTML和静态代码 2 1.2.2 服务器端脚本语言和动态代码 2 1.2.3 Servlet容器和动态代码之间的关系 3 1.2.4 Web服务器上资源文件的分类 3 1.3 HTTP概述 4 1.3.1 浏览器与Web服务器之间的交互 4 1.3.2 HTTP的本质 5 1.3.3 HTTP请求/HTTP响应的详细过程 5 1.4 Java Web开发环境的部署 6 1.4.1 JDK的版本选择和安装 6 1.4.2 Tomcat的版本选择和安装 6 1.4.3 启动和停止运行Tomcat 6 1.4.4 本机的“左右互搏之术” 8 1.4.5 Tomcat端口占用问题 9 1.4.6 有趣的实验 9 实践任务 Java Web开发基础知识 11 第2章 Servlet接收GET请求数据 19 2.1 使用Eclipse开发Java Web程序 19 2.1.1 Eclipse的安装和启动 19 2.1.2 启动Eclipse的注意事项 19 2.1.3 认识Eclipse工作空间 20 2.1.4 小露身手:使用Eclipse创建动态Web项目 21 2.1.5 Eclipse的View和Perspective 23 2.1.6 小露身手:使用Eclipse创建第一个Servlet程序 23 2.1.7 Eclipse中Servlet的URL Mappings和Servlet的urlPatterns 27 2.1.8 Servlet程序的生命周期 27 2.1.9 小露身手:使用Eclipse创建JSP程序 29 2.2 字符编码 30 2.2.1 JSP文件的字符编码与pageEncoding 30 2.2.2 MIME和字符编码 31 2.2.3 JSP文件、pageEncoding和charset的字符编码之间的关系 33 2.3 URL路径 34 2.4 过程分析:浏览器发送GET请求数据和Web服务器接收GET请求数据 35 2.4.1 过程分析:浏览器向Web服务器发送GET请求数据 35 2.4.2 GET请求数据的构成 35 2.4.3 过程分析:Web服务器接收GET请求数据 38 2.5 request请求对象获取GET请求数据 39 2.5.1 获取路径信息 40 2.5.2 获取GET请求参数信息 40 2.5.3 获取GET请求行信息 40 2.5.4 获取GET请求头信息 40 2.5.5 获取Web服务器主机和浏览器主机信息 41 2.5.6 获取URL Mappings信息的方法 41 2.6 request请求对象的请求派发功能 41 2.6.1 RequestDispatcher 41 2.6.2 请求派发的请求转发 42 2.6.3 请求转发的实现 43 2.6.4 请求转发之间Servlet程序的数据共享 43 2.6.5 request请求对象的属性和参数区别 44 实践任务 Servlet程序接收GET请求数据 44 第3章 Servlet接收POST请求数据 51 3.1 FORM表单 51 3.1.1 表单标签 51 3.1.2 表单控件 51 3.1.3 表单按钮 54 3.1.4 小露身手:利用FORM表单模拟发送GET请求数据 55 3.2 URL路径定位方法 56 3.2.1 URL绝对路径 57 3.2.2 URL相对路径 57 3.2.3 page-relative路径的技巧 59 3.2.4 小露身手:URL路径定位方法 60 3.3 过程分析:浏览器发送POST请求数据和Web服务器接收POST请求数据 62 3.3.1 准备工作 62 3.3.2 过程分析:浏览器向Web服务器发送POST请求数据 63 3.3.3 POST请求数据的构成 63 3.3.4 POST与GET请求数据对比小结 64 3.3.5 过程分析:Web服务器接收POST请求数据 65 3.4 小露身手:request请求对象接收application/x-www-form-urlencoded格式的POST请求数据 65 3.5 小露身手:向Servlet程序添加multipart/form-data支持 70 3.5.1 application/x-www-form-urlencoded与multipart/form-data的比较 72 3.5.2 理解multipart/form-data内容格式中的片段 73 3.5.3 request请求对象获取multipart/form-data请求体中的“片段” 74 实践任务 Servlet接收POST请求数据 76 第4章 Servlet生成HTTP响应数据 78 4.1 HTTP响应数据与HttpServletResponse之间的关系 78 4.2 HTTP响应行 79 4.2.1 响应状态码 79 4.2.2 使用response响应对象设置响应状态码 79 4.3 HTTP响应头列表 80 4.3.1 常见的响应头 80 4.3.2 使用response响应对象设置、添加响应头 82 4.3.3 重定向、定时刷新和请求转发的比较 83 4.4 使用response响应对象生成HTTP响应体 85 4.4.1 response响应对象的缓存 85 4.4.2 向response缓存添加文本型数据 86 4.4.3 向response缓存添加字节数据 86 4.4.4 response响应对象“一石三鸟”的代码 87 实践任务 Servlet生成HTTP响应数据 88 第5章 异步请求和异步响应 99 5.1 Web前端技术 99 5.1.1 HTML简介 99 5.1.2 HTML元素的属性 100 5.1.3 CSS简介 100 5.1.4 小露身手:理解CSS中层叠的含义 101 5.1.5 JavaScript简介 102 5.2 JavaScript入门 102 5.2.1 JavaScript基础知识 102 5.2.2 小露身手:演示HTML元素和JavaScript呈现的顺序 104 5.2.3 通过JavaScript的document对象操作HTML元素 105 5.2.4 小露身手:通过JavaScript的document对象操作HTML元素内容 106 5.3 异步请求和异步响应 107 5.3.1 异步请求和同步请求概述 108 5.3.2 XMLHttpRequest异步请求对象 109 5.3.3 小露身手:了解GET异步请求和异步响应的执行流程 112 5.3.4 小露身手:使用XMLHttpRequest发送异步的POST请求 114 5.3.5 小露身手:使用XMLHttpRequest和FormData异步上传、显示图片 115 实践任务 异步请求和异步响应 118 第6章 会话控制技术:Cookie与Session 119 6.1 会话控制技术概述 119 6.2 Cookie会话控制技术 119 6.2.1 Cookie的工作原理 119 6.2.2 Cookie的本质与核心 121 6.2.3 创建Cookie 122 6.2.4 将cookie对象添加到HTTP响应头列表中 123 6.2.5 读取Cookie 124 6.2.6 使Cookie手动失效 124 6.2.7 小露身手:Cookie的综合运用 125 6.2.8 重定向和请求转发关于Cookie使用的区别 128 6.3 Session会话控制技术 130 6.3.1 Session的工作原理 130 6.3.2 Session的本质与核心 131 6.3.3 开启Session和获取已有的session对象 132 6.3.4 Servlet开启Session的区别和JSP开启Session的区别 132 6.3.5 session对象的使用 132 6.3.6 删除Session或者使Session失效 133 6.3.7 小露身手:Session的综合使用 133 实践任务 会话控制技术:Cookie与Session 145 第7章 过滤器和监听器 146 7.1 过滤器 146 7.1.1 小露身手:创建最简单的过滤器ABCFilter 147 7.1.2 过滤器总结 149 7.1.3 小露身手:过滤器链的使用 150 7.1.4 过滤器的综合应用1:URL级别的权限访问控制 151 7.1.5 小露身手:使用过滤器实现URL级别的权限访问控制 152 7.1.6 过滤器的综合应用2:使用过滤器实现表单验证 154 7.1.7 小露身手:使用过滤器实现表单验证 154 7.2 监听器 155 7.2.1 小露身手:演示Java Web状态监听器和属性监听器 156 7.2.2 小露身手:利用HttpSessionListener统计在线人数 159 实践任务 过滤器和监听器 160 第8章 MVC和JSTL 161 8.1 MVC 161 8.1.1 MVC的历史与简介 161 8.1.2 MVC与Web开发之间的关系 162 8.1.3 MVC与Java Web的关系 162 8.1.4 理解Service和DAO之间的关系 164 8.2 JavaBean 165 8.2.1 JavaBean简介 165 8.2.2 JavaBean代码编写规范 165 8.2.3 JavaBean命名属性的特殊情况 166 8.2.4 小露身手:在Eclipse中创建数据模型JavaBean和业务逻辑Service 167 8.2.5 JavaBean的分类 169 8.3 JSP的内置对象 170 8.3.1 内置对象out 170 8.3.2 内置对象application和Servlet中的ServletContext 171 8.3.3 内置对象pageContext 172 8.4 EL 172 8.4.1 EL简介 173 8.4.2 EL的功能和优点 173 8.4.3 EL的内置对象 174 8.4.4 小露身手:EL的使用 174 8.5 JSTL 181 8.5.1 JSTL核心标签库的准备工作 181 8.5.2 JSTL核心标签库的使用 182 8.5.3 小露身手:JSTL核心标签库的使用 182 实践任务 MVC和JSTL 186 第9章 个人笔记系统的数据库设计及实现 187 9.1 数据库概述 187 9.1.1 数据库管理系统和数据库 187 9.1.2 数据库和数据库对象 187 9.1.3 数据库和数据库表 188 9.1.4 SQL 188 9.1.5 重新认识数据库表 188 9.2 个人笔记系统数据库的设计 189 9.2.1 构建个人笔记系统的必要性 189 9.2.2 个人笔记系统的功能需求分析 189 9.2.3 E-R图简介 190 9.2.4 个人笔记系统E-R图的设计 193 9.2.5 个人笔记系统的表结构设计 195 9.3 MySQL环境准备工作 196 9.3.1 MySQL的版本选择 196 9.3.2 MySQL的安装和配置 197 9.3.3 启动与停止MySQL服务 197 9.3.4 打开MySQL客户机、连接MySQL实例 198 9.4 数据库的管理 199 9.5 表结构的管理 200 9.5.1 创建表结构的准备工作 200 9.5.2 创建表结构的SQL语句语法格式 202 9.5.3 查看表和查看表结构 202 9.5.4 删除表结构 203 9.5.5 小露身手:创建个人笔记系统的数据库和数据库表 203 9.6 表记录的更新 204 9.6.1 添加表记录 205 9.6.2 修改表记录 205 9.6.3 删除表记录 205 9.6.4 检索表的所有记录 205 9.6.5 小露身手:向个人笔记系统的数据库添加测试数据 206 9.6.6 小露身手:更新表记录时,不能违反表之间的外键约束条件 207 9.7 表记录的检索 208 9.7.1 使用select子句指定字段列表 208 9.7.2 distinct和limit 208 9.7.3 表和表之间的连接 209 9.7.4 使用where子句过滤结果集 209 9.7.5 使用order by对结果集排序 211 9.7.6 使用聚合函数汇总结果集 211 9.7.7 使用group by子句对记录分组统计 211 9.7.8 小露身手:个人笔记系统的综合查询 211 实践任务 个人笔记系统的数据库 设计及实现 212 第10章 MySQL事务机制和JDBC的使用 214 10.1 MySQL事务机制 214 10.1.1 个人笔记系统中事务机制的必要性 214 10.1.2 事务机制中同一个数据库连接的必要性 215 10.1.3 事务机制中关闭数据库连接自动提交模式的必要性 215 10.1.4 个人笔记系统的事务实现 216 10.2 JDBC概述 217 10.2.1 Java程序通过JDBC访问数据库的步骤 217 10.2.2 部署数据库驱动程序 218 10.2.3 加载数据库驱动程序 218 10.2.4 创建数据库连接对象con 219 10.2.5 关闭con对象的自动提交模式 220 10.2.6 使用con对象准备预处理SQL语句 220 10.2.7 初始化预处理SQL语句的参数 220 10.2.8 执行预处理SQL语句 221 10.2.9 遍历结果集 221 10.2.10 结束事务 223 10.2.11 关闭资源 223 10.2.12 获取insert语句的自增型字段的值 223 10.2.13 异常总结和其他建议 224 10.2.14 小露身手:使用JDBC访问MySQL数据库 224 10.2.15 小露身手:设计工具类DBUtil 225 10.2.16 小露身手:个人笔记系统中事务的必要性 229 10.3 基于MVC的Java Web开发中的事务管理 230 10.3.1 多个DAO共用同一个数据库连接对象的解决方案 231 10.3.2 使用过滤器管理数据库连接对象和事务 233 10.3.3 借助ThreadLocal工具类共享参数 234 10.3.4 小露身手:借助ThreadLocal工具类共享参数 234 10.3.5 小露身手:使用过滤器和Threadlocal管理事务 236 实践任务 MySQL事务机制和JDBC的使用 240 第11章 layui和CKEditor的使用 242 11.1 layui的使用 242 11.1.1 小露身手:快速上手layui 243 11.1.2 小露身手:layui中的页面元素 247 11.1.3 layui的栅格布局 251 11.1.4 小露身手:layui中常用的容器 252 11.1.5 小露身手:layui中常用的内置JavaScript模块 256 11.1.6 layui知识补充 258 11.1.7 小露身手:layui补充知识 258 11.2 CKEditor 5的使用 263 11.2.1 经典模式编辑器的下载和安装 263 11.2.2 小露身手:CKEditor的基本使用 263 实践任务 layui和CKEditor的使用 267 第12章 项目实训:个人笔记系统首页模块的设计与实现 268 12.1 个人笔记系统首页模块的设计与分析 268 12.1.1 个人笔记系统首页模块的视图层设计 268 12.1.2 个人笔记系统首页模块的逻辑分析 269 12.1.3 个人笔记系统首页模块的数据分析 270 12.2 个人笔记系统URL级别的权限访问控制的设计 271 12.3 个人笔记系统Java类的目录设置 272 12.4 个人笔记系统类名和方法名的命名规则 272 12.5 个人笔记系统静态资源文件的目录设置 272 实践任务 个人笔记系统首页模块的设计与实现 273 第13章 项目实训:个人笔记系统用户管理模块的设计与实现 283 13.1 用户注册功能的实现 283 13.2 用户登录和注销功能的实现 284 实践任务1 用户注册功能的实现 285 实践任务2 用户登录和注销功能的实现 293 实践任务3 个人简介的维护 296 实践任务4 使用过滤器实现个人笔记系统URL级别的权限访问控制 300 第14章 项目实训:个人笔记系统笔记管理模块的设计与实现 302 实践任务1 查询所有笔记功能的开发 302 实践任务2 后台管理面板author.jsp程序的开发 304 实践任务3 添加笔记页面和保存笔记功能的开发 304 实践任务4 查看笔记全文功能的开发 312 实践任务5 编辑笔记和更新笔记功能的开发 318 实践任务6 删除笔记功能的开发 322 实践任务7 对笔记的标题和内容进行模糊查询功能的开发 323 第15章 项目实训:个人笔记系统其他功能模块的设计与实现 325 实践任务1 对笔记发表评论功能的开发 325 实践任务2 查看某个用户发表的评论功能的开发 327 实践任务3 笔记类别名称管理模块的开发 329 实践任务4 笔记标签名称管理模块的开发 332 实践任务5 向首页添加layui固定块 335 附录 337
本书较为全面地介绍了Web前端开发中常用到的HTML及CSS知识,同时对HTML5及CSS3的一些新变化进行讲...
本书基于Python语言介绍爬虫的基础知识。本书包括6个项目,分别为爬取外汇网站数据、爬取名言网站数据、爬取天...
本书全面、系统地介绍CorelDRAW 2021的基本操作方法和矢量图形的制作技巧,包括CorelDRAW 2...
        本书按照计算机网络体系结构自底...
在数字化浪潮席卷全球的今天,信息技术已成为个人发展与社会进步的核心驱动力之一。本书以“夯实基础、聚焦应用、面向...
我要评论