一、本周学习内容
(一)JavaBean 的应用与封装
JavaBean 的设计与实现
学习了 JavaBean 的概念和规范,设计了一个 User 类作为 JavaBean,用于封装用户信息。该类包含私有属性(id、username、password、email 等),并通过 getter 和 setter 方法提供对这些属性的访问。
在 User 类中,重写了 toString() 方法,方便在调试和日志中输出用户信息。
JavaBean 在 Servlet 中的应用
在 LoginServlet 和 RegisterServlet 中使用 User 类封装用户信息。在用户登录时,从数据库中获取用户数据并封装到 User 对象中;在用户注册时,将用户提交的表单数据封装到 User 对象中,并将其存储到数据库中。
通过 JavaBean 的使用,简化了代码逻辑,提高了代码的可读性和可维护性。
(二)用户注册与用户列表功能实现
用户注册功能
在 register.jsp 页面中,添加了用户注册表单,包含用户名、密码、确认密码、邮箱等字段,并通过 JavaScript 进行前端验证,确保用户输入的数据符合要求。
编写了 RegisterServlet,在该 Servlet 中接收用户提交的注册信息,将其封装到 User 对象中,并通过 JDBC 将用户数据存储到数据库中。注册成功后,跳转到登录页面;注册失败时,返回错误信息。
用户列表展示与分页功能
在 userList.jsp 页面中,使用 JSTL 的 <c:forEach> 标签动态展示用户列表。通过 User 对象的属性访问用户信息,并在页面中显示。
实现了用户列表的分页功能,每页显示 5 条记录。通过计算总记录数和总页数,动态生成分页导航条,用户可以通过点击分页链接切换到不同的页面。
(三)项目测试与优化
功能测试
对用户登录、注册和用户列表展示功能进行了全面的功能测试,确保所有功能都能正常工作。测试了各种边界情况,如用户名或密码为空、用户名已存在、密码不匹配等。
修复了在测试过程中发现的一些问题,如注册时邮箱格式验证不严格、分页导航条在某些情况下显示不正确等。
性能优化
对数据库查询语句进行了优化,确保查询效率。在用户列表查询中,使用了分页查询语句,减少了数据的加载量。
对项目进行了性能测试,发现页面加载时间较长的问题。通过优化静态资源的加载(如 CSS 和 JavaScript 文件)和减少不必要的 HTTP 请求,显著提高了页面的加载速度。
二、下周计划
Hadoop 技术框架学习
开始学习 Hadoop 技术框架,安装 Hadoop 3.3.4 并配置单机模式运行环境。
学习 HDFS(Hadoop Distributed File System)的基本概念和操作,包括文件的上传、下载、读写等操作。
深入了解 MapReduce 编程模型,编写一个简单的 WordCount 程序,运行在 Hadoop 集群上。
Python 基础学习
开始学习 Python 基础语法,包括变量、数据类型、控制流、函数等。
完成一个简单的 Python 脚本,实现基本的字符串处理和文件读写操作。
项目维护与优化
继续对 Java Web 项目进行维护和优化,修复在测试过程中发现的遗留问题。
对项目进行代码重构,进一步提高代码的可读性和可维护性。
三、本周遇到的问题及解决方法
用户注册时用户名重复问题
问题描述:在用户注册时,没有对用户名进行唯一性校验,导致用户可以注册重复的用户名。
解决方法:在 RegisterServlet 中,添加了一个查询数据库的步骤,检查用户名是否已存在。如果已存在,则返回错误信息提示用户用户名已被占用。
分页功能中总页数计算错误问题
问题描述:在分页功能中,计算总页数的逻辑有误,导致在某些情况下分页导航条显示不正确。
解决方法:重新检查分页逻辑,确保总页数的计算公式正确。通过 (总记录数 + 每页显示条数 - 1) / 每页显示条数 的公式计算总页数,解决了问题。
数据库查询效率问题
问题描述:在用户列表查询中,随着用户数据量的增加,查询效率逐渐下降。
解决方法:对数据库表添加了索引,优化了查询语句,减少了不必要的全表扫描。同时,使用分页查询语句,减少了每次查询的数据量,显著提高了查询效率。
四、总结与反思
本周的学习重点在于实现用户注册功能和用户列表的分页展示功能,并通过 JavaBean 的应用进一步优化了项目代码结构。通过实际操作,我掌握了 JavaBean 的设计与实现,以及如何在 Servlet 中使用 JavaBean 封装数据。同时,通过功能测试和性能优化,确保了项目的稳定性和高效性。
在下周的学习中,我将开始学习 Hadoop 技术框架,探索大数据处理的基本概念和操作。同时,我也会开始学习 Python 基础语法,为后续的 Python 开发打下基础。通过持续的学习和实践,逐步提升自己的技术能力,为未来的项目开发做好准备。