14天学会:基于J2EE的JAVA WEB基础

这篇具有很好参考价值的文章主要介绍了14天学会:基于J2EE的JAVA WEB基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章

手把手教你:基于Django的新闻文本分类可视化系统(文本分类由bert实现)

手把手教你:基于python的文本分类(sklearn-决策树和随机森林实现)

手把手教你:岩石样本智能识别系统


一、学习文档简介

本文通过一个14天的学习文档教会大家学会基于J2EE的JAVA WEB基础

本次上传的资源比较大,因此分成了4份进行上传包含了14天所有的学习课程和代码资料,因为CSDN上传的资源绑定博客只能绑定一个资源,完整的资料链接我已经放到博客末尾了。

14天的学习资料包括以下内容:

  • day01_基础加强
  • day02_MySQL基础
  • day03_MySQL约束
  • day04_MySQL多表&事务
  • day05_JDBC
  • day06_JDBC连接池&JDBCTemplate
  • day07_HTML
  • day08_HTML&CSS
  • day09_JavaScript基础
  • day10_JavaScript高级
  • day11_BootStrap
  • day12_xml
  • day13_Tomcat&Servlet
  • day14_Servlet&HTTP&Request

14天学会:基于J2EE的JAVA WEB基础,学习资料,java,java-ee,前端,mysql,web

博主也参考过网上诸多JAVA的相关学习文章,但大多是理论大于实践。很多同学在操作中肯定需要简单易懂甚至直接包含大量实践代码的学习资料。

也正是因为我发现网上大多的帖子只是针对原理进行介绍,代码实现的相对很少。

如果您有以上想法,那就找对地方了!


不多废话,直接进入正题!

二、部分课程简介

第一天JAVA基础强化

每天的学习文档包含:学习笔记、代码、相关资料:

14天学会:基于J2EE的JAVA WEB基础,学习资料,java,java-ee,前端,mysql,web

  • 这里的课程笔记都是博主自己学习后记录的,画的图稍微有些丑,大家讲究着看

JAVA代码的三个阶段

14天学会:基于J2EE的JAVA WEB基础,学习资料,java,java-ee,前端,mysql,web

测试分类

14天学会:基于J2EE的JAVA WEB基础,学习资料,java,java-ee,前端,mysql,web

学习笔记

# 今日内容
	1. Junit单元测试
	2. 反射
	3. 注解


## Junit单元测试:
	* 测试分类:
		1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
		2. 白盒测试:需要写代码的。关注程序具体的执行流程。

	* Junit使用:白盒测试
		* 步骤:
			1. 定义一个测试类(测试用例)
				* 建议:
					* 测试类名:被测试的类名Test		CalculatorTest
					* 包名:xxx.xxx.xx.test		cn.itcast.test

			2. 定义测试方法:可以独立运行
				* 建议:
					* 方法名:test测试的方法名		testAdd()  
					* 返回值:void
					* 参数列表:空参

			3. 给方法加@Test
			4. 导入junit依赖环境

		* 判定结果:
			* 红色:失败
			* 绿色:成功
			* 一般我们会使用断言操作来处理结果
				* Assert.assertEquals(期望的结果,运算的结果);

		* 补充:
			* @Before:
				* 修饰的方法会在测试方法之前被自动执行
			* @After:
				* 修饰的方法会在测试方法执行之后自动被执行


## 反射:框架设计的灵魂
	* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码
	* 反射:将类的各个组成部分封装为其他对象,这就是反射机制
		* 好处:
			1. 可以在程序运行过程中,操作这些对象。
			2. 可以解耦,提高程序的可扩展性。


	* 获取Class对象的方式:
		1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象
			* 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
		2. 类名.class:通过类名的属性class获取
			* 多用于参数的传递
		3. 对象.getClass():getClass()方法在Object类中定义着。
			* 多用于对象的获取字节码的方式

		* 结论:
			同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。


	* Class对象功能:
		* 获取功能:
			1. 获取成员变量们
				* Field[] getFields() :获取所有public修饰的成员变量
				* Field getField(String name)   获取指定名称的 public修饰的成员变量

				* Field[] getDeclaredFields()  获取所有的成员变量,不考虑修饰符
				* Field getDeclaredField(String name)  
			2. 获取构造方法们
				* Constructor<?>[] getConstructors()  
				* Constructor<T> getConstructor(类<?>... parameterTypes)  

				* Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)  
				* Constructor<?>[] getDeclaredConstructors()  
			3. 获取成员方法们:
				* Method[] getMethods()  
				* Method getMethod(String name, 类<?>... parameterTypes)  

				* Method[] getDeclaredMethods()  
				* Method getDeclaredMethod(String name, 类<?>... parameterTypes)  

			4. 获取全类名	
				* String getName()  


	* Field:成员变量
		* 操作:
			1. 设置值
				* void set(Object obj, Object value)  
			2. 获取值
				* get(Object obj) 

			3. 忽略访问权限修饰符的安全检查
				* setAccessible(true):暴力反射



	* Constructor:构造方法
		* 创建对象:
			* T newInstance(Object... initargs)  

			* 如果使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance方法


	* Method:方法对象
		* 执行方法:
			* Object invoke(Object obj, Object... args)  

		* 获取方法名称:
			* String getName:获取方法名


	* 案例:
		* 需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法
			* 实现:
				1. 配置文件
				2. 反射
			* 步骤:
				1. 将需要创建的对象的全类名和需要执行的方法定义在配置文件中
				2. 在程序中加载读取配置文件
				3. 使用反射技术来加载类文件进内存
				4. 创建对象
				5. 执行方法


## 注解:
	* 概念:说明程序的。给计算机看的
	* 注释:用文字描述程序的。给程序员看的

	* 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
	* 概念描述:
		* JDK1.5之后的新特性
		* 说明程序的
		* 使用注解:@注解名称
		
	
	* 作用分类:
		①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
		②代码分析:通过代码里标识的注解对代码进行分析【使用反射】
		③编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】


	* JDK中预定义的一些注解
		* @Override	:检测被该注解标注的方法是否是继承自父类(接口)的
		* @Deprecated:该注解标注的内容,表示已过时
		* @SuppressWarnings:压制警告
			* 一般传递参数all  @SuppressWarnings("all")

	* 自定义注解
		* 格式:
			元注解
			public @interface 注解名称{
				属性列表;
			}

		* 本质:注解本质上就是一个接口,该接口默认继承Annotation接口
			* public interface MyAnno extends java.lang.annotation.Annotation {}

		* 属性:接口中的抽象方法
			* 要求:
				1. 属性的返回值类型有下列取值
					* 基本数据类型
					* String
					* 枚举
					* 注解
					* 以上类型的数组

				2. 定义了属性,在使用时需要给属性赋值
					1. 如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
					2. 如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
					3. 数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
		
		* 元注解:用于描述注解的注解
			* @Target:描述注解能够作用的位置
				* ElementType取值:
					* TYPE:可以作用于类上
					* METHOD:可以作用于方法上
					* FIELD:可以作用于成员变量上
			* @Retention:描述注解被保留的阶段
				* @Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到
			* @Documented:描述注解是否被抽取到api文档中
			* @Inherited:描述注解是否被子类继承


	* 在程序使用(解析)注解:获取注解中定义的属性值
		1. 获取注解定义的位置的对象  (Class,Method,Field)
		2. 获取指定的注解
			* getAnnotation(Class)
			//其实就是在内存中生成了一个该注解接口的子类实现对象

		            public class ProImpl implements Pro{
		                public String className(){
		                    return "cn.itcast.annotation.Demo1";
		                }
		                public String methodName(){
		                    return "show";
		                }
		            }
		3. 调用注解中的抽象方法获取配置的属性值
	

	* 案例:简单的测试框架
	* 小结:
		1. 以后大多数时候,我们会使用注解,而不是自定义注解
		2. 注解给谁用?
			1. 编译器
			2. 给解析程序用
		3. 注解不是程序的一部分,可以理解为注解就是一个标签

部分代码

14天学会:基于J2EE的JAVA WEB基础,学习资料,java,java-ee,前端,mysql,web

  • AnnoDemo1.java
package cn.itcast.annotation;

/**
 * 注解javadoc演示
 *
 * @author itcat
 * @version 1.0
 * @since 1.5
 */
public class AnnoDemo1 {

    /**
     * 计算两数的和
     * @param a 整数
     * @param b 整数
     * @return 两数的和
     */
    public int add(int a, int b ){
        return a + b;
    }
}


  • AnnoDemo2.java
package cn.itcast.annotation;

import java.util.Date;

/**
 * JDK中预定义的一些注解
 * 		* @Override	:检测被该注解标注的方法是否是继承自父类(接口)的
 * 		* @Deprecated:该注解标注的内容,表示已过时
 * 		* @SuppressWarnings:压制警告
 *
 *
 */

@SuppressWarnings("all")
public class AnnoDemo2 {

    @Override
    public String toString() {
        return super.toString();
    }

    @Deprecated
    public void show1(){
        //有缺陷
    }

    public void show2(){
        //替代show1方法
    }

    public void demo(){
        show1();
        Date date = new Date();
    }
}

因为后续涉及的课程和代码较多,我这就不一一列举了,下载链接我放到了下面

三、完整课程代码地址

由于项目代码量和数据集较大,感兴趣的同学可以下载完整代码,使用过程中如遇到任何问题可以在评论区评论或者私信我,我都会一一解答。

完整代码下载:

  • JAVA WEB学习课件及代码详解第一部分

  • JAVA WEB学习课件及代码详解第二部分

  • JAVA WEB学习课件及代码详解第三部分

  • JAVA WEB学习课件及代码详解第四部分文章来源地址https://www.toymoban.com/news/detail-551516.html

到了这里,关于14天学会:基于J2EE的JAVA WEB基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • J2EE&XML建模

    目录 用一个xml-config文件实例: 先看config.xml文件 再看 ActionModel ConfigModel ActionNotFoundException ForwardNotFoundException ConfigModelFactory ActionDuplicateDefinitionException ForwardDuplicateDefinitionException InvalidPathException 用一个xml-config文件实例:  ActionModel ConfigModel ForwardModel      ActionNotFoundExcepti

    2024年02月16日
    浏览(39)
  • J2EE&集合框架&Set

    目录 一.Set特点 特点:无序,不重复 思考:如果对List容器中的元素去重? 二.遍历:foreach,迭代器 三.扩容: 初始容量16,负载因子0.75,扩容增量1倍 性能参数:初始容量,负载因子 默认值: 初始容量16,负载因子0.75 示例:new HashSet(20, 0.5f); 四.HashSet 五.思考 1. 如何给Arra

    2024年02月13日
    浏览(39)
  • J2EE&集合框架&List

    目录 一.UML ①集合类图 ②线下教育平台用例图  二.List集合特点 ①学集合框架就是了解容器的数据结构(增删改查) ②有序的 可重复的 三.遍历方式 ① foreach ② iterator 迭代器 ③ for 四.LinkedList ①对比ArrayList是数据结构 Linkedlist: 链表 特点:查询修改慢,增加删除快 Arrayli

    2024年02月13日
    浏览(36)
  • J2EE&集合框架&Map

    目录 一.Map特点 1.无序,键值对,键不能重复,值可以重复 2.键重复则覆盖,没有继承Collection接口 二.遍历方式 1.拿到key,再拿值2.拿到映射关系,键值都有  取出保存所有Entry的Set,再遍历此Set即可 三.HashMap与Hashtable的区别 1.Hashtable更安全 2.JDK 1.8之前hashtable的key不能存放null

    2024年02月15日
    浏览(49)
  • J2EE&通用分页02

    目录 一.重构-提取公用方法            1.为了进行公共方法的抽取,需要找出上面实习中的可通用部分,和差异化部分     2.公用方法封装思路       3. 具体实现 二.分页标签 2.1 准备一个Servlet  3.2 结果展示页面 三. 过滤器解决中文乱码问题 四.加入分页功能 四.封装分

    2024年02月15日
    浏览(45)
  • J2EE&集合框架&set集合

    目录 一.Set特点 特点:无序,不重复 思考:如果对List容器中的元素去重? 二.遍历:foreach,迭代器 三.扩容: 初始容量16,负载因子0.75,扩容增量1倍 性能参数:初始容量,负载因子 默认值: 初始容量16,负载因子0.75 示例:new HashSet(20, 0.5f); 四.HashSet 五.思考 1. 如何给Arra

    2024年02月13日
    浏览(39)
  • J2EE项目部署与发布(Windows版本)

    目录 一、会议OA单体项目Windows部署 1.1 数据测试 1.2 项目部署 1.3 报错解决 1.4 最终效果 二、spa前后端分离项目Windows部署 2.1 后端代码测试 2.2 前端代码测试 2.3 项目部署 2.3.1 数据导入 2.3.2 后端部署 2.3.3 前端部署 2.3.3.1 Node.js环境配置 2.3.4 端口问题解决 2.3.4.1 method1 2.3.4.2 meth

    2024年02月07日
    浏览(45)
  • J2EE项目部署与发布(Linux版本)

    目录 一.jdktomcat安装 1.jdk的安装  1.2解压对应的安装包 1.3配置环境变量  2.tomcat的安装  二.mysql的安装 三.后端接口部署  后端部署 导入war包 修改端口  开启访问 1.jdk的安装 登录VMware Workstation Pro 然后连接MobaXterm      将 jdk tomcat mysql 导入到MobaXterm   1.2解压对应的安装包  

    2024年02月06日
    浏览(34)
  • J2EE自定义mvc【框架配置及功能】

    目录 一、配置步骤 二、配置框架前三步 导入相应的jar 导入相应的Class 导入xml文件 三、优化基本操作(增删改) 1、基础优化 编写实体类 编写BookDao类 优化BookDao JUnit测试 2、后台优化 3、前端优化 将框架打成jar包,然后导入新工程,并且把框架的依赖jar包导入进去 将分页标

    2024年02月12日
    浏览(53)
  • 虚拟机部署与发布J2EE项目(Linux版本)

                                                      🎬 艳艳耶✌️:个人主页                                                   🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》                                                     ⛺️ 越努力 ,越幸

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包