目录
1.restful风格
简述:
- 每一个URL代表1中资源
- 客户端使用GETPOSTPUTDELETE 4个表示操作方式的动词和服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新),PUT用来更新资源,DELETE用于删除资源
- 通过操作资源的表现形式来操作资源
1.1.控制层实现代码
//restful--->地址为user/1 1:表示参数id
//method:表示该方法的处理方式为get【查询】请求(post【添加】,delete【删除】,put【更新】)
@RequestMapping(value="{uid}",method=RequestMethod.GET) //查询操作
public String findById(@PathVariable("uid") int id) {
return "list";
}
//springmvc 提供了一个过滤器 (HiddenHttpMethodFilter.class)将post请求转化为put和delete
//需要在xml中配置
@RequestMapping(value="{uid}",method=RequestMethod.PUT) //更新操作
@ResponseBody
public String findById(@PathVariable("uid") int id) {
return "list";
}
1.2.请求方式过滤器配置
<!--
把post请求转化为put或者delete请求方式
使用真正的 _method 的真正提交方式
-->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<!--
过滤器的路径
spring-web-4.2.2.RELEASE.jar==org.springframework.web.filter==HiddenHttpMethodFilter.class
-->
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1.3 ajax实现(简单的一个实现)
$.ajax({
url:"user",
type:"post",
data:{
_method:"put"
},
success:function(){
}
});
2.异常处理
2.1在相应的类创建一个方法(局部异常)
iserrorPage="true"(异常页面)
@ExceptionHandler //该类发生异常时会由该方法处理
public ModelAndView exception(Exception exception) {
ModelAndView mv = new ModelAndView();
mv.addObject("error", exception.getMessage());
mv.setViewName("error");
return mv;
}
2.2定义一个异常类(针对全局异常)
package com.hw.lb.controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
@ControllerAdvice
public class ExceptionController {
@ExceptionHandler //该类发生异常时会由该方法处理
public ModelAndView exception(Exception exception) {
ModelAndView mv = new ModelAndView();
mv.addObject("error", exception.getMessage());
mv.setViewName("register");
return mv;
}
}
3.springmvc的注解:
@controller | 标注该类为控制层类 |
---|---|
@RequestMapping | 标注请求的地址 |
@ResponseBody | 把java对象转化为json对象 |
@Vaild | 标注校验该数据 |
@PathVariable | 接收url地址的值赋给方法参数 |
@SessionAttributes | 转化session对象 |
@RequestParam | 接收参数 |
@ExceptionAdvice | |
@ExceptionHander | 标注一个方法为异常处理的方法 |
@InitBinder | 处理日期参数 |