Java开发那些事Java后端

SpringMVC开发 知识点速查

2018-05-19  本文已影响77人  林檎果

SpringMVC入门

什么是SpringMVC

SpringMVC核心组件

SpringMVC实现流程
  1. 客户端请求被DispatcherServlet接收
  2. DispatcherServlet将请求映射到Handler
  3. 生成Handler和HandlerInterceptor
  4. 返回HandlerExecutionChain(Handler+HandlerInterceptor)
  5. DispatcherServlet通过HandlerAdapter执行Handler
  6. 返回一个ModelAndView
  7. DispatcherServlet通过ViewResolver进行解析
  8. 返回填充了模型数据的View,响应给客户端
image

SpringMVC深入使用

开发步骤:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
<!-- 中文乱码 -->
  <filter>
    <filter-name>encodingFilter</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>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
<!-- 防止静态资源被拦截 -->
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>
<!-- 加载springmvc配置,根据url分发请求 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  
</web-app>
 <context:component-scan base-package="com.imooc.controller"></context:component-scan>
 
 <!-- jsp的view解析,返回的view名称不用再写.jsp -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

RESTful风格

  <filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

SpringMVC数据绑定

SpringMVC拦截器和过滤器

SpringMVC拦截器和过滤器的区别

拦截器

<!-- 拦截器的注册 -->
    <mvc:interceptors>

        <mvc:interceptor>
            <mvc:mapping path="/user/**"/>
            <bean class="com.imooc.core.LogInterceptor"></bean>
        </mvc:interceptor>

        <mvc:interceptor>
            <!--<mvc:mapping path="/user/search"/>
            <mvc:mapping path="/user/updatepwd"/>
            <mvc:mapping path="/user/updateheaderPic"/>-->
            <!--<mvc:mapping path="/user/*"></mvc:mapping>-->
            <!--包含子结构用**通配符-->
            <mvc:mapping path="/user/**"></mvc:mapping> 
            <!--exclude-mapping在所有拦截中进行排除,一般在通配符会有意义。-->
            <mvc:exclude-mapping path="/user/updatepwd"></mvc:exclude-mapping>
            <mvc:exclude-mapping path="/user/updatebackground/*"></mvc:exclude-mapping>
            <bean class="com.imooc.core.LoginInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

关于我:

linxinzhe,全栈工程师,目前供职于某500强通信企业。人工智能,区块链爱好者。

GitHub:https://github.com/linxinzhe

欢迎留言讨论,也欢迎关注我~
我也会关注你的哦!

上一篇 下一篇

猜你喜欢

热点阅读