zl程序教程

您现在的位置是:首页 >  后端

当前栏目

spring mvc 页面的请求参数获取以及响应-------2.直接返回将要渲染的字符串数据

Spring响应数据MVC 获取 字符串 以及 参数
2023-09-27 14:22:12 时间

一.返回写数据

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.页面访问