springmvc教程-第一个工程(idea)

创建工程

然后点击 Finish

创建工程过慢的解决方法

采用这种方式,maven会下载一些文件,由于一些原因,下载速度过慢,解决方法如下:

添加: archetypeCatalog = internal

创建成功,工程目录

缺失一些目录

maven工程,有其固定的目录结构,如:java 、resource 等,但是创建的工程里没有,需要创建

创建java目录

创建resource目录

最终目录结构

修改pom.xml

将下面部分修改成 1.8

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

添加依赖

添加spring版本属性:

<properties>
  <spring.version>5.0.5.RELEASE</spring.version>
</properties>

添加依赖:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring.version}</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>${spring.version}</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${spring.version}</version>
</dependency>
<!--J2EE-->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.0</version>
</dependency>

右键 pom.xml -> maven -> reimport 导入依赖

创建 springMVC.xml

springmvc工程是需要配置文件的

在弹出的窗口输入:springMVC.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
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

</beans>

修改web.xml

完全替换下面代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
  <display-name>Archetype Created Web Application</display-name>
  <!--配置springmvc DispatcherServlet-->
  <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 -->
    <load-on-startup>1</load-on-startup>
    <!-- servlet3新特性,servlet支持异步,提升性能 -->
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- 编码过滤器,UTF8编码 -->
  <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>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

</web-app>

DispatcherServlet 配置说明:

  • 使用 spring mvc,需要配置 org.springframework.web.servlet.DispatcherServlet 前端控制器,这是核心功能

  • classpath:springMVC.xml:表示加载 类路径下的 springMVC.xml配置文件,跟spring mvc相关的功能,都在该配置文件中

  • <load-on-startup>1</load-on-startup>,servlet容器启动后,就加载该servlet。如果不加该标签,是第一次访问该 servlet 时,才会加载,也就是说第一次访问时,速度较慢

  • <async-supported>true</async-supported> ,servlet3新特性,servlet支持异步,提升性能

  • <url-pattern>/</url-pattern>:所有的访问都会交给该servlet

CharacterEncodingFilter 配置说明: spring提供的编码过滤器


原文出处:/show_1IX4URICj3n.html