02-request

一.HttpServletRequest 中 getParameter 和 getAttribute 方法

1.getParameter()方法  
  该方法是用于客户端传递过来的参数,它的返回值类型永远是字符串类型,这个赋值动作是服务端容器完成的
  特别的,当我们新建一个Servlet 继承自 HttpServlet 后,HttpServletRequest中并没有setParameter方法   
2.getAttribute()方法
  该方法是在请求传到服务器端后,在去使用其进行存取一些附加数据。它的返回类型永远是Object.  
  注:
  所以如果需要在服务器端进行跳转,并需要想下个页面发送新的参数时,由于没有setParameter方法,   
  只可以通过setAttribute(),将值放入到request对象,然后在其他页面使用getAttribute获取对应的值, 
  这样就达到一次请求可以在多个页面共享一些对象信息,并且setAttribute可以设置引用类型对象   

总结:获取客户端参数时用req.getParameter;服务端设置值时用req.setAttribute方法。   

二.RequestContextHolder

在Spring MVC中,为了随时都能取到当前的request对象,其内部也是通过ThreadLocal实现,将request和当前线程绑定完成;  
可以通过RequestContextHolder的静态方法getRequestAttributes() 获取Request相关的变量,如 request, response等。  
例: 
RequestContextHolder.getRequestAttributes().getRequest();
RequestContextHolder.getRequestAttributes().getResponse();   

二.Filter(过滤器) 和 HandlerInterceptor(spring中的拦截器) 的区别

三.ResponseBodyAdvice

四.SpringMVC 中的 CommonsMultipartResolver 可以实现文件的上传

五.Objects 类

六.JDK1.8 中新增时间日期类,Instant(时间戳类)、Duration类、Period类

Last updated