(springMVC)day45javaEE基础查漏补缺

springMVC

1.前端控制器(dispathcerServlet)是一个servlet类,要放到tomcat容器中,只能在xml中配置。

dispathcerServlet,要会写。

2.@ResponseBody注解,将返回结果转换为json格式再返回;如果返回结果不能转为json,就原样返回

3.@requestMapping,给当前方法绑定一个请求路径。路径要唯一,根据路径进入方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nw9fr3aV-1642957743612)(问题.assets/1642900692045.png)]

4.@requestMapping(value={},method={}),value为当前方法绑定多个路径。method:限定请求方式,默认不对请求类型做限制。

5.405错误:请求方式(get,post)不正确,400:请求内容有误

6.类上requestMapper(“/user/※”)路径写/user/※ 这样可以么

不可以。

7.控前端控制器拦截路径是/,如何释放静态资源?

在xml中配置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHYy8D2V-1642957743614)(问题.assets/1642943709479.png)]

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-urlencodedjson(常用), xml
请求类型所有除了GET(只支持post)
注解个数可多个只能有一个
数据类型获取集合参数时,需要使用@RequestParam注解修饰数据时:对象和集合

22.@requestBody(接受post中请求体中的参数),只能修饰对象或集合.

23.过滤器和拦截器的区别:

①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。

②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

⑦拦截器是被包裹在过滤器之中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a7JJlinw-1642957743615)(问题.assets/1642957296112.png)]
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值