003 使用maven创建RESTful风格的spring MVC项目(重构)
来源:互联网 发布:软件外包项目报价单 编辑:程序博客网 时间:2024/06/03 07:39
003 使用maven创建RESTful风格的spring MVC项目(重构)
视频发布在youtube上面了
https://youtu.be/4Qwotj5H04I
优酷上面的链接
http://v.youku.com/v_show/id_XMjc4NzUwNjkwMA==.html?f=49760672
接着002中的项目操作
- 配置web.xml文件;
/src/main/webapp/WEB-INF/web.xml
web.xml 的加载顺序是:context-param -> listener -> filter -> servlet
安装了springmvc插件之后,alt+/ 找到dispatcher会输出模板,这里面就做两件事情:
- 映射spring DispatcherServlet
- 配置springMVC配置文件路径
<servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- springmvc 配置文件路径 --> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <!-- / 表示应答所有请求 --> <url-pattern>/</url-pattern></servlet-mapping>
- 编辑pom.xml添加spring依赖包
可以到这里搜索https://mvnrepository.com/
这里使用4.3.7不知道为什么使用4.3.8的时候会找不到InternalResourceViewResolver有了解的同学希望能够分享一下。
<properties> <!-- spring版本号 --> <spring.version>4.3.7.RELEASE</spring.version></properties>
maven会自动引入相关的依赖包,所以这里只需要配置spring-webmvc就可以了
修改junit版本为4.12
<!-- SpringMVC的依赖 会自动引入相关的包--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency>
- 配置springmvc.xml;
右键单击resources目录new-other-spring Bean Configuration File:springmvc.xml
选xsd: beans, context, mvc
因为上次建立这个文件的时候还没添加spring相关的依赖包所以没有选择xsd,这里添加完依赖包之后,使用maven update一下,就可以选择了。
<!-- 配置自动扫描的包 --><context:component-scan base-package="com.study.controller"></context:component-scan><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property></bean>
- 建立控制器包
com.study.controller
新建一个类UserController
@Controllerpublic class UserController { @RequestMapping(value="/putRequest/{id}", method=RequestMethod.PUT) public String putRequestProc(@PathVariable("id") Integer id) { System.out.println("REST Request PUT: " + id); return "success"; } @RequestMapping(value="/deleteRequest/{id}", method=RequestMethod.DELETE) public String deleteRequestProc(@PathVariable("id") Integer id) { System.out.println("REST Request DELETE: " + id); return "success"; } @RequestMapping(value="/postRequest", method=RequestMethod.POST) public String postRequestProc() { System.out.println("postRequestProc"); return "success"; } @RequestMapping("/getRequest/{id}") public String getRequestProc(@PathVariable("id") Integer id) { System.out.println("getRequestProc" + id); return "success"; }}
@Controller 表示这是一个处理请求的控制器。
@RequestMapping(“/getRequest”) 表示映射请求的路径
@PathVariable(“id”) 表示请求里面的变量
都比较直观,如果想了解更详细的说明,可以去官网看相关文档。
编辑index.jsp 添加一些链接,点击后会发送getRequest请求,然后会在controller里面寻找@RequestMapping(“/getRequest”)的方法来处理请求,postRequest也是类似的处理
<form action="putRequest/1" method="post"> <input type="hidden" name="_method" value="PUT" /> <input type="submit" value="testRest PUT" /></form><br /><br /><form action="deleteRequest/1" method="post"> <input type="hidden" name="_method" value="DELETE" /> <input type="submit" value="testRest DELETE" /></form><br /><br /><form action="postRequest" method="POST"> <input type="submit" text="Post Request"></form><br><br><a href="getRequest/1">Hello World!</a>
点击后会发送getRequest请求,然后会在controller里面寻找@RequestMapping(“/getRequest”)的方法来处理请求,
使用视图解析器里面配置的prefix + 控制器返回值 + suffix来生成视图页面的名字在这里就是/WEB-INF/views/success.jsp
- 新建视图文件success.jsp
<h2> Success Page</h2>
@RequestMapping 还可以修饰类,基于web项目根目录。
修饰方法的时候就是:项目路径+类路径+方法路径
REST:Representational State Transfer
表现层状态转化。听起来不是很明晰。
直接的说就是使用下面的方式来提供API接口
/order/1 GET 获取资源 id=1
/order POST 新建资源
/order/1 PUT 更新资源 id=1
/order/1 DELETE 删除资源 id=1
要使用PUT和DELETE需要在web.xml里面增加一个配置来吧POST请求转换为PUT和DELETE
<!--映射POST请求为DELETE,PUT请求--><filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
遇到的问题,如下:
HTTP Status 405 - JSPs only permit GET POST or HEAD
有三种解决方法
第一:taocat换到7.0以及以下版本第二:请求先转给一个Controller,再返回jsp页面第三种:在你的success页面头部文件将<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isErrorPage="true"%>多加一句话:isErrorPage设置为true,默认为false
如果有需要交流的,或者有更好的实现方法的同学,欢迎通过电子邮件来互通有无,共同进步。ascomtohom@126.com
- 003 使用maven创建RESTful风格的spring MVC项目(重构)
- 基于restful风格的maven项目实践(融合spring)
- Spring MVC使用RESTful风格的PUT请求
- Spring MVC Restful风格
- spring mvc完成restful风格的url
- Maven 创建 Spring MVC 项目
- 使用Jersey创建RESTful风格的WebService
- RESTful风格(使用Ajax+Spring MVC框架实现)
- IDEA使用maven创建Spring MVC WEB项目
- 使用CXF+spring+restful创建一个web的接口项目
- 使用CXF+spring+restful创建一个web的接口项目
- 使用CXF+spring+restful创建一个web的接口项目
- 使用CXF+spring+restful创建一个web的接口项目
- Spring mvc Restful风格 静态文件访问的处理
- IDEA创建Maven的Spring MVC项目Demo
- IntelliJ idea创建Spring MVC的Maven项目
- IntelliJ idea创建Spring MVC的Maven项目
- Eclipse上创建一个Maven+Spring MVC的HelloWord项目
- 训练一个Siamese网络
- 592. Fraction Addition and Subtraction
- 高性能服务器程序框架
- 关于String.intern()的思考
- Integer中equlas()方法的运用与问题总结
- 003 使用maven创建RESTful风格的spring MVC项目(重构)
- ftp 相关
- ubuntu python 2.7和3.4版本互换
- 《大型网站技术架构:核心原理与案例分析》拜读总结,第十一章——海量分布式存储系统Doris的高可用
- bzoj 2986 Non-Squarefree Numbers
- LeetCode 30. Substring with Concatenation of All Words
- java实训:类型运算转化法则,参数范围 ,静态全局变量
- Ubuntun 使用git
- loadrunner