Sping-MVC

Spring-mvc

1、什么是spring-mvc

基于spring的一个框架

2、什么是mvc------一个个设计模式

首先请求发送request请求到C(control 接收用户请求响应用户) 然后控制器到M模型(pojo、action、service、dao)层处理 处理结果完了返回控制器 控制器要经过视图渲染  最后返回终端(response)

3、spring-mvc怎么运行的

  1、浏览器向spring发出请求,请求交给前段控制器DispatcherServlet处理,

   2、处理器通过HandlerMapping找到相对应的Controller组件处理请求

  3、执行Controller组件约定方法处理请求,在约定方法调用模型组件完成业务处理。约定方法可以返回一个ModelAndView

对象,封装了处理结果数据和视图信息

  4、控制器接受ModelAndView之后,调用ViewResolver组件,定位View(JSP) 并传递信息,生成响应界面结果

spring-mvc的配置

1、前端控制器

 
   
   
  	
    
    
     
     spring-mvc
    
    
  	
    
    
     
     org.springframework.web.servlet.DispatcherServlet
    
    
  	
    
    
  		
     
     
      
      contextConfigLocation
     
     
  		
     
     
  		
     
     
      
      classpath:springtest.xml
     
     
  	
    
    
  
   
   
  
   
   
  	
    
    
     
     spring-mvc
    
    
  	
    
    
     
     /
    
    
  
   
   
2、配置HandderMapping、Controller、ViewResolover


   
   

   
   
	
    
    
		
     
     
			
      
      
       
       controllerTest
      
      
		
     
     
	
    
    

   
   

   
   

   
   

   
   

   
   
	
    
    
	
    
    

   
   

3、Controller中返回一个ModelAndView
public class ControllerTest implements Controller{
//实现Controller接口
	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		ModelAndView mv=new ModelAndView();
		mv.setViewName("renwei");//这个是不带后缀名的jsp文件名
		return mv;
	}
	
}

spring-mvc注解

1、@RequestMapping 可以用在方法和类上,(类上的可以不写)

  需要在配置文件中配置两个Bean、

    //就是注册这两个bean 适配器和映射
    
    
    
	//下面这个是驱动,相当于节省了上面那两步
	
    
    
2、@RequestParam-获取参数

      1、可以获取表单的参数,并且可以实现数据类型的自动的转换,但是在转化的过程中,可能出现数据转换异常
方法名(@RequestParam 数据类型 参数名, @RequestParam 数据类型 参数名)

      2、如果表单属性和参数名一样。不写注解也可以

当一个对象的属性和表单中的参数一致的时候,那么Controller组件
中的方法中,获取表单的参数值的时候,可以直接由对象获取到,
也就是说,在方法中将这个对象传入。

向页面传值

1.HttpServletRequest 和Session
setAttribute();
2.ModelAndView(String name,Map)
Controller 中的方法,返回值是ModelAndView。

mv.addObject(String name, Object obj)
实现数据绑定
3.ModelMap
addAttribute(String name,Object obj);
实现数据绑定,底层也是通过HttpServletRequest对象传递数据到
JSP页面的。
4.注解的数据绑定
@ModeAttribute("")作用在方法的参数上或者是bean的属性上

重定向视图

Spring MVC默认采用转发方式定位视图,如果需要重定向方式可采用下面几种方法

1、使用RedirectView   Controller方法的返回值必须是modelandview类型的

RedirectiView view new RedirectView("请求action路径/jsp路径");

ModelAndView mv=new ModelAndView(view);


2、使用redirect:前缀   controller方法的返回值必须是String类型的

redirect:路径      ---请求路径/jsp路径


spring-mvc中乱码解决方式

  
   
   
  	
    
    
     
     filter
    
    
  	
    
    
     
     org.springframework.web.filter.CharacterEncodingFilter
    
    
  	
    
    
  		
     
     
      
      encoding
     
     
  		
     
     
      
      UTF-8
     
     
  	
    
    
  
   
   

注意:表单提交方式为post、过滤器的编码格式要和页面的编码格式保持一致

使用拦截器实现登录检查

1、拦截器必须实现HandlerInterceptor接口,这个接口有以下三个方法
preHandle(..)
  处理器执行前被调用。方法返回true表示会继续调用其他拦截器和处理器;返回false表示中断流程,不会执行后续拦截器和处理容器
postHandle(..)
     处理器执行后、视图处理前调用。此时可以通过modelAndView对象对模型数据进行处理或对视图进行处理
afterCompletion(..)
    整个请求处理完毕后调用,如性能监控中我们可以在此记录结束时间并输出消耗时间,还可以进行一些资源清理。只有preHandle返回true时才会执行afterCompletion方法
在容器配置文件中配置
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/day04/*"/>
        <mvc:exclude-mapping path="/login/*"/>
        <bean class="com.demo.interceptor.SomeInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值