SpringMVC学习(三)(1.文件上传 2.拦截器 3.数据校验 4.restful风格5.异常处理)

 

大纲

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  表示当发生异常时由该异常类来处理 :全局的异常类处理异常

*在该异常类中定义处理异常的方法,该方法的定义与定义局部的异常处理方法一致

posted @ 2019-09-05 01:32  静默陈  阅读(171)  评论(0编辑  收藏  举报