# pro-web **Repository Path**: ethansung96/pro-web ## Basic Information - **Project Name**: pro-web - **Description**: 重学JavaWeb。熟悉JDBC,理解servlet,实现简易的springMVC框架,深入理解IOC和AOP,能够灵活使用反射和注解。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-19 - **Last Updated**: 2022-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: javaWEB ## README # 该项目是学习JDBC和JavaWeb相关的。 ## 1.项目内容 1. 学习jdbc的api,了解java如何操作数据库的底层知识 2. 学习servlet,熟悉servlet和tomcat的知识 3. 通过一个简单的增删改查小项目进行迭代演化,实现一个简易的springMVC框架 4. 学习到IOC和AOP 5. 学习git command/idea git 的操作 ## 2. 各个模块内容 介绍各个模块下学习到的内容。 ### 一、pro-web pro-web是父工程。 1. preSQL目录存放的是项目需要的sql脚本; 2. lib目录存放了该项目所用的所有jar包,pull该项目后记得首先先将lib目录的jar包设置为lib ### 二、pro01-jdbc pro01-jdbc模块,实现基本的数据库的增删改查 ### 三、pro02-fruit1.0-jdbc pro02-fruit1.0-jdbc 通过控制台实现可操作的水果库存的增删改查。 **优化点:** 1. 将公共的连接JDBC抽出来,然后放在static代码块中实现初始化,实现代码的复用以及对象的单例模式。 2. 学习静态代码块和使用java的Visual VM对项目进行内存分析和对象分析。 关键词: - Java性能分析神器--VisualVM Launcher; - jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM; **学习巩固点:** 1. 静态代码块,java类加载相关; 2. JVM内存分析等; ### 四、pro04-fruit1.2-jdbc pro04-fruit1.2-jdbc 抽取增删改的公共部分配为BaseDAO,继续简化代码实现复用 **优化点:** 1. 将增删改的公共代码抽取出来,放在BaseDAO抽象类中; **学习巩固点:** 1. 理解抽象类和抽取公共部分复用; 2. protected private public default的继续理解; ### 五、pro05-fruit1.3-jdbc pro05-fruit1.3-jdbc 利用泛型和反射实现通用的查询方法,简化查询操作 **优化点:** 1. 利用泛型和反射实现通用的查询方法,放在BaseDAO抽象类中; **学习巩固点:** 1. 理解泛型和反射,要学习运用,api可以熟悉下,有需要时候运用; 2. 子类创建对象时候会先执行父类的无参构造,但是不会创建父类对象; 3. 理解this,创建子类对象时,执行到父类无参构造中时候,this或者隐式调用方法其实此时是子类的this; 4. 学习将某些工具类打包成jar包,供其他项目使用; ### 六、pro06-jdbc-batch-datasource pro06-jdbc-batch-datasource 学习批量处理和数据库连接池 **学习点:** 1. 学习批量处理数据,比如批量插入和批量更新数据,批量处理比单个处理效率更高 2. 学习druid连接池,理解连接池的概念和好处,相关配置和测试 3. 学习配置信息从硬编码转为配置文件 4. 学习git的一些操作,cherry-pick,切换,新建分支,合并分支 ### 七、pro07-javaweb-begin pro07-javaweb-begin 创建javaweb项目 **学习点:** 1. 学习创建javaweb项目,熟悉目录结构 2. 搭建基本的web环境,配置tomcat等 ### 九、pro09-fruit1.4-thymeleaf pro09-fruit1.4-thymeleaf 熟悉thymeleaf模板引擎及其语法 **学习点:** 1. 熟悉thymeleaf模板引擎及其语法 2. 搭建水果库存web系统,配置lib,引入thymeleaf,使用thymeleaf语法 3. 启动项目查看主页 4. [回顾下javaweb的相关知识点](http://gitee.com/ethansung96/pro-web/blob/master/pro09-fruit1.4-thymeleaf/readme.txt) **学习巩固点:** 1. 调用子类方法时,假如该方法子类没有重写,那么调用父类中该方法的逻辑,即子类和父类的该方法行为一致; 2. 每个servlet被调用时候,都会先执行init()方法进行初始化; ### 十、pro10-fruit1.5-thymeleaf pro10-fruit1.5-thymeleaf 主要实现了水果系统的查询,更新操作 **学习点:** 1. 熟悉thymeleaf模板引擎及其语法 2. 学习了前后端的字符编码不一致会导致后端接收前端数据乱码问题,后续可以学习过滤器统一处理 3. 重定向和转发的学习 4. 警惕进行数据的增删改时候异常进行回滚操作,以及事务的一致性,原子性 5. 三大域对象 ①请求域 ②会话域 ③应用域的使用场景和理解