SpringMvc进阶篇

RequestMapping常用注解的使用

1: @RequestMapping在方法上,标注url到方法的映射关系
2: 在类上,相当在每一个方法上添加了一块url(相当于struts2的namespace )
3: 限定请求类型post/get
在这里插入图片描述

springmvc架构级别的异常处理

  • 自定义全局异常

1.自定义异常类实现HandlerExceptionResolver接口
2.在springMvc.xml中注册

  <bean class="com.itheima.exception.MyExceptionResolver"></bean>
  • 自定义异常

1继承Excetpion类覆写两个方法
2在业务中throw new 自定义类(“信息”)
3在自定义全局异常中获取自定义异常,做处理
在这里插入图片描述

文件上传

springmvc没有对文件上传做实现,只有接口,需要依赖第三方的fileUpload的jar包
1.导包
2.配置

<bean id="multipartResolver"
    	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    	<!-- 设置上传文件的最大尺寸为5MB -->
    	<property name="maxUploadSize">
    		<value>5242880</value>
    	</property>
    </bean>

3.提交的表单必须有 enctype=“multipart/form-data”
4.提交时使用的名字必须于接收参数的名字一致

<input type="file" name="pictureFile"/>

5,具体实现
在这里插入图片描述

springmvc对restFul的支持

restFul: 是url的一种风格,互联网所有的事物都是资源,要求url中没有动词,只有名词。没有参数
1.修改拦截(web.xml)
在这里插入图片描述
2.过滤拦截(springMVC.xml)
在这里插入图片描述
3.代码实现
前台的请求 注意:没有.action,没有?id=了
在这里插入图片描述
控制层接受参数在这里插入图片描述

springMVC拦截器

自定义拦截器
实现HandlerInterceptor接口(两个重要方法)

boolean preHandle 方法 在执行controller方法之前执行,返回false 拦截 返回true放行
应用场景:登录验证,权限验证
postHandle 方法 controller方法已经执行完毕,但是ModelAndView 还没返回还可以在域中放数据,返回
afterCompletion 方法controller方法已经执行完毕,但是ModelAndView 也返回了,一般没用,可用计数,看看一次请求的时间

在springMVC中配置

	<!--拦截器 -->
<mvc:interceptors>
	<!--多个拦截器,顺序执行 -->
	<mvc:interceptor>
		<!--  /*拦截主目录下的   /**拦截所有   user/login  就拦截这个路径-->
		<mvc:mapping path="/**"/>
		<bean class="com.itheima.intercept.MyInterceptor"></bean>
	</mvc:interceptor>
</mvc:interceptors>

猜你喜欢

转载自blog.csdn.net/weixin_41349389/article/details/82999319