1.接受参数
@RequestParam来获取值
对单个字段获取
@RequestBody Accomodation accomodation
直接用实体类接受
以及map和list的接受大同小异
2.关于特殊字段类型接受
比如实体类中含有data类型等不能直接接受
public class CustomDateSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date value,
JsonGenerator jsonGenerator,
SerializerProvider provider)
throws IOException, JsonProcessingException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jsonGenerator.writeString(sdf.format(value));
}
}
定义方法继承 JsonSerializer<Date> 抽象类
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateDate() {
return createDate;
}
在bean中在get方法注释
3.@RequestParam 和 @PathVariable 注解的区别
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充 ,总之区别不大
4.过滤器、监听器、拦截器异同
过滤器(Filter):对Request请求起到过滤作用,作用在Servlet之前,如果配置为/*可以为所有的资源(servlet、js/css静态资源等)进行过滤处理
监听器(Listener):实现了javax.servlet.ServletContextListener接口的服务器端组件,它随Web应用的启动而启动,只初始化一次,然后一直监视,随Web应用的停止而销毁
作用一:做初始化工作,web应用中spring容器启动ContextLoaderListener
作用二:监听web中的特定事件,比如HttpSession,ServletRequest的创建和销毁;变量的创建、销毁和修改等可以在某些动作 前后增加处理,实现监控,比如说统计在线人数,利用HttpSessionListener等
拦截器(Interceptor):是Spring MVC、Struts等表现层框架自己的,不会拦截jsp/html/css/image等的访问,只会拦截访问的控制器方法(Handler)
servlet、filter、listener是配置在web.xml中,interceptor是配置在表现层框架自己的配置文件中
在Handler业务逻辑执行之前拦截一次
在Handler逻辑执行完但是还没有跳转页面之前拦截一次
在跳转页面后拦截一次