06restful
2019-08-05 本文已影响0人
RobertLiu123
https://www.cnblogs.com/huaxingtianxia/p/5579615.html
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
url不变,通过改变method类型,标识我的请求具体做什么
http://ip:port/usermanager/username/password
form----method=*****
第一个四个表示操作方式的动词:GET、POST、PUT、DELETE。
GET用来获取资源(查询)
POST用来新建资源(也可以用于更新资源 )(添加),
PUT用来更新资源(update),
DELETE用来删除资源。(delete)
第二个 在url里带参数
http://ip:port/usermanager/add/${name}/{password}
实现
1)配置web.xml里新增配置
<!-- 支持restful -->
<servlet>
<servlet-name>dispatcher-rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher-rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2)写示例程序
@Controller
@RequestMapping("/rest")
public class RestController {
@RequestMapping("/del/{id}")
public ModelAndView delById(@PathVariable("id") int id){
System.out.println(id);
return null;
}
@RequestMapping("/add/{name}/{password}")
public ModelAndView add(@PathVariable("name") String username,@PathVariable("password") String pwd){
System.out.println(username);
System.out.println(pwd);
return null;
}
@RequestMapping("/update/name/{name}/password/{password}")
public ModelAndView update(@PathVariable("name") String username,@PathVariable("password") String pwd){
System.out.println(username);
System.out.println(pwd);
return null;
}
}
3)测试
在浏览器地址栏里输入网址
http://localhost:8081/ch01-springmvc01/rest/del/123
http://localhost:8081/ch01-springmvc01/rest/add/wang.qj/123456
http://localhost:8081/ch01-springmvc01/rest/update/name/ggg/password/123456
第2节
静态资源访问权限
https://blog.csdn.net/rainbow702/article/details/54895470
配置restful之后,之前的请求http://localhost:8081/ch01-springmvc01/json/goAdd.action中的js会失效,导致请求无法提交到后台。
两种解决方案:
1、在springmvc.xml里新增静态资源访问权限,样例代码如下
<!-- 静态文件访问权限 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
第2种方式
https://blog.csdn.net/abc997995674/article/details/80513203
<mvc:default-servlet-handler/>