springMVC学习

springMVC_ajax
  1. 两种方式交互方式,
    一种是发送一个请求数据,返回一个响应的标识数据
    一种是获取一个集合的JSON格式数据
  1. 需导入新的jar包(jar包在备课/lib下面)
    jackson-annotations.jar
    jackson-core.jar
    jackson-databind.jar
  1. jquery-1.8.2.js 导入插件
  • 页面和控制器代码


敲代码之前要配json转换器(jackson)
配置json解析器

<!-- 配置支持JSON格式的转换器 -->

<bean id="jsonConverter"
	class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>

<bean
	class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="messageConverters">
		<list>
			<ref bean="jsonConverter" />
		</list>
	</property>
</bean>

多模块开发

不同于struts2的package里面进行包名的区分,是在controller上面加requestmapping进行区分


springMVC_interceptor

配置文件:

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler):在请求到达Handler之前,先执行这个前置处理方法。当该方法返回false时,请求直接返回,不会传递到链中下一个拦截器,更不会调用处理器链末端的Handler中,只有返回true时请求才向链中的下一个处理节点传递。

void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView):在请求被HandlerAdapter执行后,执行这个后置处理方法。

void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex):在响应已经被渲染后,执行该方法。

注意点:
执行的时候注意执行链条的顺序:
>1. preHandleOne
2. preHandleTwo
3. postHanleTwo
4. postHanleOne
5. afterComletionTwo
6. afterComletionOne

拦截器的xml配置要在手册里面找, 且要慢慢找。

< mvc:exclude-mapping/>设置不拦截的方法


restful风格

格式改成这样

< url-pattern>/ 会匹配到/login这样的路径型url,不会匹配到模式为.jsp这样的后缀型url。即:.jsp不会进入spring的 DispatcherServlet类 。!但是js,css,image 这类的静态资源依旧会被拦截, 所以要进行放行

  • Alt text

< url-pattern>/ 会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和.html等),会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报


口述总结篇

1.把集合转成一个js的对象数组
	1)导入jar包
	2)添加json的转换器
	3)写方法,造数据
		1)在方法上面加一个@ResponseBody
2.标签
	1)<mvc:resources>忽略静态资源
		a)location:本地的路径
		b)mapping:访问路径

3.namesapce
	1)@RequestMapping可以加到类上的

4.拦截器
	1)如何定义
		a)要实现HandlerInterceptor
			1)postHandle:视图解析器之前
			1)afterCompletion:视图解析器之后
			1)preHandle:调用Controller之前,返回true是放行
	2)配置
		1)<mvc:interceptors>
			a)<mvc:interceptor>
				1)<bean>:自定义拦截器的bean
				2)<ref>:引向外面的bean
				3)<mvc:mapping>:被拦截的路径
				4)<mvc:exclude-mapping>:不被拦截的路径(写决定路径)
	3)/*:只拦截一层
	4)/**:可以拦截多层
原文地址:https://www.cnblogs.com/jwlxtf/p/8065871.html