Controlador y estilo REST

controlador controlador

  • El controlador proporciona acceso a comportamiento de la aplicación compleja, generalmente a través de una definición de interfaz o anotación define dos maneras.

  • El controlador es responsable de analizar la solicitud y convierte a un modelo del usuario.

  • En un controlador Spring MVC métodos de clase pueden comprender una pluralidad de

  • En Spring MVC, hay muchas maneras de configurar el controlador

Se recomienda usar el anotada y conveniente.

razón

Los métodos convencionales, implementar el controlador de la interfaz, para configurar el bean perfil primavera, frijol y un camino que corresponde a una petición, si hay cientos de elementos de solicitud de la interfaz, que necesitaría cientos de clases y dispuestos en el perfil de resorte.

De hecho, @ Controlador, Componente @, @ repositorio, @ Servicio, donde son funcionalmente equivalentes, pero para todas las ocasiones, las anotaciones utilizadas en diferentes lugares. Controller con una capa de control de servicio, la capa de negocio, las operaciones de base de datos de capa repositorio, componente a componente, tal como una clase de utilidad hablando vierte en un recipiente.

Código (notas de Desarrollo)

1. Asignar web.xml

<!--配置dispatchservlet,这是springmvc的核心:请求分发器,或者前端控制器-->
<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--绑定spring的配置文件-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <!--启动级别-->
    <load-on-startup>1</load-on-startup>
</servlet>
<!--在springmvc中,/和/*
    /只匹配所有的请求,不会匹配jsp
    /*匹配所有的请求,且匹配jsp-->
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

2. Crear un archivo de configuración de primavera-SpringMVC servlet.xml, que recordará a las restricciones de importación y espacios de nombres.

<!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
<context:component-scan base-package="com.sh.controller"/>
<!-- 让Spring MVC不处理静态资源  .css .js .html .mp3 .mp4-->
<mvc:default-servlet-handler />
<!--
            支持mvc注解驱动
            在spring中一般采用@RequestMapping注解来完成映射关系
            要想使@RequestMapping注解生效
            必须向上下文中注册DefaultAnnotationHandlerMapping
            和一个AnnotationMethodHandlerAdapter实例
            这两个实例分别在类级别和方法级别处理。
            而annotation-driven配置帮助我们自动完成上述两个实例的注入。
            -->
<mvc:annotation-driven />
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
    <!-- 前缀 -->
    <property name="prefix" value="/WEB-INF/jsp/" />
    <!-- 后缀 -->
    <property name="suffix" value=".jsp" />
</bean>

3. Escribir Interfaz

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${msg}
</body>
</html>

4. controlador de escritura

/**
 * @author: songhui
 * @create: 2020-04-08 10:49
 */
@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String test(Model model){
        model.addAttribute("msg","hello ,springmvc");
        return "test";
    }

}

5. Resultados de las pruebas

QQ pantalla 20200408113810.png

De hecho en comparación con definición de la interfaz, el código real para reducir mucho, pero la interfaz aumentó, muy molesto. Por lo cual el extremo delantero de un nuevo patrón de desarrollo surgió separó, frente página de control de salto, y el enlace de datos de interfaz de usuario, el extremo posterior del extremo frontal proporciona una interfaz de datos, para evitar el desarrollo del servicio, mientras que el extremo posterior de la página de control de salto.

RequestMapping

@RequestMapping url anotación a un controlador para el mapeo de un método de clase o manipulador particular. Se puede utilizar para la clase o método. Para la clase, todos los métodos en respuesta a la petición de clase están representadas en la dirección como la ruta de los padres.

estilo ResultFul

concepto de estilo de descanso es una ubicación de recursos y recursos operaciones. No estándar de protocolo no es sólo un estilo. Sobre la base de este tipo de software puede ser más conciso, más estructurada y fácil de implementar mecanismos de caché.
recursos funcionales: todos los recursos de Internet las cosas se pueden abstraer como recursos: Uso de la POST, DELETE, PUT, GET, el uso de diferentes métodos para manipular los recursos. Respectivamente, añadir, borrar, modificar, consulta.

La forma tradicional de operar recursos : para lograr diferentes efectos de diferentes parámetros! Un método único, correos y get

  • http://127.0.0.1/item/queryItem.action?id=1 consulta, GET

  • http://127.0.0.1/item/saveItem.action nueva, POST

  • actualización http://127.0.0.1/item/updateItem.action, POST

  • http://127.0.0.1/item/deleteItem.acti en? id = 1 deleción, GET o POST

    ** ** recurso operación utilizando REST: diferentes efectos se puede lograr mediante solicitud diferente! De la siguiente manera: como petición de dirección, pero la función puede ser diferente

  • http://127.0.0.1/item/1 consulta, GET

  • Nueva http://127.0.0.1/item, POST

  • http://127.0.0.1/item actualización, PUT

  • http://127.0.0.1/item/1 Borrar, Borrar

Los cambios de parámetros

tradicional

@RequestMapping("/add")
public String test(int a,int b, Model model){
    int res=a+b;
    model.addAttribute("msg","结果为"+res);
    return "test";
}

resultado

QQ pantalla 20200408121253.png

estilo reparador

@RequestMapping("/add/{a}/{b}")
public String test(@PathVariable("a") int a,@PathVariable("b") int b, Model model){
    int res=a+b;
    model.addAttribute("msg","结果为"+res);
    return "test";
}

resultado

QQ pantalla 20200408121253.png

Las diferencias en la forma en que las solicitudes

solicitud de cambio de modo de

@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.DELETE)

QQ pantalla 20200408122012.png

Debido a que el navegador es conseguir no está permitido método de la petición de entrada.

Además, señala que hay otra forma de formulario de solicitud

  • GetMapping

  • PostMapping

  • DeleteMapping

  • PutMapping

    Método de petición y solicitar direcciones no pueden ser exactamente el mismo, de lo contrario, el error

beneficio

  • estilo de descanso a los parámetros de exposición Evita

  • sucinto

  • ) soportes eficiente (caching

Publicó un artículo original · ganado elogios 0 · Vistas 6

Supongo que te gusta

Origin blog.csdn.net/weixin_43624399/article/details/105387623
Recomendado
Clasificación