目录

前言:

网页存放的位置:

编辑

所需要的依赖:

spring.xml的配置:

spring.xml的详细讲解:

web.xml的配置:

web.xml的详细讲解:

访问网页的方式:  


前言:

本篇博客是记录如何配置mvc,所需要的工具是ideal。会详细介绍spring.xml,web.xml配置中的内容。老规矩,我会先把完整的配置代码放上去,在进行讲解,不想看的直接用,想看的跟着学。。

网页存放的位置:

在webapp的WEB-INF下面,在WEB-INF下面的文件更加的安全,但是不能单纯的在浏览器输入url来访问了。所以需要新的访问方式

所需要的依赖:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.2.8.RELEASE</version>
</dependency>

spring.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--包的扫描-->
    <context:component-scan base-package="com.blb.mvc"></context:component-scan>

    <!--配置视图解析器 index ===> /WEB-INF/pages/index.jsp -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--配置前缀 存放页面目录的相对路径-->
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <!--配置后缀名-->
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!--配置静态资源的处理器-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>
    <!--配置转换器-->
    <bean id="myConversionSerivce" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean id="studentConverter" class="com.blb.mvc.converter.StudentConverter"></bean>
            </list>
        </property>
    </bean>
    <!--配置注解驱动-->
    <mvc:annotation-driven conversion-service="myConversionSerivce"></mvc:annotation-driven>
</beans>

spring.xml的详细讲解:

<!--扫描包-->用于扫描comdmdd.mvc下的所有配置了注解的类,将这些类转换为bean存入xml中。 <context:component-scan base-package="com.dmdd.mvc"></context:component-scan><!--视图解析器 帮助查找视图文件的位置 index 转换为 /WEB-INF/pages/index.jsp --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置视图的前缀--> <property name="prefix" value="/WEB-INF/pages/"></property> <!--配置视图的后缀--> <property name="suffix" value=".jsp"></property> </bean>

我们通过如下形式来访问网页。

//配置请求的URL路径/index,请求方法是GET @RequestMapping(value = "/index", method = RequestMethod.GET) public ModelAndView toIndex() { //视图解析器 : index --> /WEB-INF/page/index.jsp return new ModelAndView("index"); }

我们只需要在网页中输入注解的value,就会在底层通过一系列复杂的操作调用视图解析器。

作用就是将value拼接成 /WEB-INF/pages/index.jsp



<!--配置静态资源的处理器-->html css 页面的样式这些静态资源只有配置了这个才不会拦截 <mvc:default-servlet-handler></mvc:default-servlet-handler>

web.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">
  <display-name>Archetype Created Web Application</display-name>

  <!--配置前端控制器-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <!--配置文件的位置-->
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring.xml</param-value>
    </init-param>
    <!--配置启动顺序 负数或不配置表示当servlet第一次被访问时创建 0或正数表示服务器启动后自动创建 值越小越早启动-->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!--控制器映射 /代表处理所有请求-->
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--编码过滤器-->
  <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>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

web.xml的详细讲解:

<!--配置前端控制器-->
<servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <!--配置文件的位置-->读取spring.xml的信息
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring.xml</param-value>
  </init-param>
  <!--配置启动顺序 负数或不配置表示当servlet第一次被访问时创建 0或正数表示服务器启动后自动创建 值越小越早启动-->
  <load-on-startup>1</load-on-startup>
</servlet><!--控制器映射 /代表处理所有请求-->通过mapping找到当前xml的<servlet>
<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

访问网页的方式:  

//配置请求的URL路径/index,请求方法是GET
    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public ModelAndView toIndex() {
        //视图解析器 : index --> /WEB-INF/page/index.jsp
        return new ModelAndView("index");
    }