`
benx
  • 浏览: 276901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring MVC REST 例子

    博客分类:
  • java
阅读更多

 

package com.benx;

import java.io.IOException;
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.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/person")
public class PersonController {

	PersonService service = new PersonService();

	/**
	 * 进入登陆页面 http://localhost:8080/person/login 模拟
	 * 
	 * @return
	 * @throws IOException
	 */
	@RequestMapping(value = "/login", method = RequestMethod.GET)
	public String initLogin(HttpServletResponse response) throws IOException {

		response.setContentType("text/html;charset=utf-8");
		response.getWriter().println("进入登陆页面");
		response.flushBuffer();
		return null;

	}

	/**
	 * 登陆 模拟http://localhost:8080/Web/person/login?method=login&name=person1&pass=1
	 * 使用@ModelAttribute 把paramter转换为pojo对象 ,也可以使用@RequestParam 获取单个paramter
	 * @param mode
	 * @return
	 * @throws IOException
	 */
	@RequestMapping(value = "/login", params = "method=login", method = RequestMethod.GET)
	public String login(@ModelAttribute("person") Person person, Model mode, HttpServletResponse response) throws IOException {
		response.setContentType("text/html;charset=utf-8");

		Person per = service.getPerson(person.getName());

		if (per != null && per.getName().equals(person.getName()) && per.getPass().equals(person.getPass())) {
			response.getWriter().println(per.getName() + "  你好!");
		} else {
			response.getWriter().println("登陆失败");
		}
		response.flushBuffer();

		return null;
	}

	/**
	 * 获取Person详细信息 http://localhost:8080/Web/person/person1 模拟
	 * 
	 * @param name
	 * @param mode
	 * @return
	 * @throws IOException
	 */
	@RequestMapping(value = "/{name}", method = RequestMethod.GET)
	public String getPerson(@PathVariable String name, Model mode, HttpServletResponse response) throws IOException {

		response.setContentType("text/html;charset=utf-8");

		Person per = service.getPerson(name);

		if (per != null) {
			response.getWriter().println("用户:" + per.getName());
			response.getWriter().println("用户密码:" + per.getPass());
		} else {
			response.getWriter().println("没找到用户");
		}

		return null;
	}

	/**
	 * 进入新增Person页面 http://localhost:8080/Web/person/addPerson
	 * 
	 * @param mode
	 * @return
	 * @throws IOException
	 */
	@RequestMapping(value = "/addPerson", method = RequestMethod.GET)
	public String initAddPerson(HttpServletResponse response) throws IOException {

		response.setContentType("text/html;charset=utf-8");

		response.getWriter().println("进入新增页面");

		return null;

	}

	/**
	 * 新增Person http://localhost:8080/Web/person/addPerson?method=add&name=person11&pass=1
	 * 
	 * @param mode
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping(value = "/addPerson", params = "method=add", method = RequestMethod.GET)
	public String addPerson(@ModelAttribute("person") Person person, HttpServletResponse response) throws IOException {
		response.setContentType("text/html;charset=utf-8");
		
		service.addPerson(person);

		response.getWriter().println("新增成功");
		response.getWriter().println("用户:" + person.getName());
		response.getWriter().println("用户密码:" + person.getPass());
		response.flushBuffer();
		
		return null;
	}

	/**
	 * 删除Perseon
	 * http://localhost:8080/Web/person/person1/delete
	 * @param mode
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping(value = "/{name}/delete", method = RequestMethod.GET)
	public String deletePerson(@PathVariable("name") String name,Model mode, HttpServletResponse response) throws IOException {
		response.setContentType("text/html;charset=utf-8");
		
		service.deletePerson(name);
		
		response.getWriter().println("删除成功" + name);
		response.flushBuffer();
		return null;
		
	}
	/** 
     * mapTest   
     * http://localhost:8080/Web/person/maptest
     * @param mode 
     * @return 
     * @throws IOException  
     */  
    @RequestMapping(value = "/maptest", method = RequestMethod.GET)  
    @ResponseBody
    public Map<String, Object> mapTest(HttpServletResponse response) throws IOException {  
    	System.out.println("HHHHHHHHHH");
       /* response.setContentType("text/html;charset=utf-8");  */
          
        Person per = new Person();
        per.setName("xiogjin");
        per.setPass("123456");
        
        List list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("str", "xiongjin");
        map.put("object", per);
        map.put("object", per);
        map.put("list", list);
        return map;  
      
        
        /**
         * 下面的例子将打印{"str":"xiongjin","list":["1","2","3"],"object":{"name":"xiogjin","pass":"123456"}}
         * 通过如下方式可以读取
         * var ob = {"str":"xiongjin","list":["1","2","3"],"object":{"name":"xiogjin","pass":"123456"}};
          alert(ob.str);
          alert(ob.list)
          alert(ob.list[0])
          alert(ob.list[1])
          alert(ob.list[2])
          alert(ob.object.name)
          alert(ob.object.pass)
         */
    }  
}

class Person {
	private String name;
	private String pass;

	
	public Person() {
		super();
	}

	
	public Person(String name, String pass) {
		super();
		this.name = name;
		this.pass = pass;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", pass=" + pass + "]";
	}
	
	
}

class PersonService {
	static Map<String, Person> persons = new HashMap<String, Person>();

	public PersonService() {
		for (int i = 0; i < 10; i++) {
			persons.put("person" + i, new Person("person" + i, "" + i));
		}
	}

	public Person getPerson(String name) {
		return persons.get(name);
	}

	public List<Person> getPersons(String name) {
		return new ArrayList<Person>(persons.values());
	}

	public void addPerson(Person per) {
		persons.put(per.getName(), per);
	}

	public void deletePerson(String name) {
		persons.remove(name);
	}

}

 

 

 

web.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMVC</display-name>
  <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 

spring-servlent.xml

 

<?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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	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">


	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />


	<context:component-scan base-package="com.benx" />

	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
         //支持json
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
			</list>
		</property>
	</bean>
</beans>
 

 

分享到:
评论
2 楼 cd249745647 2014-11-12  
哈哈
1 楼 向日葵上的小蜜蜂 2014-07-14  
代码都差不多贴出来了,为啥不直接提供下载呢

相关推荐

    Spring MVC REST Demo

    Spring MVC 是一个强大的Java框架,用于构建Web应用程序,而REST(Representational State Transfer)是一种软件架构风格,常用于创建Web服务。"Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架...

    spring mvc rest 小例子

    在这个小例子中,我们将探讨如何使用Spring MVC来实现REST接口。 首先,让我们理解Spring MVC的基本架构。Spring MVC通过DispatcherServlet作为前端控制器,接收HTTP请求,然后根据请求映射找到相应的Controller...

    使用Spring MVC创建REST服务简单例子

    本教程将通过一个简单的例子,讲解如何利用Spring MVC创建REST服务。 首先,我们需要在项目中引入Spring MVC的相关依赖。通常,这涉及到在Maven或Gradle的配置文件中添加Spring Web和Spring MVC的依赖。例如,如果...

    spring3.0 mvc和rest入门例子

    在压缩包文件"spring3_rest"中,可能包含了一个简单的Spring 3.0 MVC和REST的例子,你可以通过这个例子学习如何配置Spring MVC的DispatcherServlet,创建RESTful端点,处理请求和响应,以及如何使用JUnit进行测试。...

    使用Spring MVC 搭建Rest服务.doc

    在Spring MVC中,我们可以利用其内置的支持轻松地构建REST服务。 首先,要创建REST服务,你需要了解以下几个核心概念: 1. **URI(Uniform Resource Identifier)**:REST中的每个资源都有一个唯一的URI,用于标识...

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    在这个例子中,`/users`路径的GET请求会调用`getUsers`方法,该方法返回一个User对象列表,Spring MVC会自动将这个列表转换成JSON格式,并发送给客户端。 在实际项目中,我们还需要配置数据访问层(如JPA、...

    spring 3.0 mvc实现rest代码

    Spring 3.0 MVC 实现 REST 代码是一个关于构建基于 RESTful 风格的 Web 服务的示例。REST(Representational State Transfer)是一种架构风格,常用于设计网络应用程序,强调通过统一资源标识符(URI)来访问资源,...

    Spring MVC3 REST实例

    使用Spring MVC3基于注解的形式实现的REST小例子 部署运行: 1. 将工程导入eclipse 2. 添加tomcat属性 工程(右键)——&gt; tomcat project——&gt; update context 3. 启动tomcat 4. 在浏览器中输入...

    Spring3MVC-REST-HelloWorld 实例简单代码

    Spring3MVC-REST-HelloWorld 是一个基础的示例,用于展示如何在Spring框架的MVC模块中实现RESTful Web服务。这个实例是初学者理解Spring MVC与REST结合使用的理想起点。REST(Representational State Transfer)是一...

    SpringExamples:spring mvc项目的各种小例子

    通过 SpringExamples 中的例子,你可以逐步学习和掌握这些知识点,从而在实际开发中更加熟练地使用 Spring MVC。每个子项目都可能涵盖上述的一个或多个方面,通过实践和分析源代码,你可以深入理解 Spring MVC 的...

    spring-mvc-rest-post-unit-testing:Spring MVC REST JSON发布请求单元测试示例

    在本文中,我们将深入探讨如何使用Java进行Spring MVC REST JSON发布请求的单元测试。Spring MVC是Spring框架的一个组件,主要用于构建Web应用程序,而REST(Representational State Transfer)是一种设计网络应用的...

    基于Spring MVC的进销存管理系统源码.zip

    【标题】"基于Spring MVC的进销存管理系统源码.zip" 涉及的主要知识点是Spring MVC框架在构建进销存...这个压缩包中的源码可以作为一个学习和参考的例子,帮助开发者理解如何将Spring MVC框架应用于实际的业务场景。

    Spring mvc中 RequestMapping 6个基本用法小结

    在 Spring MVC 中,我们也可以使用 @PathVariable 注解来绑定 REST 风格的参数,例如: ```java @RequestMapping(value="/departments/{departmentId}") public String findDepatment(@PathVariable String ...

    spring_MVC源码

    本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上。下面开始贴代码。 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说...

    spring mvc json学习

    在IT行业中,Spring MVC是一个广泛使用的Java Web框架,它提供了构建高效、可维护的Web应用程序的强大支持。在本文中,我们将深入探讨“Spring MVC JSON学习”这一主题,重点关注如何在Spring MVC应用中处理JSON数据...

    Spring+webservice例子

    4. **Spring MVC**:如果涉及RESTful服务,Spring MVC框架将用于处理HTTP请求,将请求映射到特定的控制器方法,生成响应。 5. **数据访问层**:Spring Data JPA或MyBatis可能用于与数据库交互,处理数据的增删改查...

    springRestful小例子

    在"springRestful小例子"中,初学者可以通过这些文件了解Spring MVC如何与JSP配合展示数据,以及如何通过RESTful API进行数据交互。学习过程中,理解HTTP方法、URI设计原则、响应状态码、JSON数据格式等概念至关重要...

    Spring MVC

    ### Spring MVC 概述 Spring MVC 是 Spring Framework 的一部分,主要负责处理 Web 层的请求。它基于 Model-View-Controller (MVC) 架构模式,并提供了丰富的功能来简化 Web 开发。Spring MVC 提供了一种清晰的方式...

    Spring MVC--6.RESTful SpringMVC CRUD

    在本教程中,我们将深入探讨如何使用Spring MVC构建RESTful Web服务,并实现基本的CRUD操作。Spring MVC是Spring框架的一部分,它为构建基于Java的Web应用程序提供了强大的模型-视图-控制器(MVC)架构。RESTful ...

    spring android sample 例子

    7. **MVC模式**:虽然Android默认使用Activity和Fragment作为控制器,但Spring MVC模式可以引入,帮助组织更复杂的应用逻辑。 8. **模块化和可扩展性**:Spring框架的设计原则鼓励模块化,这在大型Android项目中...

Global site tag (gtag.js) - Google Analytics