第二周
本周的学习重心是 Java Web 的分层开发技术与数据库交互实现,同时正式对接开学第一课的大赛测试要求,启动公文自动分配系统的需求分析与数据库设计,整体学习进度符合周初制定的计划。
技术学习层面,我首先完成了 JSP 动态页面技术的系统学习,掌握了 JSP 脚本片段、表达式、声明的使用方法,深入理解了九大内置对象的作用域与常用方法,能够使用 JSP 结合 Java 代码实现页面动态数据渲染。在此基础上,我学习了 JavaBean 的封装规范与使用原则,按照 MVC 思想初步搭建了项目的分层架构,完成了用户实体类、公文实体类的属性封装与 get/set 方法编写,对 DAO 层、Service 层、Web 层的职责划分有了清晰的认知。
数据库与交互方面,我完成了 SQL Server 数据库的安装与环境配置,学习了 JDBC 编程的核心步骤,掌握了驱动加载、获取数据库连接、执行 SQL 语句、处理结果集的完整流程。我独立编写了用户信息的增删改查 DAO 层实现,同时学习了 PreparedStatement 预编译对象的使用,替代了原始的 Statement 拼接 SQL 的方式,规避了 SQL 注入风险。针对大赛模拟题的需求,我完成了公文自动分配系统的数据库设计,梳理出用户表、角色表、公文表三张核心数据表,设计了各表的字段、数据类型与主键外键约束,完成了数据库表的创建与测试数据插入。
本周总学习时长约 45 小时,平均每天学习 6.5 小时。其中代码编写与调试时间约 25 小时,主要用于分层架构代码编写、JDBC 功能开发与数据库表设计;问题排查与解决时间约 10 小时,剩余 10 小时用于需求分析、架构设计学习与官方文档查阅。
下周我计划完成公文自动分配系统的核心业务功能开发,实现用户登录校验、公文提交、列表分页展示、状态流转的基础逻辑,重点攻克公文自动分配的业务算法。同时我将正式开启大数据技术的学习,从 Linux 系统基础操作与 Shell 脚本编程入手,为后续 Hadoop 集群搭建做好前置准备。
本周遇到的技术问题较多,也让我对 Web 开发的细节有了更深的理解。第一个问题是 JDBC 驱动加载始终失败,报错提示找不到驱动类,经过反复核对 jar 包导入路径、驱动类全限定名,最终发现是下载的 SQL Server 驱动版本与数据库版本不兼容,更换对应版本的驱动 jar 包并重新配置 Build Path 后问题解决。第二个问题是前后端传递中文数据时出现乱码,表单提交的中文到后台变成问号,页面回显的数据也同样乱码,我通过在获取参数前设置 request 的字符编码为 UTF-8、设置 response 的输出编码,同时在 Tomcat 的 server.xml 中配置 URIEncoding="UTF-8",三层设置后彻底解决了中文乱码问题。第三个问题是原始的 Statement 存在 SQL 注入风险,我通过测试验证了特殊用户名可以绕过登录校验的问题,随后将所有数据库操作替换为 PreparedStatement 预编译方式,既提升了执行效率又保障了数据安全。目前我对 MVC 分层架构的运用还不够熟练,后续会通过完整项目的开发不断强化设计思想。
浙公网安备 33010602011771号