目录
1、把controller数据返回到网页并回显
可以使用request,也可以使用session ,
@RequestMapping("list")
public String list(HttpServletRequest request){
//查询到一个学生信息。
Student student =new Student(1,"张三",new Date(),"北京");
//可以保存到request中,同一个请求
request.setAttribute("user", student);
return "list.jsp";
}
@RequestMapping("list01")
// 保存到session范围
public String list01(HttpSession session){
Student student =new Student(2,"张三",new Date(),"北京");
session.setAttribute("user1", student);
return "list.jsp";
}
@RequestMapping("list02")
public String list02(Model model){
// 查询一个学生的信息
Student student =new Student(2,"张三",new Date(),"北京");
// 保存到model中,同一个请求,和request一样
model.addAttribute("user", student);
return "redirect:list.jsp";//转发
}
2、重定向跳转
在方法的返回字符串的内容时加上redirect:
3、springmvc返回json数据
过程:
(1)内置一个jar. jackson的jar包
<!--jackson依赖 可以把java对象转换为json对象-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2.2</version>
</dependency>
(2) 在controller返回的数据类型变成javabean对象
@RequestMapping("json01")
@ResponseBody//作用:把java对象转换为json对象
public List<Student> json01(){
List<Student> list = new ArrayList<Student>();
list.add(new Student(3,"赵晓普1",new Date(),"北京"));
list.add(new Student(4,"赵晓普2",new Date(),"上海"));
list.add(new Student(5,"赵晓普3",new Date(),"汤臣一品"));
list.add(new Student(6,"赵晓普4",new Date(),"故宫"));
return list;
}
当返回的时间类型的json数据显示的为毫秒时,需要添加注解:
4、springmvc的全局异常处理类
全局异常处理类的作用: 当controller发生异常,则有全局异常类来处理并执行相应的处理方法。
使用全局异常处理类的过程
(1) 创建一个异常类: @ControllerAdvice注解
(2)保证springmvc能够扫描到该类
如果是ajax请求返回的应该是一个json数据。 则一定要添加
@ResponseBody
5、springmvc拦截器
拦截器的使用流程:
(1)创建一个类,并实现HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
//拦截器的处理方法。
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("经过了该拦截器");
return true;//true:表示拦截器放行 false:不放行
}
}
(2) 把该类注册到springmvc配置文件上。
<!--拦截器的配置-->
<mvc:interceptors>
<mvc:interceptor>
<!--mapping:哪些路径需要经过拦截器
/**: 表示n层路径
/*:表示一层路径
-->
<mvc:mapping path="/**"/>
<!--exclude-mapping:设置不经过该拦截的路径-->
<mvc:exclude-mapping path="/list2"/>
<mvc:exclude-mapping path="/list3"/>
<!--bean表示你自定义的拦截器类路径-->
<bean class="com.ykq.interceptor.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>