springMVC
- 1.前端控制器(dispathcerServlet)是一个servlet类,要放到tomcat容器中,只能在xml中配置。
- 2.@ResponseBody注解,将返回结果转换为json格式再返回;如果返回结果不能转为json,就原样返回
- 3.@requestMapping,给当前方法绑定一个请求路径。路径要唯一,根据路径进入方法。
- 4.@requestMapping(value={},method={}),value为当前方法绑定多个路径。method:限定请求方式,默认不对请求类型做限制。
- 5.405错误:请求方式(get,post)不正确,400:请求内容有误
- 6.类上requestMapper(“/user/※”)路径写/user/※ 这样可以么
- 7.控前端控制器拦截路径是/,如何释放静态资源?
- 8.springMVC接收参数时,会对一些简单类型参数,进行自动类型转换。(因为前端传过来的都是字符串类型,所以要转换)。
- 9.接受日期类型参数,注解简单,但是得处处使用。配置的话比较麻烦。总之还是注解方便。
- 10.上传文件的时候,input表单的name一定要和方法的参数一样。
- 11.重新部署是不会释放内存的,过个十几次就重启一些tomcat服务器。
- 12.web.xml只能配置这个三个东西 servlet Filter(过滤器) listenener(监听器) ,其他的都在resouces下面配置。
- 13.@controllerAdvice和@ExceptionHandler(XXX.class)
- 14.拦截器的应用场景:
- 15.springmvc拦截器和java的拦截器有什么关系?
- 16./**拦截所有请求。
- 17.拦截器根据配置的先后顺序,来进行拦截,谁先配置,谁先拦截。
- 18.先执行过滤器(javaweb),后执行拦截器(spring)。
- 19.vue中,data里面没有对某变量声明,也可以直接创建和使用,比如this.name = 111,没有声明的话会直接在data中创建name:111.
- 20.UUID.获取唯一字符串。
- 21.@RequestParam和@RequestBody的区别:
- 22.@requestBody(接受post中请求体中的参数),只能修饰对象或集合.
- 23.过滤器和拦截器的区别:
1.前端控制器(dispathcerServlet)是一个servlet类,要放到tomcat容器中,只能在xml中配置。
dispathcerServlet,要会写。
2.@ResponseBody注解,将返回结果转换为json格式再返回;如果返回结果不能转为json,就原样返回
3.@requestMapping,给当前方法绑定一个请求路径。路径要唯一,根据路径进入方法。
4.@requestMapping(value={},method={}),value为当前方法绑定多个路径。method:限定请求方式,默认不对请求类型做限制。
5.405错误:请求方式(get,post)不正确,400:请求内容有误
6.类上requestMapper(“/user/※”)路径写/user/※ 这样可以么
不可以。
7.控前端控制器拦截路径是/,如何释放静态资源?
在xml中配置:
8.springMVC接收参数时,会对一些简单类型参数,进行自动类型转换。(因为前端传过来的都是字符串类型,所以要转换)。
保证前端参数要和实体类的属性一致才行。
9.接受日期类型参数,注解简单,但是得处处使用。配置的话比较麻烦。总之还是注解方便。
//http://localhost:8080/user/demo8?myDate=2019-10-10
@RequestMapping("/user/demo8")
@ResponseBody
public String demo8(@DateTimeFormat(pattern = "yyyy-MM-dd") Date myDate) {
System.out.println(myDate);
return "ok";
}
<!--注解驱动 ,类型转换器挂在到注解驱动上-->
<mvc:annotation-driven conversion-service="conversionService"/>
<!--类型转化器,注册一个配置字符串传日期类(自定义类型转换)-->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!--自己配置的类-->
<bean class="com.itheima.web.controller.converter.DateConverter"/>
</set>
</property>
</bean>
10.上传文件的时候,input表单的name一定要和方法的参数一样。
springmvc配置文件的id="multipartResolver"不可以随便写。
11.重新部署是不会释放内存的,过个十几次就重启一些tomcat服务器。
12.web.xml只能配置这个三个东西 servlet Filter(过滤器) listenener(监听器) ,其他的都在resouces下面配置。
13.@controllerAdvice和@ExceptionHandler(XXX.class)
异常处理类,跟异常方法定义的先后无关,跟异常的父子大小关系有关。
14.拦截器的应用场景:
进controller前,判断用户角色
出controller后,资源关闭
离开服务器时:访问服务器的时间
15.springmvc拦截器和java的拦截器有什么关系?
底层有可能都是都是反射,springmvc拦截器跟java过滤器很像。
16./**拦截所有请求。
17.拦截器根据配置的先后顺序,来进行拦截,谁先配置,谁先拦截。
注意:自己定义的拦截器类:preHandle方法的retrun设置为 true;才会放行。
18.先执行过滤器(javaweb),后执行拦截器(spring)。
因为拦截器就是一个servlet。企业中:优先使用拦截器,过滤器只用于中文乱码问题。
19.vue中,data里面没有对某变量声明,也可以直接创建和使用,比如this.name = 111,没有声明的话会直接在data中创建name:111.
20.UUID.获取唯一字符串。
UUID.randomUUID().toString()
21.@RequestParam和@RequestBody的区别:
区别 | @RequestParam | @RequestBody |
---|---|---|
content-type | 仅支持x-www-form-urlencoded | json(常用), xml |
请求类型 | 所有 | 除了GET(只支持post) |
注解个数 | 可多个 | 只能有一个 |
数据类型 | 获取集合参数时,需要使用@RequestParam注解 | 修饰数据时:对象和集合 |
22.@requestBody(接受post中请求体中的参数),只能修饰对象或集合.
23.过滤器和拦截器的区别:
①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
⑦拦截器是被包裹在过滤器之中
。
https://blog.csdn.net/sinat_36710456/article/details/78288049?ops_request_misc=&request_id=&biz_id=102&utm_term=spring%E6%8B%A6%E6%88%AA%E5%99%A8%E5%92%8Cjava%E7%9A%84%E6%8B%A6%E6%88%AA%E5%99%A8%E6%9C%89%E4%BB%80%E4%B9%88%E5%85%B3%E7%B3%BB%EF%BC%9F&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-6-78288049.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187