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

Spring MVC REST 例子

 
阅读更多
  1. package  com.benx;  
  2.   
  3. import  java.io.IOException;  
  4. import  java.util.ArrayList;  
  5. import  java.util.HashMap;  
  6. import  java.util.List;  
  7. import  java.util.Map;  
  8.   
  9. import  javax.servlet.http.HttpServletResponse;  
  10.   
  11. import  org.springframework.stereotype.Controller;  
  12. import  org.springframework.ui.Model;  
  13. import  org.springframework.web.bind.annotation.ModelAttribute;  
  14. import  org.springframework.web.bind.annotation.PathVariable;  
  15. import  org.springframework.web.bind.annotation.RequestMapping;  
  16. import  org.springframework.web.bind.annotation.RequestMethod;  
  17.   
  18. @Controller   
  19. @RequestMapping ( "/person" )  
  20. public   class  PersonController {  
  21.   
  22.     PersonService service = new  PersonService();  
  23.   
  24.     /**  
  25.      * 进入登陆页面 http://localhost:8080/person/login 模拟  
  26.      *   
  27.      * @return  
  28.      * @throws IOException  
  29.      */   
  30.     @RequestMapping (value =  "/login" , method = RequestMethod.GET)  
  31.     public  String initLogin(HttpServletResponse response)  throws  IOException {  
  32.   
  33.         response.setContentType("text/html;charset=utf-8" );  
  34.         response.getWriter().println("进入登陆页面" );  
  35.         response.flushBuffer();  
  36.         return   null ;  
  37.   
  38.     }  
  39.   
  40.     /**  
  41.      * 登陆 模拟http://localhost:8080/Web/person/login?method=login&name=person1&pass=1  
  42.      * 使用@ModelAttribute 把paramter转换为pojo对象 ,也可以使用@RequestParam 获取单个paramter  
  43.      * @param mode  
  44.      * @return  
  45.      * @throws IOException  
  46.      */   
  47.     @RequestMapping (value =  "/login" , params =  "method=login" , method = RequestMethod.GET)  
  48.     public  String login( @ModelAttribute ( "person" ) Person person, Model mode, HttpServletResponse response)  throws  IOException {  
  49.         response.setContentType("text/html;charset=utf-8" );  
  50.   
  51.         Person per = service.getPerson(person.getName());  
  52.   
  53.         if  (per !=  null  && per.getName().equals(person.getName()) && per.getPass().equals(person.getPass())) {  
  54.             response.getWriter().println(per.getName() + "  你好!" );  
  55.         } else  {  
  56.             response.getWriter().println("登陆失败" );  
  57.         }  
  58.         response.flushBuffer();  
  59.   
  60.         return   null ;  
  61.     }  
  62.   
  63.     /**  
  64.      * 获取Person详细信息 http://localhost:8080/Web/person/person1 模拟  
  65.      *   
  66.      * @param name  
  67.      * @param mode  
  68.      * @return  
  69.      * @throws IOException  
  70.      */   
  71.     @RequestMapping (value =  "/{name}" , method = RequestMethod.GET)  
  72.     public  String getPerson( @PathVariable  String name, Model mode, HttpServletResponse response)  throws  IOException {  
  73.   
  74.         response.setContentType("text/html;charset=utf-8" );  
  75.   
  76.         Person per = service.getPerson(name);  
  77.   
  78.         if  (per !=  null ) {  
  79.             response.getWriter().println("用户:"  + per.getName());  
  80.             response.getWriter().println("用户密码:"  + per.getPass());  
  81.         } else  {  
  82.             response.getWriter().println("没找到用户" );  
  83.         }  
  84.   
  85.         return   null ;  
  86.     }  
  87.   
  88.     /**  
  89.      * 进入新增Person页面 http://localhost:8080/Web/person/addPerson  
  90.      *   
  91.      * @param mode  
  92.      * @return  
  93.      * @throws IOException  
  94.      */   
  95.     @RequestMapping (value =  "/addPerson" , method = RequestMethod.GET)  
  96.     public  String initAddPerson(HttpServletResponse response)  throws  IOException {  
  97.   
  98.         response.setContentType("text/html;charset=utf-8" );  
  99.   
  100.         response.getWriter().println("进入新增页面" );  
  101.   
  102.         return   null ;  
  103.   
  104.     }  
  105.   
  106.     /**  
  107.      * 新增Person http://localhost:8080/Web/person/addPerson?method=add&name=person11&pass=1  
  108.      *   
  109.      * @param mode  
  110.      * @return  
  111.      * @throws IOException   
  112.      */   
  113.     @RequestMapping (value =  "/addPerson" , params =  "method=add" , method = RequestMethod.GET)  
  114.     public  String addPerson( @ModelAttribute ( "person" ) Person person, HttpServletResponse response)  throws  IOException {  
  115.         response.setContentType("text/html;charset=utf-8" );  
  116.           
  117.         service.addPerson(person);  
  118.   
  119.         response.getWriter().println("新增成功" );  
  120.         response.getWriter().println("用户:"  + person.getName());  
  121.         response.getWriter().println("用户密码:"  + person.getPass());  
  122.         response.flushBuffer();  
  123.           
  124.         return   null ;  
  125.     }  
  126.   
  127.     /**  
  128.      * 删除Perseon  
  129.      * http://localhost:8080/Web/person/person1/delete  
  130.      * @param mode  
  131.      * @return  
  132.      * @throws IOException   
  133.      */   
  134.     @RequestMapping (value =  "/{name}/delete" , method = RequestMethod.GET)  
  135.     public  String deletePerson( @PathVariable ( "name" ) String name,Model mode, HttpServletResponse response)  throws  IOException {  
  136.         response.setContentType("text/html;charset=utf-8" );  
  137.           
  138.         service.deletePerson(name);  
  139.           
  140.         response.getWriter().println("删除成功"  + name);  
  141.         response.flushBuffer();  
  142.         return   null ;  
  143.           
  144.     }  
  145.     /**   
  146.      * mapTest     
  147.      * http://localhost:8080/Web/person/maptest  
  148.      * @param mode   
  149.      * @return   
  150.      * @throws IOException    
  151.      */     
  152.     @RequestMapping (value =  "/maptest" , method = RequestMethod.GET)    
  153.     @ResponseBody   
  154.     public  Map<String, Object> mapTest(HttpServletResponse response)  throws  IOException {    
  155.         System.out.println("HHHHHHHHHH" );  
  156.        /* response.setContentType("text/html;charset=utf-8");  */   
  157.             
  158.         Person per = new  Person();  
  159.         per.setName("xiogjin" );  
  160.         per.setPass("123456" );  
  161.           
  162.         List list = new  ArrayList();  
  163.         list.add("1" );  
  164.         list.add("2" );  
  165.         list.add("3" );  
  166.           
  167.         Map<String, Object> map = new  HashMap<String, Object>();  
  168.         map.put("str" "xiongjin" );  
  169.         map.put("object" , per);  
  170.         map.put("object" , per);  
  171.         map.put("list" , list);  
  172.         return  map;    
  173.         
  174.           
  175.         /**  
  176.          * 下面的例子将打印{"str":"xiongjin","list":["1","2","3"],"object":{"name":"xiogjin","pass":"123456"}}  
  177.          * 通过如下方式可以读取  
  178.          * var ob = {"str":"xiongjin","list":["1","2","3"],"object":{"name":"xiogjin","pass":"123456"}};  
  179.           alert(ob.str);  
  180.           alert(ob.list)  
  181.           alert(ob.list[0])  
  182.           alert(ob.list[1])  
  183.           alert(ob.list[2])  
  184.           alert(ob.object.name)  
  185.           alert(ob.object.pass)  
  186.          */   
  187.     }    
  188. }  
  189.   
  190. class  Person {  
  191.     private  String name;  
  192.     private  String pass;  
  193.   
  194.       
  195.     public  Person() {  
  196.         super ();  
  197.     }  
  198.   
  199.       
  200.     public  Person(String name, String pass) {  
  201.         super ();  
  202.         this .name = name;  
  203.         this .pass = pass;  
  204.     }  
  205.   
  206.     public  String getName() {  
  207.         return  name;  
  208.     }  
  209.   
  210.     public   void  setName(String name) {  
  211.         this .name = name;  
  212.     }  
  213.   
  214.     public  String getPass() {  
  215.         return  pass;  
  216.     }  
  217.   
  218.     public   void  setPass(String pass) {  
  219.         this .pass = pass;  
  220.     }  
  221.   
  222.     @Override   
  223.     public  String toString() {  
  224.         return   "Person [name="  + name +  ", pass="  + pass +  "]" ;  
  225.     }  
  226.       
  227.       
  228. }  
  229.   
  230. class  PersonService {  
  231.     static  Map<String, Person> persons =  new  HashMap<String, Person>();  
  232.   
  233.     public  PersonService() {  
  234.         for  ( int  i =  0 ; i <  10 ; i++) {  
  235.             persons.put("person"  + i,  new  Person( "person"  + i,  ""  + i));  
  236.         }  
  237.     }  
  238.   
  239.     public  Person getPerson(String name) {  
  240.         return  persons.get(name);  
  241.     }  
  242.   
  243.     public  List<Person> getPersons(String name) {  
  244.         return   new  ArrayList<Person>(persons.values());  
  245.     }  
  246.   
  247.     public   void  addPerson(Person per) {  
  248.         persons.put(per.getName(), per);  
  249.     }  
  250.   
  251.     public   void  deletePerson(String name) {  
  252.         persons.remove(name);  
  253.     }  
  254.   
  255. }  

 

 

 

web.xml

 

 

Java代码  收藏代码
  1. <?xml version= "1.0"  encoding= "UTF-8" ?>  
  2. <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" >  
  3.   <display-name>SpringMVC</display-name>  
  4.   <servlet>  
  5.         <servlet-name>spring</servlet-name>  
  6.         <servlet-class >org.springframework.web.servlet.DispatcherServlet</servlet- class >  
  7.         <load-on-startup>1 </load-on-startup>  
  8.     </servlet>  
  9.     <servlet-mapping>  
  10.         <servlet-name>spring</servlet-name>  
  11.         <url-pattern>/</url-pattern>  
  12.     </servlet-mapping>  
  13. </web-app>  

 

spring-servlent.xml

 

Java代码  收藏代码
  1. <?xml version= "1.0"  encoding= "UTF-8" ?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"   
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:p= "http://www.springframework.org/schema/p"   
  4.     xmlns:context="http://www.springframework.org/schema/context"   
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   
  6.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">   
  7.   
  8.   
  9.     <bean id="viewResolver"   
  10.         class = "org.springframework.web.servlet.view.InternalResourceViewResolver"   
  11.         p:prefix="/WEB-INF/jsp/"  p:suffix= ".jsp"  />  
  12.   
  13.   
  14.     <context:component-scan base-package = "com.benx"  />  
  15.   
  16.     <bean class = "org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"  />  
  17.          //支持json   
  18.     <bean class = "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >  
  19.         <property name="messageConverters" >  
  20.             <list>  
  21.                 <bean class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" ></bean>  
  22.             </list>  
  23.         </property>  
  24.     </bean>  
  25. </beans> 
分享到:
评论

相关推荐

    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