`
tx1999
  • 浏览: 1700 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一个简单Resful结构Web

 
阅读更多

1 工程创建

1.1 单根DispatcherServlet配置

 

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>  
       <param-name>contextConfigLocation</param-name>  
       <param-value>classpath:WEB-INF/root-context.xml</param-value>  
  </context-param>
  <servlet>
       <servlet-name>mvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:WEB-INF/mvc-servlet.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>mvc</servlet-name>
       <url-pattern>/*</url-pattern>
   </servlet-mapping>
   <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
  
</web-app>

 

1.2 root-context配置

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
   	<!-- 扫描包不扫描controller包 -->
	<context:component-scan base-package="mvc">
		<context:exclude-filter type="regex" expression="mvc.controller.*"/>   
	</context:component-scan> 
	
</beans>

 

1.3 mvc-servlet配置

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
   	<!-- 扫描controller包 -->
	<context:component-scan base-package="mvc.controller"/>
	
	<!-- 启用支持Restful结构的配置,pom需要导入jackson包 -->
	<mvc:annotation-driven/>
	
</beans>

 

1.4 pom配置

 

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-webmvc</artifactId>
	    <version>4.3.8.RELEASE</version>
	</dependency>
    <dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	    <version>3.1.0</version>
	    <scope>provided</scope>
	</dependency>
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-core</artifactId>
	    <version>2.8.8</version>
	</dependency>
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-databind</artifactId>
	    <version>2.8.8</version>
	</dependency>
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-annotations</artifactId>
	    <version>2.8.8</version>
	</dependency>
  </dependencies>

 

1.5 UserController

 

 

package mvc.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import mvc.bean.User;

@RestController
@RequestMapping("user")
public class UserController
{
	private static User user = new User();
	
	@GetMapping("{id}")
	public User getUser(@PathVariable Long id)
	{
		if(user != null && id.equals(user.getId()))
		{
			return user;
		}
		
		return new User();
	}
	
	@PostMapping("add")
	public String addUser(@RequestBody User user)
	{
		this.user.setId(user.getId());
		this.user.setName(user.getName());
		return "ok";
	}
}

 

1.6 User对象

 

 

package mvc.bean;

public class User
{
	private Long id;
	
	private String name;

	public Long getId()
	{
		return id;
	}

	public void setId(Long id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}
	
	@Override
	public String toString()
	{
		return this.id + this.name;
	}
}

 

1.5 项目完整结构



 

2 启动和测试项目

2.1 启动成功信息

 

信息: Initializing Spring FrameworkServlet 'mvc'
六月 19, 2017 7:13:49 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
信息: FrameworkServlet 'mvc': initialization started
六月 19, 2017 7:13:49 下午 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
信息: Refreshing WebApplicationContext for namespace 'mvc-servlet': startup date [Mon Jun 19 19:13:49 CST 2017]; parent: Root WebApplicationContext
六月 19, 2017 7:13:49 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [WEB-INF/mvc-servlet.xml]
六月 19, 2017 7:13:50 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
信息: Mapped "{[/user/{id}],methods=[GET]}" onto public mvc.bean.User mvc.controller.UserController.getUser(java.lang.Long)
六月 19, 2017 7:13:50 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
信息: Mapped "{[/user/add],methods=[POST]}" onto public java.lang.String mvc.controller.UserController.addUser(mvc.bean.User)
六月 19, 2017 7:13:50 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvc-servlet': startup date [Mon Jun 19 19:13:49 CST 2017]; parent: Root WebApplicationContext
六月 19, 2017 7:13:50 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvc-servlet': startup date [Mon Jun 19 19:13:49 CST 2017]; parent: Root WebApplicationContext
六月 19, 2017 7:13:50 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
信息: FrameworkServlet 'mvc': initialization completed in 707 ms
六月 19, 2017 7:13:50 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio-8080"]
六月 19, 2017 7:13:50 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-nio-8032"]
六月 19, 2017 7:13:50 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 2239 ms
 可以看到一个post和一个get接口已经注册成功了。

 

2.2 注册一个用户


 

2.3 获取注册的用户

 

请求id不是123时返回的数据



 

是123时返回的数据



 

 

 

  • 大小: 25.5 KB
  • 大小: 36.7 KB
  • 大小: 29.6 KB
  • 大小: 27.1 KB
分享到:
评论

相关推荐

    RESTful PHP Web Services

    假设我们需要构建一个简单的 RESTful Web Services 来管理用户数据。我们可以按照以下步骤来实现: 1. **定义资源**:确定需要暴露的资源,例如用户列表 `/users`。 2. **设计 URL**:为用户资源设计 URL,例如...

    RESTful Java Web Services (2009).pdf

    - **Restlet's Lightweight REST**:一个轻量级的REST客户端和服务端框架,适用于构建简单高效的RESTful应用。 - **JBoss's JAX-RS RESTEasy**:基于JAX-RS标准的RESTful框架,提供了一系列扩展来简化RESTful服务...

    RESTful Web Service Demo

    总的来说,"RESTful Web Service Demo"项目是一个实践性的教程,它向我们展示了如何使用Java和Spring Boot来创建一个支持CRUD操作的RESTful服务,这在现代Web开发中是非常常见的需求。通过学习和实践这个示例,...

    C# 一个简单的 Restful 服务端和 Restful 客户端 Demo

    本示例是关于如何使用C#语言创建一个简单的RESTful服务端以及对应的RESTful客户端。以下是相关知识点的详细说明: 1. **RESTful原则**:REST(Representational State Transfer)的核心思想是资源(Resource)和...

    一个简单的Restful例子以及讲解

    ### 一个简单的RESTful例子及深入讲解 #### REST简介与核心概念 REST(Representational State Transfer,表象性状态转移)是一种软件架构风格,尤其适用于Web服务的设计。它利用现有的互联网标准和技术,如HTTP、...

    使用Spring构建Restful的Web服务.pdf

    - **Inventory服务**:一个简单的示例服务,用于处理库存相关的请求。 - **REST和MVC模式**: - **Model**:代表数据模型,如数据库中的记录。 - **View**:展示数据的方式,例如HTML页面。 - **Controller**:...

    使用spring构建RESTful的Web服务

    - **系统分层**:一个典型的RESTful Web服务通常分为几个层次,包括表示层、业务逻辑层和数据访问层等。这种分层有助于保持各部分功能独立且易于维护。 - **按需编程**:根据实际需求逐步开发和实现功能。这不仅适用...

    Building RESTful Web Services with .NET Core [PDF]

    - **第一个项目**:通过创建一个简单的 Web API 项目来引导读者熟悉 .NET Core 的基本操作流程。 ### 第二章:构建初始框架 —— 奠定应用基础 - **项目结构**:讲解如何组织代码,包括使用不同的命名空间来分离...

    spring-cloud 构建一个restful的web服务.docx

    【描述】:本文档将指导您如何使用 Spring Cloud 创建一个简单的 RESTful Web 服务。我们将通过一个"Hello World"示例来演示如何设置和运行服务,该服务能够响应 HTTP GET 请求,并以 JSON 格式返回问候消息。 ...

    spring-cloud 构建一个restful的web服务.pdf

    在本文档中,我们将探讨如何使用Spring Cloud构建一个RESTful的Web服务。REST(Representational State Transfer)是一种架构风格,常用于构建现代、可扩展的Web服务。Spring Cloud是Spring框架的一个扩展,它提供了...

    2_构建一个简单的spring-boot的RESTful Web Service项目.zip

    在本项目中,我们将探讨如何使用Spring Boot框架创建一个简单的RESTful Web Service。Spring Boot以其简洁的配置和快速开发能力,已经成为Java开发人员构建微服务的首选工具。RESTful Web Service是一种基于HTTP协议...

    restful web service

    RESTful Web服务是一种基于HTTP协议的轻量级Web服务设计风格,它强调...提供的压缩包文件揭示了一个典型的Java Maven项目的结构,其中包含了源代码、构建配置以及第三方库,这些都是开发和部署RESTful服务所必需的。

    Building a RESTful Web Service with Spring

    开发RESTful Web服务时,选择一个强大的集成开发环境(Integrated Development Environment, IDE)可以帮助提高效率。例如,IntelliJ IDEA或Eclipse都是很好的选择。 为了让服务可执行,我们需要配置相应的启动类,...

    Building RESTful Web Services with .net core

    .NET Core 提供了一个轻量级的开发环境,可以用于构建各种类型的应用程序,包括 Web 应用、命令行应用等。 **2. RESTful 设计原则** RESTful 架构遵循一组特定的设计原则,这些原则使得 RESTful API 更加统一和易于...

    Python-Flask的可浏览WebAPI一个强大的FlaskRESTful框架

    **Python-Flask的可浏览WebAPI:一个强大的Flask RESTful框架** Flask是一个轻量级的Python Web开发框架,它以其灵活性和简洁性深受开发者喜爱。在Flask的基础上,为了实现更高效的RESTful API设计,我们可以使用...

    RESTful Web Service Primer

    例如,在一个RESTful的采购系统中,每个采购订单都有其唯一的URI。 - **资源表示**:资源是通过交换资源的表示形式来进行操作的。例如,一个采购订单资源可能被表示为一个XML文档。当需要更新这个采购订单时,可以...

    Flask Restful Web基础框架完整代码

    它提供了一个简单的模型-视图-控制器(MVC)结构,允许开发者通过定义路由、视图函数和模板来创建动态网页。 2. **RESTful API** REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用...

Global site tag (gtag.js) - Google Analytics