SpringMVC(五)RESTful支持,Dispatcher常见的拦截路径

RESTful架构

REST,即Representational State Transfer的缩写,表现层状态转化

*资源

网络上的一个实体,文本,图片,MP3文件,可以使用URI进行定位,每个资源独有一个URI,上网就是

URI定位资源的过程

* 表现层

资源的表现形式,比如文本文件使用txt格式表示等等。

严格来说URI应该代表资源的实体,不代表他的形式,网址用.html结尾作为后缀,是不必要的,这是表现层的范畴

具体表现形式应在http的请求头信息中accept和content-type指定。

* 状态转换

http协议是无状态协议,如果客户端需要操作服务器,必须通过某种手段,让服务端发生"状态转化"。这个转换是建立在

表现层之上的,就是"表现层状态转化"

客户端用到的手段是http协议,http协议里面表示操作方式的词语:

GET:获取资源

POST:新建资源

PUT:更新资源

DELETE:删除资源

总结,RESTful架构

* 每个URI代表一种资源

* 客户端和服务端传递的是资源的表现层

* 客户端通过4个http动词操作服务器资源

举个例说明:

传统方式操作资源
http://127.0.0.1/item/queryItem.action?id=1         查询,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action?id=1 删除,GET或POST

使用RESTful操作资源
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT

http://127.0.0.1/item/1 删除,DELETE

GET,POST 请求参数,经常遇到,但是PUT、DELETE发送请求,需要注意。

tomcat默认解析post请求,PUT、DELETE请求方式默认不支持,修改tomcat的server.xml加上

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000"
           redirectPort="8443"
           parseBodyMethods="POST,PUT,DELETE"
           URIEncoding="UTF-8" />

SpringMVC RESTful开发

使用RESTful开发商品查询

<script type="text/javascript">
	 $("#btn").live('click',function(){
		 $.ajax({
			 type:'post',
				url:contentpath+'/item/'+$("#btnValue").val()+'.action',
				contentType:"application/x-www-form-urlencoded;charset=utf-8",
				dataType:'json',
				success:function(data){
					console.log(data);
				},
				error:function(){
					alert('服务器连接失败,请重试!');
				}
			 
		 });
	 });
	</script>
	<input id="btnValue" type="text"> <input id="btn" type="button" value="RESTful提交">

controller方法

@RequestMapping("/{id}.action")
	public @ResponseBody Item queryItemInfoById(@PathVariable Integer id){
		Item item = new Item();
		item.setId(1001);
		item.setName("华为");
		item.setTime(new Date());
		item.setRemark("....");
		return item;
	}

SpringMVC拦截路径说明

SpringMVC的前端控制器对符合匹配规则的URI进行拦截,常见的如下

 <servlet>
  	<servlet-name>dispatcherServlet</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>
  </servlet>
  <servlet-mapping>
  <!-- /* 拦截所有,jsp,png,js,css...
       *.action 拦截匹配的URI
       /  不会拦截jsp页面,但是会拦截静态资源    ****推荐**** 
             需要在SpringMVC.xml加上放行的路径
   -->
  	<servlet-name>dispatcherServlet</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>

配置为/,对于静态资源的处理方法:

1. 在SpringMVC.xml中加上静态资源放行

<!-- 配置静态资源处理 必须文件位于webapp根目录下-->
	<mvc:resources location="/js/**" mapping="/js/"/>
	<mvc:resources location="/images/**" mapping="/images/"/>
	<mvc:resources location="/css/**" mapping="/css/"/>

2. 启用tomcat的defaultservlet处理,需要将配置放在dispatcherServlet前面

<servlet-mapping>  
    <servlet-name>default</servlet-name>  
    <url-pattern>*.jpg</url-pattern>  
</servlet-mapping>  
<servlet-mapping>  
    <servlet-name>default</servlet-name>  
    <url-pattern>*.js</url-pattern>  
</servlet-mapping>  
<servlet-mapping>  
    <servlet-name>default</servlet-name>  
    <url-pattern>*.css</url-pattern>  
</servlet-mapping>  

转载:http://www.ruanyifeng.com/blog/2011/09/restful.html

          https://blog.csdn.net/u012730299/article/details/51872704


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值