导入servlet依赖时scope依赖范围设置成provided,这样只会在编译和测试有效,因为tomcat自带了servlet的包这样运行时就不会有冲突。servlet依赖tomcat运行。
配置urlpattern时精确匹配优先度高于目录匹配
关键:respond
-
请求转发的特点
-
浏览器地址栏路径不发生变化
虽然后台从
/req5
转发到/req6
,但是浏览器的地址一直是/req5
,未发生变化 -
只能转发到当前服务器的内部资源
不能从一个服务器通过转发访问另一台服务器
-
一次请求,可以在转发资源间使用request共享数据
虽然后台从
/req5
转发到/req6
,但是这个==只有一次请求== -
2.重定向的特点
-
浏览器地址栏路径发送变化
当进行重定向访问的时候,由于是由浏览器发送的两次请求,所以地址会发生变化
-
可以重定向到任何位置的资源(服务内容、外部均可)
因为第一次响应结果中包含了浏览器下次要跳转的路径,所以这个路径是可以任意位置资源。
-
两次请求,不能在多个资源使用request共享数据
因为浏览器发送了两次请求,是两个不同的request对象,就无法通过request对象进行共享数据
在servlet中如果不输入访问的资源则默认访问index.html
mybatis当字段名和pojo中的属性名不一致时可以用resultmap进行映射:
column是数据库字段名
property是属性名
resultMap 元素的属性值和子节点
id 属性:唯一标识,此 id 值用于 select 元素 resultMap 属性的引用。
type 属性:表示该 resultMap 的映射结果类型。
result 子节点:用于标识一些简单属性,其中 column 属性表示从数据库中查询的字段名或别名, property 属性则表示查询出来的字段对应的值赋给实体对象的哪个属性。
JavaScript没有类,是通过构造函数来创建对象:方法如下:
如果在对象里一个方法调用另一个方法或者属性,必须要加上this,这点跟java不一样
Java的this是谁(哪个类)调用this所在的方法,this就代表谁(那个类)
Vue中v-bind是单向绑定,而且能给任何属性赋值,但改变属性的内容,data里面的数据是不会变的,只是属性绑定data,data不受v-bind的影响
而v-model是双向绑定,且只能收集value的值,比如text,radio,checkbox,selected。
而改变了v-model的值,data里的值也会跟着改变。这便是两者的区别
fastjson把java对象转为json时会调用对象里的get方法并且把get后面的值当作key,get出来的返回值当作value
为什么service要定义接口和实现类:
原来Service层只写了实现类,这样的话,如果Service层类发生变化,Servlet也要随之修改(Servlet调用Service层)。
现在Service层定义一个接口,Servlet类通过接口指向实现类,这样如果BrandService实现类发生变化,只需修改后面的部分,如图:
idea:ctrl + f12查看方法 ctrl + h查看所有子父类
Spring的笔记:
1.设置依赖注入时property的name属性是通过set加name获取的
2.spring管理的bean默认是单例的,可通过scope修改\
3.doman/pojo,实体类
4.spring创建bean时调用的是无参的构造方法,通过反射来调用。
5.spring的报错一般从最后一行往上看
6,通过factorybean实例化bean,实现FactoryBean接口并重写方法,接口的泛型写要造的类,
getObject返回对象, getObjectType写返回对象的字节码,
要造单例的对象需要重写多一个方法。
7,Spring加载外部的properties文件需要在配置文件里打开命名空间,如下: