Java Web 中文乱码解决统一记录
JavaWeb 开发遇到各种中文乱码,现统一整理出相应的解决方法。
前提要求是项目工程统一使用UTF-8
编码。
JavaWeb 开发遇到各种中文乱码,现统一整理出相应的解决方法。
前提要求是项目工程统一使用UTF-8
编码。
SpringMVC 内部使用了一个org.springframework.ui.Model
接口来存储模型数据,该接口的实现类ExtendedModelMap
继承了ModelMap
,ModelMap 继承了java.util.LinkedHashMap
。
SpringMVC 在调用方法之前会创建一个隐含的模型对象,作为模型数据的存储容器。如果处理方法的参数为Model
或ModelAndView
类型,则 SpringMVC 会将隐含模型引用传递给这些参数。
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