zoukankan      html  css  js  c++  java
  • SpringMVC基础配置

    SpringMVC是用步骤:
                - 加入 jar 包
                – 在 web.xml 中配置 DispatcherServlet
                – 加入 Spring MVC 的配置文件
                – 编写处理请求的处理器,并标识为处理器
                – 编写视图

    SpringMVC具体使用步骤:
    1、在eclipse中创建一个动态web项目;
    1、导入jar包(springMVC相关);
                –commons-logging-1.1.3.jar
                –spring-aop-4.0.0.RELEASE.jar
                –spring-beans-4.0.0.RELEASE.jar
                –spring-context-4.0.0.RELEASE.jar
                –spring-core-4.0.0.RELEASE.jar
                –spring-expression-4.0.0.RELEASE.jar
                –spring-web-4.0.0.RELEASE.jar
                –spring-webmvc-4.0.0.RELEASE.jar
    2、配置核心控制器(DispatcherServlet);(在web-xml文件中配置)(是用springMVC代替了前面讲解的servlet)
    (Alt+/选择倒数第二个dispatcherservlet)

    <!-- 前端控制器(直接面向前端,页面的请求可以发送至此) -->
        <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
        <!-- 导入jar包后。将包中springMVC的起始类(总控制类)配置到服务器,让服务器知晓有springMVC,以便今后使用 -->
        <!-- 向服务器注册前端控制器 -->
        <!-- 凡是配置于此(web.xml)的均是单例的 -->
        <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <!-- DispatcherServlet指的是SpringMVC的前端配置器(指的是将SpringMVC前端配置上了),全类名给服务器使用,创建 servlet对象-->
            <!-- DispatcherServlet是单例的 -->
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 初始化参数contextConfigLocation用于指定SpringMVC配置文件的路径以及名称 -->
            <!-- 设置springMVC自己的配置文件的位置和名称 -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
                <!-- classpath指的是src文件,此处表示将springMVC配置文件放在src文件下的springmvc.xml文件中 -->
            </init-param>
            <!-- 数字0或者大于0的数字表示的是:在服务器启动的时候创建Servlet对象,而不是第一次访问时创建
                小于0的数字表示:在第一次访问的时候穿件Servlet对象,
                在数字大于0的情况下,数字越小,优先级越高!
             -->
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <!-- Map all requests to the DispatcherServlet for handling -->
        <!-- 用servlet-mapping指定请求映射的路径 -->
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <!-- 用url-pattern指定拦截的请求路径 -->
            <url-pattern>/</url-pattern><!-- REST要求简洁,此处不建议使用*。action(可能会报错) -->
        </servlet-mapping>
    web.xml相关配置
    1 <init-param>
    2     <param-name>contextConfigLocation</param-name>
    3     <param-value>classpath:springmvc.xml</param-value>
    4     <!-- classpath指的是src文件,此处表示将springMVC配置文件放在src文件下的springmvc.xml文件中 -->
    5 </init-param>
    6 此处若未配置,即当我们不用init-param指定springMVC配置文件的路径好位置的时候,SpringMVC默认会去
    7             /WEB-INF/<servlet-name>-servlet.xml
    8          (在<servlet-name>对应名称后加-servlet,此时将springmvc.xml中的内容改写到<servlet-name>-servlet.xml中)
    web.xml配置补充
     1 <!--针对POST请求乱码的处理:通过过滤器,配置编码格式为utf8-->
     2 <filter><!-- 过滤器设置编码,一般放前端控制器配置文件后面 -->
     3         <filter-name>CharacterEncodingFilter</filter-name>
     4         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
     5         <init-param>
     6             <param-name>encoding</param-name>
     7             <param-value>utf8</param-value>
     8         </init-param>
     9     </filter>
    10     <filter-mapping>
    11         <filter-name>CharacterEncodingFilter</filter-name>
    12         <url-pattern>/*</url-pattern>
    13     </filter-mapping>
    14     
    15 
    16 <!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为put请求和delete请求! -->
    17     <filter>
    18         <filter-name>hiddenHttpMethodFilter</filter-name>
    19         <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    20     </filter>
    21     <filter-mapping>
    22         <filter-name>hiddenHttpMethodFilter</filter-name>
    23         <url-pattern>/*</url-pattern>
    24     </filter-mapping>
    web.xml中一些常用配置:1、请求乱码处理;2、PUT请求、DELECT请求

    3、创建springMVC配置文件:
        1)、文件名对应web.xml初始化处的文件名;
        2)、使用Spring Bean Configuration File 创建的,不是XML!
    选中beans、context、mvc三个选项,点击Next,Finish,则文件创建完成。

    4、配置springMVC配置文件:(文件左上角有S标识表示类已加入容器)
        1)、在springmvc.xml中配置SpringMVC容器要扫描的包:(com.neuedu.controller为包名)
                <context:component-scan base-package="com.neuedu.controller"></context:component-scan>
        2)、在com.neuedu.controller包下添加(控制器类)类如AController,注意加入@Controller注解。
        只要在类窗口前添加@Controller注解,则包下的类便加入了springMVC容器,在容器中生成了一个对象(默认的)(springmvc.xml视为一个容器,相当于一个Map)
        其中Map的键为类的首字母小写(如aController),值为类的一个对象

     1 <context:component-scan base-package="com.neuedu"></context:component-scan>
     2             <!--InternalResourceViewResolvers 是视图解析器 ,它会将逻辑视图转换成实际的物理视图,做一个转发操作!
     3             也就是说具体步骤:prefix +  方法的返回值  + suffix-->
     4         <!-- 当返回值为/WEB-INF/views/success.jsp,可写为success -->
     5             <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     6                 <property name="prefix" value="/WEB-INF/views/"></property>
     7                 <property name="suffix" value=".jsp"></property>
     8             </bean>
     9 
    10         <!--可视为springMVC标配文件-->
    11     <mvc:default-servlet-handler/>
    12     <mvc:annotation-driven></mvc:annotation-driven>
    springmvc.xml 的常用配置

    5、在类中(如AController)添加方法使用springMVC
        1)、在类的方法上使用@RequestMapping注解,在括号里指定请求url的请求路径!

     1  /*
     2          * 我们通过@RequestMapping做映射请求
     3          * @return
     4          */
     5          //括号内路径默认对应value值(即value="/sayHello")
     6          //()内为多个属性时,value不可省略
     7         @RequestMapping("/sayHello")
     8         public String sayHellolo() {
     9             return "/WEB-INF/view/success.jsp";//通过返回值转发到success.jsp页面
    10         }

            请求路径名不必和方法名一致,但需和页面中的请求路径名一致。
        2)、创建index.jsp 文件(创建页面):  

     <a href="${pageContext.request.contextPath}/sayHello">测试Say Hello!</a>

     **若想将springmvc.xml单独放一个文件内,可点击选择source Folder创建文件,其相当于动态web项目中的src。

  • 相关阅读:
    软件架构入门
    深入理解JSCore
    原生开发小程序 和 wepy 、 mpvue, Taro 对比
    安装淘宝npm(cnpm)
    CSS预处理器—Sass、LESS和Stylus
    PHP和java比较
    DevOps 在公司项目中的实践落地
    Facebook的React Native之所以能打败谷歌的原因有7个(ReactNative vs Flutter)
    Android 9.0新特性
    主流前端框架对比:Vue.js , React, Angular.js
  • 原文地址:https://www.cnblogs.com/kangxingyue-210/p/7406448.html
Copyright © 2011-2022 走看看