SSM4.1【Spring:SpringMVC的数据响应】

 页面跳转

 

 

 

复制代码
 1 web.xml
 2 
 3 
 4 <!--配置SpringMVC的核心组件:DispatcherServlet前端控制器-->
 5     <servlet>
 6         <servlet-name>DispatcherServlet</servlet-name>
 7         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 8         <init-param>
 9             <param-name>contextConfigLocation</param-name>
10             <param-value>classpath:spring-mvc.xml</param-value>
11         </init-param>
12         <load-on-startup>1</load-on-startup>
13     </servlet>
14     <servlet-mapping>
15         <servlet-name>DispatcherServlet</servlet-name>
16         <url-pattern>/</url-pattern> <!--配置为缺省目的是所有请求都要过前端控制器-->
17     </servlet-mapping>
复制代码
复制代码
 1 spring-mvc.xml
 2 
 3 
 4 <!--配置Controller的组件扫描方式1-->
 5     <!--<context:component-scan base-package="com.haifei.controller" />-->
 6 
 7     <!--配置Controller的组件扫描方式2-->
 8     <context:component-scan base-package="com.haifei">
 9         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
10     </context:component-scan>
11 
12 
13     <!--配置内部资源的视图解析器-->
14     <bean id="myViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
15         <property name="prefix" value="/jsp/"></property> <!--默认内部资源的根路径为webapp文件夹-->
16         <property name="suffix" value=".jsp"></property>
17     </bean>
复制代码
复制代码
 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: yubaby
 4   Date: 2021/7/16
 5   Time: 13:33
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <title>jsp/success.jsp</title>
12 </head>
13 <body>
14     <h1>jsp/success.jsp</h1>
15     <h1>${username}</h1>
16 </body>
17 </html>
复制代码
复制代码
 1 package com.haifei.controller;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.ui.Model;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.servlet.ModelAndView;
 7 
 8 import javax.servlet.http.HttpServletRequest;
 9 
10 @Controller
11 @RequestMapping("/user")
12 public class UserController {
13 
14     @RequestMapping("/save")
15     public String save(){
16         System.out.println("UserController save...");
17         return "success";
18     }
19 
20 
21     @RequestMapping("/save2")
22     public ModelAndView save2(){
23         /*
24         Model:模型,封装数据
25         View:视图,展示数据
26          */
27         ModelAndView modelAndView = new ModelAndView();
28 
29         //设置模型数据
30         modelAndView.addObject("username", "zhangsan");
31         //设置视图
32         modelAndView.setViewName("success");
33 
34         return modelAndView;
35     }
36 
37 
38     @RequestMapping("/save3")
39     public ModelAndView save3(ModelAndView modelAndView){
40         //设置模型数据
41         modelAndView.addObject("username", "lisi");
42         //设置视图
43         modelAndView.setViewName("success");
44 
45         return modelAndView;
46     }
47 
48 
49     @RequestMapping("/save4")
50     public String save4(Model model){
51         model.addAttribute("username", "wangwu");
52         return "success";
53     }
54 
55 
56     @RequestMapping("/save5")
57     public String save5(HttpServletRequest request){
58         request.setAttribute("username", "zhaoliu"); //往request域中存数据
59         return "success";
60     }
61     
62 }
复制代码

 

 

 

 

 

 回写数据

 

 

 

 

 

 

 

复制代码
 1 /**
 2      * 回写数据之直接返回字符串1
 3      * @param response
 4      * @throws IOException
 5      */
 6     @RequestMapping("/save6")
 7     public void save6(HttpServletResponse response) throws IOException {
 8         response.getWriter().write("save6 hello");
 9     }
10 
11 
12     /**
13      * 回写数据之直接返回字符串2
14      * @return
15      */
16     @RequestMapping("/save7")
17     @ResponseBody //通过@ResponseBody注解告知SpringMVC框架,方法返回的字符串不是跳转而是直接在http响应体中返回
18     public String save7() {
19         return "save7 hello";
20     }
21 
22 
23     /**
24      * 回写数据之直接返回字符串3
25      *  应用:在ajax异步项目中,客户端与服务器端往往要进行json格式字符串交互
26      * @return
27      */
28     @RequestMapping("/save8")
29     @ResponseBody
30     public String save8() {
31         return "{\"username\":\"zhangsan\",\"age\":18}"; //手动拼接json字符串返回
32     }
33 
34 
35     @RequestMapping("/save9")
36     @ResponseBody
37     public String save9() throws JsonProcessingException {
38         User user = new User();
39         user.setUsername("zhangsan");
40         user.setAge(18);
41 
42         //使用json的转换工具jackson将java对象转换成json格式字符串再返回(先去pom配置jackson依赖坐标)
43         ObjectMapper mapper = new ObjectMapper();
44         String json = mapper.writeValueAsString(user);
45 
46         return json;
47     }
复制代码
复制代码
 1 pom.xml
 2 
 3 +
 4 
 5 <!--jcakson工具坐标3个-->
 6         <dependency>
 7             <groupId>com.fasterxml.jackson.core</groupId>
 8             <artifactId>jackson-core</artifactId>
 9             <version>2.9.0</version>
10         </dependency>
11         <dependency>
12             <groupId>com.fasterxml.jackson.core</groupId>
13             <artifactId>jackson-databind</artifactId>
14             <version>2.9.0</version>
15         </dependency>
16         <dependency>
17             <groupId>com.fasterxml.jackson.core</groupId>
18             <artifactId>jackson-annotations</artifactId>
19             <version>2.9.0</version>
20         </dependency>
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

复制代码
 1 spring-mvc.xm
 2 
 3 +
 4 
 5 <!--配置处理器映射器-->  <!--期望SpringMVC自动将User对象转换成json格式的字符串-->
 6     <!--跟上面自定义配置视图解析器一样,也可以在源码中找到对应-->
 7     <!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
 8         <property name="messageConverters">
 9             <list>
10                 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
11             </list>
12         </property>
13     </bean>-->
14 
15     <!--配置mvc的注解驱动-->  <!--简化配置处理器映射器,达到相同效果-->
16     <mvc:annotation-driven />
复制代码
复制代码
 1 /*@RequestMapping("/save10")
 2     @ResponseBody
 3     //期望SpringMVC自动将User对象转换成json格式的字符串
 4     public User save10() {
 5         User user = new User();
 6         user.setUsername("zhangsan");
 7         user.setAge(18);
 8         return user;
 9         //需要是在spring-mvc.xml配置处理器映射器
10         //注意,注解ResponseBody要有,因为springMVC是将user对象转为json字符串后再进行返回
11         // (虽然该方法代码写的是返回User对象类型)实际返回的是string类型
12     }*/
13 
14     @RequestMapping("/save10")
15     @ResponseBody
16     //期望SpringMVC自动将User对象转换成json格式的字符串
17     public User save10() {
18         User user = new User();
19         user.setUsername("zhangsan");
20         user.setAge(18);
21         return user;
22         //上述实现方法需要复杂的配置,可以在spring-mvc.xml配置mvc的注解驱动来简化代替上述配置(需要配置mvc命名空间及其约束)
23     }
复制代码

 

posted @   yub4by  阅读(60)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示