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

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

  • 相关阅读:
    Django 类方式view进行进行用户验证
    Django-发送注册、忘记密码邮件验证-send_mail
    Django-当前菜单激活状态-模版 request | slice
    django url路由参数错误
    video.js不能控制本地视频或者音频播放时长
    Django中url使用命名空间的错误
    python_求相邻数
    scrapy_移除内容中html标签
    scrapy-redis功能简介
    Determining IP information for eth0...failed 错误解决
  • 原文地址:https://www.cnblogs.com/jingmochen/p/11457911.html
Copyright © 2020-2023  润新知