Http 状态码 及 Spring Http 状态码枚举
Http 议的状态码,网上大把的多多,这里只总结经常用到的和自己理解的。官方的解释有些在实际环境较少碰到。
后续项目中有遇到其它的状态码需要处理的,再整理添加进来。
Spring 提供了 Http 状态码枚举类 HttpStatus。项目开发过程中通常也会自定义一个业务状态码。
Http 议的状态码,网上大把的多多,这里只总结经常用到的和自己理解的。官方的解释有些在实际环境较少碰到。
后续项目中有遇到其它的状态码需要处理的,再整理添加进来。
Spring 提供了 Http 状态码枚举类 HttpStatus。项目开发过程中通常也会自定义一个业务状态码。
SpringMVC 在controller
层的转发
和重定向
与Servlet的有些不一样,在实际使用时碰到各种小问题,现对对这个常用的基本功能做下总结。
简单汇总下 Servlet
的转发与重定向。
今天在写代码时,一时没记起getParameter()
与getAttribute()
两者的区别,用反了还在一直查是那里出了问题而取不到值。
现做一下记录,好有映像,需要用时便于查询。
@RequestMapping
注解用来映射 URL 到控制器类或方法上,指示Spring
用那一个类或方法来处理请求动作。
当用来注解一个控制器类时,所有方法都将映射为相对类级别的请求,再找该类下方法级别的映射,最终的 URI
是类的映射地址拼接上方法映射地址。
@Controller
和@RestController
都是在SpringMVC
中使用,作用在类上,用于申明该类是一个SpringMVC Controller
对象,即一个控制器Bean
。
SpringMVC
执行流程主要由四大组件协同完成,分别是:DispatcherServlet
,HandlerMapping
,HandlerAdapter
和 ViewResolver
。
这些组件对开发者来说是不可见的,开发者只需要在 Controller
(Handler)层完成对请求业务的处理。
面试中经常会被问到:Servlet 是单例还是多例,这是一个很基础的问题,主要考察面试者的基础是否扎实。还可以关联出一串更深层的问题来考察面试者的知识深度。
问:Servlet是单例还是多例?
答:单例
问:单例情况下在多个请求时是怎么处理的?
答:多线程,为每个请求分配一条线程
问:单例在并发情况下线程是否安全?
答:不安全
问:有没有办法解决?
答:有。。。。如果回答可以使用 ThreadLocal
来隔离每个请求的线程是最好的。接着更深的坑
问:ThreadLocal 的原理是什么?怎么实现的?
答:。。。。答不上来 OR 回答上来了。后面正等着呢
问:使用ThreadLocal与同步代码块,那个优劣?
问:多线程。。。。并发。。。。。
答:。。。。死穴。。。。OVER
了解SpringMVC
的前端控制器截获请求后如何工作?如何分派请求。
VO、DTO、DAO、PO、BO、DO
:实际开发可能各种O
的使用也没有明确的界线,有时并没有分的很表楚。
各种O
的分离更多是从设计层面
上来理解,即数据经过各个层并与之对应的关系称呼。
当然理解了各种O的用途,在理解一些严谨的代码和数据流程是非常方便的。