静态资源访问
(1)为什么要单独处理静态资源?
DispatcherServlet 拦截资源设置成了 /
避免了死循环,但是 / 不拦截jsp资源
,但是它会拦截其他静态资源,例如 html , js , css,image
等等, 那么我们在使用 jsp 内部添加静态资源就无法成功,所以,我们需要单独处理下静态资源
(2)实现方式
步骤1:
在 springmvc.xml 的配置文件中添加mvc命名空间
下的标签!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd ">
步骤2: 添加处理标签
方式一:
<mvc:annotation-driven /> <!--注解驱动-->
<mvc:resources mapping="/img/**" location="/images/" ></mvc:resources>
方式二:
<mvc:default-servlet-handler></mvc:default-servlet-handler>
这样 html , js , css,image 等静态资源就可以进行加载了
Json 处理
(1)添加 jar 包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
注意:
maven 引入 jackson-databind 会连带引入core
和annotations
非 maven 项目需要引入这三个包
(2)在 spring.xml 中添加注解驱动:
<mvc:annotation-driven/>
(3)使用 @ResponseBody
//添加@RequestBody注解:自动解析 对象 为json格式
@RequestMapping("/getUser")
public @ResponseBody User getUser(){
User user = new User();
user.setUsername("李四");
user.setPassword("123");
return user;
}
//解析集合对象为json格式
@RequestMapping("/getUser1")
public @ResponseBody List<User> getList(){
ArrayList<User> list = new ArrayList<>();
for(int i =0;i < 5;i++){
User user = new User();
user.setUsername("李四"+i);
user.setPassword("123"+i);
list.add(user);
}
return list;
}