今天看一个SpringMVC的项目,然后编写接口,并通过前台的ajax调用来访问接口,当然这所有的一切好像都没有什么问题,你看下面是我们的ajax,

    function sendMessage() {var curPath=window.document.location.href;  var pathName=window.document.location.pathname;  var pos=curPath.indexOf(pathName);  var localhostPaht=curPath.substring(0,pos);  var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); var params={"name":"wangdneggao"}var json = JSON.stringify(params);$.ajax({url : localhostPaht + projectName+"/demo/index",data:json,type : 'post',contentType : 'application/json;charset=utf-8',success : function(data) {console.log(data);},error : function(error) {console.log('接口不通' + error);}});}sendMessage();

调用后台的demo/index这个接口,但是访问了半天可以总是提示404

如下:

出现这样的结果当然是让人和头疼的因为这个问题,我调试一天,工程重新搭建,重新搭建,就这样

但是到最后的时刻,问题还是解决了,让人还是能看到一些生活的希望

听说SpringMVC的配置很重要,那么我们首先从pom.xml文件说起:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wdg.SqzpAdmin</groupId><artifactId>SqzpAdmin</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><build><finalName>SqzpAdmin</finalName><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><path>/SqzpAdmin</path><port>8080</port><uriEncoding>UTF-8</uriEncoding><server>tomcat7</server></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.7</source><target>1.7</target></configuration></plugin></plugins></build><properties><spring.version>4.0.5.RELEASE</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency></dependencies>
</project>

上面是一个非常简单的SpringMVC,里面用到的使用到的依赖都是最为基础的依赖,那么下下面是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"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><display-name>SqzpAdmin</display-name><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list></web-app>

这些都配置好了之后要做的事情是:SpringMVC-servlet.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"xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"><!-- 解决中文乱码 --><mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/plain;charset=UTF-8</value><value>text/html;charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven><bean id="utf8Charset" class="java.nio.charset.Charset"factory-method="forName"><constructor-arg value="UTF-8" /></bean><bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" /><beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/" /></bean><!-- 静态资源处理 --><mvc:default-servlet-handler /><mvc:annotation-driven /><context:component-scan base-package="com.wdg.controller"></context:component-scan>
</beans>

还有一个是controller:

package com.wdg.controller;import java.io.IOException;import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.wdg.util.BuildJsonOfObject;@Controller
@RequestMapping("/demo")
public class DemoController {private Logger log;public DemoController() {this.log = Logger.getLogger(this.getClass());}@RequestMapping("/index")public  String index(@RequestBody String params) {log.info("-----------------开始addcomment------------------------------------");log.info("-----------------结束addcomment------------------------------------");return BuildJsonOfObject.buildJsonOfString("demo");}@RequestMapping(value = "/addcomment", produces = "application/json; charset=utf-8")public @ResponseBody String addComment(@RequestBody String params) throws IOException {log.info("-----------------开始addcomment------------------------------------");log.info("-----------------结束addcomment------------------------------------");return params;}
}

上面就是简单的工程了,但是访问一直出现404,原因是因为我们需要在接口的前面加上:@ResponseBody 这个注释,问题就解决了,希望对你有所帮助

SpringMVC如何实现restful接口相关推荐

  1. java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!

    点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...

  2. Swagger+Spring mvc生成Restful接口文档

    2019独角兽企业重金招聘Python工程师标准>>> Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端 ...

  3. feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范

    最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下. SpringMVC的请求参数绑定机制 了解Feig ...

  4. 三种方法实现调用Restful接口

    1.基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring ...

  5. RESTful 接口设计

    文章目录 RESTful 接口设计 1.获取所有员工列表 2.增加一个员工 3.更新员工 4.删除员工 5.查询单个员工 RESTful 接口设计 1.获取所有员工列表 /*** 获取所有员工* 1. ...

  6. restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用

    松哥原创的四套视频教程已经全部杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程 RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念 ...

  7. java创建restful接口,三种方法实现java调用Restful接口

    转自:https://www.cnblogs.com/taozhiye/p/6704659.html 引言:当前,web开发中第三方接口的选择往往是在restful接口和web service 接口 ...

  8. springfox源码_【开源项目】springfox-bridge:随心所欲地为非restful接口生成API文档...

    一.引言 目前,利用swagger框架为restful接口编写API文档非常流行,在spring web项目中,利用springfox+swagger更是可以通过注解的方式直接进行API文档的生成,这 ...

  9. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

最新文章

  1. 知名财经大V称:京东金融遇到了点“问题”!
  2. Linux学习 Unit 12
  3. 基于多种服务的地理位置查询系统
  4. 数学系列 - 概率论 - 泊松分布和(负)指数分布
  5. 数据结构-顺序查找的二分查找法(折半查找)
  6. SAP UI5 应用开发教程之二十三 - 列表控件的排序 Sort 和分组 Group
  7. python 将图片旋转多个角度_【技术】把你的朋友变成表情包?Python:So easy
  8. java 创建文件夹的方法_java中创建文件夹的方法
  9. 动图图解 | Go 的 timer 是如何被Runtime调度的?
  10. C#网站发布在IIS10上,Access数据库读取为空白的解决方案
  11. 苹果Mac经典办公套件:Microsoft 365 支持辅助功能,高效工作
  12. mysql数据库事务实现方式_mysql事务的实现原理
  13. mtk刷机报错4032专业维修教程(图文)
  14. 我的数学之美(一)——RANSAC算法详解
  15. EPON联通网关超级管理员密码获取办法
  16. 深入浅出内存马(一)
  17. DSP 性能 GMAC 和 GFLOP含义
  18. php 设置数字键盘,window_win10启动时如何设置默认打开小键盘数字输入切换键?,win10作为微软的一次重大变革 - phpStudy...
  19. Sigma Designs SMP8910媒体处理器的3DTV、蓝光和OTT体验
  20. [附源码]计算机毕业设计JAVA旅游网站

热门文章

  1. thinkpad e40 热键hotkey失效解决办法
  2. 用 jQuery Masonry 插件创建瀑布流式的页面(转)
  3. cmd批处理命令大全1
  4. Nginx从安装到高可用,一篇搞定!
  5. DevOps 的发展史
  6. 聊聊 Kafka: Kafka 的基础架构
  7. 这么流行的ZooKeeper,原来是这样设计的!
  8. 阿里三面,P9面试官是如何360°无死角考察候选人的?
  9. 版本迭代规划的几大关键步骤
  10. 推荐10个小众简约,但是实用的软件和网站