JavaWeb笔记

JavaWeb

HTML + CSS

CSS选择器

  • 元素选择器:标签,例如h1

  • id选择器:给标签指定id属性,用#选择,注:id不会重复

  • 类选择器:用class注明类,用.选择

优先级:id选择器 > 类选择器

盒子模型:由内向外,content,内边距padding,边框border,外边距margin

div 标签:一行只显示一个,宽度默认是父元素的宽度

span 标签:一行可以显示多个

表单form标签:主要负责数据采集功能,例如登录,填写信息等

JavaScript

运算符:==会进行类型转换,===不会进行类型转换。

类型转换:parseInt,将字符串转换为数字,从第一个字符开始转换,一直到非数字字符。转换不了的话返回NaN

对象:

  1. 基础对象:

    1. Array:定义:new Array() 或 直接[]。数组长度可变,例如一个有三个元素的数组可以给第十个元素赋值,中间的元素为undefined。数组可以存放不同类型的数据。
      for循环遍历数组中所有元素,forEach遍历有值的元素

      1
      2
      3
      4
      5
      6
      7
      var arr = [1, 2, 3, 4];
      arr.forEach(function (e) {
      console.log(e);
      });
      arr.forEach((e) => {
      console.log(e);
      });
    2. 自定义对象

      1
      2
      3
      4
      var 对象名 = {
      属性名: 属性值;
      函数名() {};
      };
  1. BOM 浏览器对象模型

  2. DOM 文档对象模型

Vue

基于MVVM模型(Model - View - ViewModel)实现数据的双向绑定,将编程的关注点放在数据上

Ajax

异步的javascript和xml

通过ajax可以给服务器发送请求,并获取服务器响应的数据

异步交互:不重新加载整个页面的情况下,与服务器交换数据并更新部分网页。

axios是对ajax的封装

Maven

用于管理和构建java项目。mac中用brew安装maven,安装目录在/usr/local/Cellar/maven下,里面有配置文件,其中指定了依赖仓库的位置在/.m2目录下,还可以指定镜像仓库。

Maven坐标由groupId(项目隶属组织,域名反写),artifactId(项目名称或模块名称)和version组成。通过坐标可以唯一定位资源。

依赖可以传递,如果不想要传递的依赖,就在dependency里面加入exclusions标签来排除依赖。

可以用scope标签指定依赖的作用范围,四种取值:compile,test,provided,runtime。

Spring Boot

快速构建程序。

  • 接收参数:

    • 简单参数:
      直接在形参定义,形参名字要和参数一样,localhost:8080/hello?a=tom&b=1
      如果想让形参名字和请求参数不一样,要加入RequestParam注解

      1
      2
      3
      4
      5
      @RequestMapping("/hello")
      public String hello(@RequestParam(name="name") String a, Integer b) {
      System.out.println(a + b);
      return "ok";
      }
    • 实体参数:

      简单实体,定义POJO,参数名和对象内的字段名一样

      如果对象有嵌套的话,用符号“点”

    • 数组参数:直接定义一个数组作为形参

    • 集合参数:定义同名集合,在前面加上RequestParam注解

    • 日期参数:用DateTimeFormat注解来指定日期格式

    • JSON参数:定义POJO接收参数,需要加上RequestBody注解

    • 路径参数:

      1
      2
      3
      4
      5
      @RequestMapping("/hi/{name}")
      public String who(@PathVariable String name) {
      System.out.println(name);
      return "ok";
      }

响应:
使用ResponseBody注解,将方法返回值直接响应,如果是对象或者集合,将其转换为JSON后响应。
RestController = Controller + ResponseBody

三层架构:
Controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
Service:业务逻辑层,处理具体业务逻辑
dao:数据访问层(持久层),负责数据访问操作

控制反转IOC:容器来控制对象的创建控制权
依赖注入DI:容器为程序提供运行时所依赖的资源
bean对象:IOC容器中创建、管理的对象。

Service层和Dao层的实现类交给IOC容器管理:类上面加上Component注解
为Controller层和Service层注入运行时所依赖的对象:变量上面加上AutoWired注解

要把某个对象交给IOC容器管理,在类上加注解:

注解 说明
@Component 声明bean的基础注解,不属于以下三类时用此注解
@Controller 标注控制器类Controller
@Service 标注业务类Service
@Respository 标注数据访问类,由于与mybatis整合,用得少

AutoWired自动装配,默认按照类型,如果有多个相同类型的bean,会报错。解决方法有:加上Primary注解,指定优先级;加上Qualifier注解,手动指定注入哪个bean;加上Resource注解,手动指定bean。