一.返回写数据
1.1 直接返回字符串 使用response对象
通过springmvc框架注入response对象,使用response.getWriter().print("hello world")回写数据,此时不需要视图跳转,业务方法返回值为void
1.controller
/**
* @author liujianfu
* @description 直接返回字符串 :通过springmvc框架注入response对象,使用response.getWriter().print("hello world")
回写数据,此时不需要视图跳转,业务方法返回值为void
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product6")
public void productDemo6(HttpServletResponse response) throws IOException {
System.out.println("进入controoler6层.....");
response.getWriter().print("hello world");
}
2.视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3.页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1></h1>欢迎访问product.jsp页面!, 获取controller参过来的参数为:${pname} </h1>
</body>
</html>
4.启动服务页面访问
1.2 直接返回字符串 使用@responseBody注解
@responseBody 注解:告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
1.controller代码
/**
* @author liujianfu
* @description 直接返回字符串 :通过springmvc框架注入response对象,使用response.getWriter().print("hello world")
回写数据,此时不需要视图跳转,业务方法返回值为void
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product7")
@ResponseBody //告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
public String productDemo7(HttpServletResponse response) throws IOException {
System.out.println("进入controoler7层.....");
return "hello world 7";
}
2.视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3.页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1></h1>欢迎访问product.jsp页面!, 获取controller参过来的参数为:${pname} </h1>
</body>
</html>
4.重启服务访问
1.3 直接返回 自定义的json串
1.controller
/**
* @author liujianfu
* @description 直接返回字符串 :通过springmvc框架注入response对象,使用response.getWriter().print("hello world")
回写数据,此时不需要视图跳转,业务方法返回值为void
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product8")
@ResponseBody //告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
public String productDemo8(HttpServletResponse response) throws IOException {
System.out.println("进入controoler8层.....");
return "{\"usernname\":\"ljf\",\"age\":\"34\"}";
}
2.视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3.页面访问
1.4 使用jackson的json转换工具返回json串(!!!!!!!!!!!!!!!这个比较常用)
1.在pom文件种配置jackson的依赖
<!-- jackson 生成json的工具 的3个包-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.10</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.10</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.10</version>
</dependency>
2.controller代码
/**
* @author liujianfu
* @description 直接返回字符串 :通过springmvc框架注入response对象,使用response.getWriter().print("hello world")
回写数据,此时不需要视图跳转,业务方法返回值为void
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product9")
@ResponseBody //告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
public String productDemo9(HttpServletResponse response) throws IOException {
System.out.println("进入controoler9层.....");
User u=new User();
u.setAge(34);
u.setUserName("ljf");
ObjectMapper objectMapper=new ObjectMapper();
return objectMapper.writeValueAsString(u);//javabean转成json串
}
3.视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
4.页面访问
1.5 配置springmvc 框架自动转成json
1.controoler代码
/**
* @author liujianfu
* @description 方法10:配置springmvc 让框架自动转成json串
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product10")
@ResponseBody //告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
public User productDemo10(HttpServletResponse response) throws IOException {
System.out.println("进入controoler10层.....");
User u=new User();
u.setAge(34);
u.setUserName("ljf");
return u;
}
2.视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3.spirng mvc 解析成json串
<!-- 配置 controller返回对象 ,集合 自动转成json串-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>
4.页面访问
1.6 配置springmvc 框架自动转成json
在spring mvc的各个组件种,处理器映射器、处理器适配器、视图解析器成为spring mvc的三大组件
<mvc:annotation-driven> Spring MVC用来提供Controller请求转发,json自动转换等功能
默认底层会集成jackson进行对象或集合的json格式字符串的转换,且使用它时候,自动加载ReuestMappingHandlerMapping(处理映射器)
和RequestMappingHandlerAdapter(处理适配器),在spirng-xml的配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置
和上面的bean标签 <bean
1.controller:
/**
* @author liujianfu
* @description 方法10:配置springmvc 让框架自动转成json串
* @date 2021/1/10 14:44
* @param
* @return org.springframework.web.servlet.ModelAndView
*/
@RequestMapping("/product10")
@ResponseBody //告诉springmvc 不进行页面跳转,直接进行数据返回响应,方法返回的字符串不是跳转而是直接在http响应体种返回。
public User productDemo10(HttpServletResponse response) throws IOException {
System.out.println("进入controoler10层.....");
User u=new User();
u.setAge(344);
u.setUserName("ljf");
return u;
}
2. spring mvc注解驱动的配置
springmvc 中 注解驱动:<mvc:annotation-driven>的作用和使用
46/100
u011066470
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置spring创建容器时要扫描的包 -->
<context:component-scan base-package="com.ljf.spring.mvc.demo">
<!-- 只扫描controller层
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-->
<!-- 排除不扫描controller层
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-->
</context:component-scan>
<!-- 配置视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置 controller返回对象 ,集合 自动转成json串 的处理映射器,和 <mvc:annotation-driven></mvc:annotation-driven> 注解驱动 实现相同功能
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>
-->
<!--
在spring mvc的各个组件种,处理器映射器、处理器适配器、视图解析器成为spring mvc的三大组件
<mvc:annotation-driven> Spring MVC用来提供Controller请求转发,json自动转换等功能
默认底层会集成jackson进行对象或集合的json格式字符串的转换,且使用它时候,自动加载ReuestMappingHandlerMapping(处理映射器)
和RequestMappingHandlerAdapter(处理适配器),在spirng-xml的配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置
和上面的bean标签 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
具有相同功能
-->
<!-- spring mvc 的注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>
3.页面访问