springMVC

一:概述:

  1、springMVC做web开发的框架,实际上就spring框架中的一个板块

  2、springMVC的使用就是基于spring的,容器的概念,springMVC会创建容器,                          webApplicationContext,springMVC作为容器是创建和管理控制器对象,使用                                @Controller创建对象控制器对象     

  3、三层和框架的对应:①springmvc--界面层,接受用户请求,显示处理结果的

                                   ②spring--业务层,处理业务逻辑的,spring创建Service,dao,工具类对象 

                                   ③Mybatis--持久层,访问数据库的,对数据增删改查

  4、springMVC底层访问依然是Servlet-DispatcherServlet(中央调度器)

    A创建WebApplicationContext对象,读取配置文件,进而创建控制器对象             

   B它是一个Servlet,要接受用户的请求,显示处理结果

二:

1、注解:

  ①、@Controller:创建控制器类的对象,接收参数,处理请求

  ②、@RequestMapping:请求映射,把请求绑定到一个方法,让这个方法处理请求

     A、value:请求url值,唯一值           

     B、method:请求的方式,使用RequestMethod类的枚举值

2、接受用户提交的参数

  ①HttpServletRequest,HttpServletResponse,HttpSession可以直接出现现在处理器方法的参数位置

  ②逐个接受参数,处理器方法的形参名和请求中参数名一致,按名称对应赋值

  ③解决请求POST请求中文乱码问题---使用Filter过滤器

<!--    注册声明过滤器-解决post请求中文乱码问题-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--        设置项目中使用的字符编码-->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
<!--        强制请求对象(httpServletRequest)使用Encoding编码的值-->
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
<!--        强制请求对象(httpServletRequest)使用Encoding编码的值 -->
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
<!--
      /*:表示强制所有请求先通过过滤器 处理
-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

  ④、逐个接受中,请求参数和形参名不一样,使用@RequestParam解决问题

  ⑤、用java对象接受请求参数,要求请求中参数名和属性名一样

  ⑥、springMVC处理器方法的形参,还可以Map,List等集合类型,数组都可以

3、处理器方法的返回值:表示请求的处理结果

  ①、ModeAndView,表示数据和视图,对试图执行forward

  ②、String:表示视图的,可以逻辑名称,完整的试图路径,对试图做forward

  ③、void:返回值本身是不能表示视图和数据。可以响应Ajax请求

  ④、对象Object:表示数据的,响应Ajax请求

  ⑤、springMVC处理器方法返回对象,转为json响应Ajax请求步骤

    A.加入处理java到json的工具库:jackson

    B.在springMVC配置文件中加入注解驱动<mvc:annotation-driven>

    C.在处理器的方法上面加入@RequestBody

4、url-pattern

  ①、设置中央调度器url-pattern是"/";导致静态资源访问失败都是404,动态代理可以正常访问

  ②、第一种解决静态资源访问的方案:在springmvc的配置文件中加入1)<mvc:default-servlet-handler> 2)<mvc:annotation-driven>-------原理:给程序内存增加一个处理器对象,DefaultHttpRequestHandler,让这个对象处理静态资源的访问

  ③、第二种处理静态资源的:使用框架中的mvc:resource标签,由框架自己处理静态资源的访问

5、SSM整合开发

  ①、ssm整合由两个容器,1)springMVC容器:管理controller,视图对象。2)spring容器:管理service、dao对象

  ②、创建容器方式,1)创建springMVC的容器对象:使用中央调度器:DispatcherServlet。2)创建spring容器对象,使用监听器ContextLoaderListener

  ③、配置文件1)spring配置文件2)spring配置文件3)mybatis配置文件4)数据库的配置文属性件。

6、核心技术:转发和重定向

     ①、转发:forward

     ②、重定向:redirect

     ③、特点:都不和视图解析器一同工作,就当项目中没有视图解析器 

    

                              

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值