SpringMVC重要知识点

一.自定义格式转换

1.定义一个类实现Converter
2.添加默认方法,进行格式转换
3.在SpringMvc.xml文件中进行配置最后还有挂在到注解驱动中

	<!-- 加载注解驱动 -->
	<mvc:annotation-drivenconversion-service="conversionService"/>
	<!-- 转换器配置 -->
	<beanid="conversionService"
		class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<propertyname="converters">
			<set>
				<beanclass="cn.itcast.springmvc.convert.DateConverter"/>
			</set>
		</property>
	</bean>

二.SpringMVC框架的图片上传

上传文件的时候表单的设置
	form表单中应该有一个属性enctype="multipart/form-data";
	导入两个文件上传的jar包
		commons-io-2.4.jar
		commons-fileupload-1.2.2.jar
	配置文件上传
		<!-- 文件上传 -->
		<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置上传文件的最大尺寸为5MB -->
		<property name="maxUploadSize">
			<value>5242880</value>
		</property>
		</bean>
	controller类的编写:
		方法中带有一个参数MultipartFile pictureFile(前端界面文件上传的name属性对象的名字,必须完全相同)
		//获取图片完整名称
		String fileStr = pictureFile.getOriginalFilename();
		//使用随机生成的字符串+源文件扩展名组成新的文件名称,方式图片重名
		String newfileName = UUID.randomUUID().toString()+fileStr.substring(fileStr.lastIndexOf("."));
		//将图片保存到项目访问的路径中
		pictureFile.transferTo(new File("文件路径"));
		//将图片名称保存到数据库

三.json数据交互

  1. 第一步导入jackson的jar包在controller的方法中可以使用@RequestBody,让springMvc讲json格式字符串自动转换成java中的pojo页面json中的key要等与Java中pojo的属性名称

  2. 想要在界面中返回json格式

    • 在方法添加注解
    • @ResponseBody
    • 返回值就是想要返回的对象

四.restful

	Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,是对http协议的诠释。
	

	- 资源定位:互联网所有的事物都是资源,要求url中没有动词,只有名词。没有参数
	

	 - Url格式:http://blog.csdn.net/beat_the_world/article/details/45621673

	

	- 资源操作:使用put、delete、post、get,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。一般使用时还是post和get。Put和Delete几乎不使用。

	

<servlet-mapping>
			<servlet-name>springmvc-servlet-rest</servlet-name>
			<!-- 必须用/ -->
			<url-pattern>/</url-pattern>
		</servlet-mapping>
  • @RequestMapping(value="/viewItems/{id}"):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{×××}中的×××变量。

  • @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。 @ResponseBody
    public viewItems(@PathVariable(“id”) String id,Model model) throws Exception{ … }

五…拦截器

  1. 定义一个拦截器类实现HandlerInterceptor

  2. 里面有三个方法

  • 最后执行 执行时机:controller方法已经执行,ModelAndView已经返回 使用场景:记录日志
    afterCompletion(…){ }

  • 中间执行 执行时机:controller方法已经执行,ModelAndView没有被返回 使用场景:可以在此方法中设置全局的数据处理业务
    postHandler(…){ }

  • 最先执行 执行时机:controller方法没有被执行,ModelAndView没有被返回 使用场景:权限认证
    preHandler(…){ }

    在springmvc.xml中进行配置

     	<mvc:interceptors>
     		<mvc:interceptor>
     	
     			<!--拦截请求的路径 拦截所有必须配置成/**-->
     			<mvc:mapping path="/**"/>
     			<!--指定拦截器的位置-->
     			<bean class="cn.itcast.springmvc.filter.HandlerInterceptor1"></bean>
     		
     		</mvc:interceptor>
     		<mvc:interceptor>
     			<mvc:mapping path="/**"/>
     			<bean class="cn.itcast.springmvc.filter.HandlerInterceptor2"></bean>
     		</mvc:interceptor>
     	
     </mvc:interceptors>
    

实战:登陆权限认证

  1. 编写登陆的controller,编写跳转到登陆界面的方法,编写登陆验证方法
  2. 编写登陆界面
  3. 编写拦截器

运行过程:

  1. 任意访问一个界面,拦截器会拦截请求,hui验证session中是否有登陆信息

    • 如果已经已登录,放行

    • 如果未登录,跳转到登陆界面

  2. 在登陆界面中输入用户名密码,点击登陆按钮,拦截器会拦截请求如果是登陆路径放行

    在controller中判断用户名密码是否正确,如果正确把登陆信息放到session中

猜你喜欢

转载自blog.csdn.net/qq_40395687/article/details/84205623
今日推荐