¿Conoce el marco SpringMVC más popular? ¿Cómo construirlo?

¿Conoce el marco SpringMVC más popular? ¿Cómo construirlo?
Spring MVC es un miembro web de la familia Spring. Es un marco web ligero basado en Java, impulsado por solicitudes que implementa las ideas de diseño de Web MVC. Es decir, utiliza la idea del patrón de arquitectura MVC para resolver las responsabilidades de la capa web. Acoplamiento, impulsado por solicitudes se refiere al uso del modelo de solicitud-respuesta, el propósito del marco es ayudarnos a simplificar el desarrollo, Spring MVC también es simplificar nuestro desarrollo web diario.

Spring MVC es la realización de la idea de servir a los trabajadores. El controlador frontal es DispatcherServlet; el controlador de la aplicación se desensambla en Handler Mapping para la administración del procesador y View Resolver para la administración de la vista; admite la resolución de localización / internacionalización (Locale) y carga de archivos, etc .; Proporciona un mecanismo de vinculación de datos , formato y verificación de datos muy flexible ; proporciona un potente soporte de programación de contratos que es mayor que la configuración (primer principio de la convención).

Cómo se construye SpringMVC

  1. Configuración del entorno de desarrollo
  2. Nueva aplicación web Maven
  3. Dependencia del paquete jar del entorno Springmvc
  4. Configurar web.xml (configuración del controlador frontal)
  5. configuración de servlet-context.xml
  6. Escribiendo el controlador de página
  7. Agregar página de vista
  8. Iniciar servidor de embarcadero

Práctica de caso

Configuración del entorno de desarrollo

Eclipse + jdk1.7 + maven + embarcadero

Nueva aplicación web Maven

Establezca el proyecto springmvc01 y ajuste el entorno web.

Dependencia del paquete jar del entorno Springmvc

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xxx</groupId>
    <artifactId>springmvc01</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>springmvc01 Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- spring web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <!-- spring mvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <!-- web servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
        </dependency>
    </dependencies>
    <!-- jetty 插件 -->
    <build>
    <finalName>springmvc01</finalName>
    <resources>
    <resource>
    <directory>src/main/resources</directory>
    </resource>
    </resources>
    <plugins>
        <!-- 编译环境插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.25</version>
            <configuration>
            <scanIntervalSeconds>10</scanIntervalSeconds>
            <contextPath>/springmvc01</contextPath>
            </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Configurar web.xml (configuración del controlador frontal)

<?xml version="1.0" encoding="UTF-8"?> 

<web-app id="WebApp_ID" version="3.0" 

    xmlns="http://java.sun.com/xml/ns/javaee"  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  

    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  

    <!-- 表示容器启动时 加载上下文配置 这里指定 spring 相关配置 --> 

    <context-param> 

        <param-name>contextConfigLocation</param-name> 

        <param-value>classpath:*.xml</param-value> 

    </context-param> 


    <!-- 启用 spring 容器环境上下文监听 --> 

    <listener> 

    	<listener class>org.springframework.web.context.ContextLoaderListener</listener-class> 

    </listener> 

    <!-- 编码过滤 utf-8 --> 

    <filter> 

        <description>char encoding filter</description> 

        <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> 

    <!-- servlet 请求分发器 -->  

    <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:servlet-context.xml</param-value> 

        </init-param> 

        <!-- 表示启动容器时初始化该 Servlet --> 

        <load-on-startup>1</load-on-startup> 

    </servlet> 

    <servlet-mapping> 

        <servlet-name>springMvc</servlet-name> 

        <!-- 这是拦截请求, /代表拦截所有请求,拦截所有.do 请求 --> 

        <url-pattern>/</url-pattern> 

    </servlet-mapping> 

</web-app>  

Para iniciar nuestro entorno springMvc, aún no se ha realizado la configuración del framework mvc. Se hace referencia al archivo servlet-context.xml en web.xml anterior.

configuración de servlet-context.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:aop="http://www.springframework.org/schema/aop"  
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="  
        http://www.springframework.org/schema/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc.xsd  
        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/aop  
        http://www.springframework.org/schema/aop/spring-aop.xsd 
        http://www.springframework.org/schema/tx  
        http://www.springframework.org/schema/tx/spring-tx.xsd">  

    <!-- 扫描 com.xxx.controller 下包 --> 

    <context:component-scan base-package="com.xxx.controller" />  

    <!-- mvc 请求映射 处理器与适配器配置--> 

    <mvc:annotation-driven/>  

    <!--配置视图解析器 默认的视图解析器- --> 

    <bean id="defaultViewResolver" 

        class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

        <property name="viewClass"  

        value="org.springframework.web.servlet.view.JstlView" /> 

        <property name="contentType" value="text/html" /> 

        <property name="prefix" value="/WEB-INF/jsp/" /> 

        <property name="suffix" value=".jsp" /> 

    </bean> 

</beans> 

Si devuelve caracteres confusos: configure el conversor de mensajes

<!-- 消息转换器 --> 

<mvc:message-converters register-defaults="true"> 

    <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 

   	 	<property name="supportedMediaTypes" value="text/html;charset=UTF-8"/> 

    </bean> 

</mvc:message-converters> 

Escribiendo el controlador de página

/** 

* 采用注解扫描形式 

*/ 

@Controller 

public class HelloController {
    
     

    /** 

    * 请求映射地址 /hello

    * @return 

    */ 

    @RequestMapping("/hello") 

    public ModelAndView hello(){
    
     

        ModelAndView mv=new ModelAndView();  

        mv.addObject("hello", "hello spring mvc"); 

        mv.setViewName("hello"); 

        return mv;  

    } 

} 

Agregar página de vista

Cree una nueva carpeta jsp en WEB-INF y cree un nuevo hello.jsp en File Plus

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 

<% 
String path = request.getContextPath(); 
String basePath =  
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 

    <head> 

        <base href="<%=basePath%>"> 

        <title>My JSP 'hello.jsp' starting page</title> 

        <meta http-equiv="pragma" content="no-cache">

        <meta http-equiv="cache-control" content="no-cache">

        <meta http-equiv="expires" content="0">

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

        <meta http-equiv="description" content="This is my page">

    </head>  

    <body> 

    <!-- el 表达式接收参数值 --> 

    	${hello} 

    </body> 

</html> 

Iniciar servidor de embarcadero

Haga clic con el botón derecho en el proyecto → ejecutar como → compilación maven → objetivos y escriba jetty: ejecutar en el cuadro de entrada para iniciar el servidor.

Si se inicia correctamente, el navegador ( preferiblemente con un navegador Chrome fuerte o Firefox, el favorito del programador) accede a la dirección http: // localhost: 8080 / springmvc01 / hello

Expandir

¿Qué puede hacer Spring MVC por nosotros?

  1. Diseñemos una capa web limpia de manera muy simple;

  2. Desarrolle una capa web más concisa;

  3. Integrado naturalmente con el marco Spring (como contenedor IoC, AOP, etc.);

  4. Brindar un sólido soporte de programación de contratos que sea mayor que la configuración;

  5. Capaz de realizar fácilmente pruebas unitarias de la capa web;

  6. Admite mapeo flexible de URL a controlador de página;

  7. Muy fácil de integrar con otras tecnologías de visualización, como Velocity, FreeMarker, etc., porque los datos del modelo no se colocan en una API específica, sino en un Modelo (la estructura de datos del mapa está implementada, por lo que es fácil de usar por otros marcos);

  8. Mecanismo de enlace de datos, formato y verificación de datos muy flexible, puede utilizar cualquier objeto para el enlace de datos, sin tener que implementar un marco API específico;

  9. Apoyar la localización flexible y otros análisis;

  10. Manejo de excepciones más simple;

  11. Soporte para recursos estáticos;

  12. Apoyar el estilo relajante.

Supongo que te gusta

Origin blog.csdn.net/dirft_lez/article/details/109001019
Recomendado
Clasificación