大纲
1.文件上传
2.拦截器
3.数据校验
4.restful风格
1.文件上传
1.1导入jar包,Fileupload
1.2 jsp网页中的表单提交方式(method)必须是post,编码(enctype)必须是multipart/form-data
*input标签中name的值必须和对应controller方法的参数名一样
1.3在控制层处理代码,创建Controller类,添加对应方法
*对应controller方法的参数名必须和input标签中name的值一样
*在获取获取文件上传真实保存的路径时,所取的文件名不可与其对应的实体类中属性名相同()
1.3在springmvc中配置文件上传的解析器
2.拦截器(拦截都是控制层的地址。 filter: )
2.1创建一个类 实现接口 HandlerInterceptor
2.2重写接口中的抽象方法
2.3把创建的类配置到springmvc文件中
3.数据校验
3.1引入jar包
3.2在相应的实体类中加入注解
3.3在控制层接受参数
3.4在jsp页面中获取错误信息
*相关注解截图
4.restful风格
4.1 请求地址 http://localhost:8080/Springmvc-04/user/6
4.2 控制层会根据请求方式调用不同的方法
*GET(查询)、POST(添加)、PUT(修改)、DELETE(删除)
1)GET(查询)、POST(添加)
控制层:即在controlelr类中添加相关方法
*在@RequestMapping中添加value:表示地址栏传来的值;method:表示方法处理请求的方式
*方法的参数列表中添加注解@PathVariable("uid"),把uid的值赋值给形参
*说明:这里使用谷歌浏览器的扩展程序(Advanced-REST-client_v3.1.9),发送请求地址,也可通过Ajax来发送请求地址,即在jsp页面中编写Ajax程序,然后通过浏览器的地址栏发送请求地址
谷歌浏览器扩展程序的安装(Advanced-REST-client_v3.1.9):https://www.cnblogs.com/jingmochen/p/11469511.html
*测试GET
*测试POST
注意:这里的变量名要与实体类中定义的属性名一致
2)PUT(修改)、DELETE(删除)
控制层:即在controlelr类中添加相关方法
*在@RequestMapping中添加value:表示地址栏传来的值;method:表示方法处理请求的方式
*方法的参数列表中添加注解@PathVariable("uid"),把uid的值赋值给形参
*PUT(修改)和DELETE(删除),需要添加注解@ResponseBody
注意:springmvc提供了一个过滤器该过滤器可以把post请求转化为put和delete请求,用_method表示真正的提交方式
*在web.xmlwen文件中添加过滤器HiddenHttpMethodFilter
*测试PUT 和 DELETE 时,需要添加_method,表示真实的请求方式
测试PUT:
测试DELETE:
5.Springmvc如何进行异常处理.
5.1 局部的异常处理
*局部异常处理:即当该类中发生异常时,由该方法来处理,该方法的参数类型为Exception,而Exception是所有异常的父类,故由该参数来接收异常对象
1)在congtroller类中定义处理异常的方法,添加注解@ExceptionHandler,方法的参数类型为Exception,并通过getMessage()方法获取异常信息,再将异常信息保存,然后跳转到错误页面(mv.setViewName("error")),这里通过ModelAndView将异常信息保存到request中,
这里以10/0 的算数异常为例,进行测试
2)创建error.jsp页面,在page中添加isErrorPage="true",表示该页面为错误页面,再从request中获取错误信息,并显示到页面
5.2 定义全局的异常类
1)创建异常类,添加注解@ControllerAdvice 表示当发生异常时由该异常类来处理 :全局的异常类处理异常
*在该异常类中定义处理异常的方法,该方法的定义与定义局部的异常处理方法一致