SpringMVC从Controller中获取json数据

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/44680151 web.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/44680151

web.xml配置文件:

       

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	
	<servlet>
	       <servlet-name>hello</servlet-name>
	        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	          <init-param>
	           <param-name>contextConfigLocation</param-name>
	           <param-value>/WEB-INF/hello-servlet.xml</param-value>
	      </init-param>
	        <!-- 设置启动优先级 -->
	        <load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
	        <servlet-name>hello</servlet-name>
	        <url-pattern>*.do</url-pattern>
	</servlet-mapping>
	<!-- filter用来设置编码 -->
	<filter>
	       <filter-name>CharacterFilter</filter-name>
	       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	        <init-param>
	             <param-name>encoding</param-name>
	             <param-value>utf-8</param-value>
	        </init-param>
	       
	</filter>
	<filter-mapping>
	        <filter-name>CharacterFilter</filter-name>
	        <url-pattern>/</url-pattern>
	</filter-mapping>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

springMVC配置文件:

 

<?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/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
    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-3.1.xsd">
    
    <context:component-scan base-package="com.spring.json.controller"></context:component-scan>
     
     <!-- 开启注解模式 -->
     <mvc:annotation-driven></mvc:annotation-driven>
     
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
             <property name="prefix" value="/WEB-INF/pages/"></property>
             <property name="suffix" value=".jsp"></property>
     </bean>
    
    
    
    </beans>

实体类User:

 

package com.spring.json.entity;

public class User {
      private String userName;
      private String password;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}
Controller控制器:

方式一:

  

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.spring.json.entity.User;


@Controller
public class UserController {
    
	@RequestMapping(value="/user.do")
	public String toUser(){
		System.out.println("ok");
		return "userList";
	}
	
	//方式一
	@RequestMapping(value="/getUserList.do")
	public String getUserList(HttpServletResponse response){
		  response.setCharacterEncoding("utf-8");
		  response.setContentType("application/json");
		 List<User> userList=getUsers();
		 Gson gson = new Gson(); 
		String json=gson.toJson(userList);
		 System.out.println("json------"+json);
		 PrintWriter out=null;
		  try {
			out=response.getWriter();
			out.write(json);
			out.flush();
		} catch (Exception e) {
			
			e.printStackTrace();
		}finally{
			if(out!=null){
				out.close();
			}
		}
		  return "userList";
	}
	
	
	private List<User> getUsers(){
		List<User> users=new ArrayList<User>();
		User u1=new User();
		u1.setUserName("张三");
		u1.setPassword("123456");
		
		
		User u2=new User();
		u2.setUserName("李四");
		u2.setPassword("ls123");
		
		User u3=new User();
		u3.setUserName("王五");
		u3.setPassword("ww888");
		users.add(u1);
		users.add(u2);
		users.add(u3);
		
		return users;
		
	}
}

方式二:需要加入jackson-all-1.6.4.jar

  

package com.spring.json.controller;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.spring.json.entity.User;


@Controller
public class UserController {
    
	@RequestMapping(value="/user.do")
	public String toUser(){
		System.out.println("ok");
		return "userList";
	}
	
	//方式二
	
	/**
	 * @responsebody表示该方法的返回结果直接写入HTTP response body中
               一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,   
			加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。
			比如异步获取json数据,加上@responsebody后,会直接返回json数据
	 */
	@RequestMapping("/getUserList.do")
	@ResponseBody
	public Map<String, Object> getUserList(){
		Map<String, Object> result=new HashMap<String, Object>();
	    List<User> userlist=getUsers();
		result.put("users",userlist);
		return result;
	}
	
	private List<User> getUsers(){
		List<User> users=new ArrayList<User>();
		User u1=new User();
		u1.setUserName("张三");
		u1.setPassword("123456");
		
		
		User u2=new User();
		u2.setUserName("李四");
		u2.setPassword("ls123");
		
		User u3=new User();
		u3.setUserName("王五");
		u3.setPassword("ww888");
		users.add(u1);
		users.add(u2);
		users.add(u3);
		
		return users;
		
	}
}

jsp页面(方式一):

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'welcome.jsp' starting page</title>
     <script type="text/javascript" src="js/jquery-1.7.2.js"></script>
      <script type="text/javascript">
          $(function(){
               $("#btn").click(function(){
		                 
		          $.ajax({
		              type:'post',
		              url:'${pageContext.request.contextPath}/getUserList.do',
		              success:function(data){
		                  //返回json数据
		                  alert("data:"+data);
		                  $.each(data,function(i,user){
		                      $("#result").append(user.userName+"----"+user.password+"<br>");
		                  })
		                  
		              },
		              error:function(e){
		              alert("error:"+e);
		              }
		          
		
		          }); 
               
               
               
               });
         
          });
         
      
         
      
      </script>
  </head>
   
  <body>
       <input type="button" id="btn" value="获取用户信息"/><br/>
      用户信息:<br/>
      <div id="result"></div>
  </body>
</html>

jsp页面(方式二
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'welcome.jsp' starting page</title>
     <script type="text/javascript" src="js/jquery-1.7.2.js"></script>
      <script type="text/javascript">
          $(function(){
               $("#btn").click(function(){
		                 
		          $.ajax({
		              type:'post',
		              url:'${pageContext.request.contextPath}/getUserList.do',
		              success:function(data){
		                  //返回json数据
		                  alert("data:"+data);
		                  $.each(data.users,function(i,user){
		                      $("#result").append(user.userName+"----"+user.password+"<br>");
		                  })
		                  
		              },
		              error:function(e){
		              alert("error:"+e);
		              }
		          
		
		          }); 
               
               
               
               });
         
          });
         
      
         
      
      </script>
  </head>
   
  <body>
       <input type="button" id="btn" value="获取用户信息"/><br/>
      用户信息:<br/>
      <div id="result"></div>
  </body>
</html>

):

  项目截图:

 


相关文章
|
10天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
24 4
|
28天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
107 2
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
2月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
180 0
在Java中处理JSON数据:Jackson与Gson库比较
|
1月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
51 1
|
2月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
2月前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
99 2