String de consulta y parámetro de consulta en Spring MVC

Según Wikipedia, “una string de consulta es parte de un localizador uniforme de recursos (URL) que asigna valores a parámetros específicos. Una string de consulta comúnmente incluye campos agregados a una URL base por un navegador web u otra aplicación cliente, por ejemplo, como parte de un HTML, eligiendo la apariencia de una página o saltando a posiciones en contenido multimedia. Entendamos esta afirmación de forma sencilla mediante un ejemplo. Supongamos que ha completado un formulario en Internet y si ha notado que la URL es algo como lo que se muestra a continuación:  

http://internet.org/process-homepage?number1=23&number2=12

Entonces, en la URL anterior, la string de consulta es lo que sigue al signo de interrogación (“?”), es decir, (“número1=23&número2=12”) esta parte. Y “número1=23”, “número2=12” son Parámetros de Consulta que están unidos por un conector “&”. 

Consideremos otra URL como la siguiente: 

http://internet.org?title=Query_string&action=edit

Entonces, en la URL anterior, la string de consulta es “título=string_de_consulta&acción=editar” esta parte. Y “title=Query_string”, “action=edit” son parámetros de consulta que se unen mediante un conector “&”. 

En este artículo, vamos a discutir el concepto de la string de consulta y el parámetro de consulta desde el punto de vista de Spring MVC. Vamos a desarrollar una aplicación MVC simple y comprenderemos cómo se generan las strings de consulta y los parámetros de consulta. 

Implementación

Paso 1: configurar el proyecto

Vamos a utilizar Spring Tool Suite 4 IDE para este proyecto. Consulte este artículo para instalar STS en su máquina local ¿Cómo descargar e instalar Spring Tool Suite (Spring Tools 4 para Eclipse) IDE? Vaya a STS IDE, luego cree un nuevo proyecto maven, Archivo> Nuevo> Proyecto Maven, y elija el siguiente arquetipo como se muestra en la imagen a continuación:  

 

Paso 2: agregue las siguientes dependencias de Maven y el complemento al archivo  pom.xml .

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

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

<!-- plugin -->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

A continuación se muestra el código completo para el archivo pom.xml después de agregar estas dependencias.

Archivo: pom.xml 

XML

<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.geeksforgeeks</groupId>
    <artifactId>simple-calculator</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>simple-calculator Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.18</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>simple-calculator</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Paso 3: Configuración del servlet de despachador

Antes, echemos un vistazo a la estructura del archivo en la imagen de abajo. 

 

Entonces, primero cree una carpeta src/main/java y dentro de esta carpeta cree una clase llamada CalculatorAppIntilizer y colóquela dentro del paquete com.geeksforgeeks.calculator.config y extienda la clase AbstractAnnotationConfigDispatcherServletInitializer . Consulte la siguiente imagen de la siguiente manera: 

 

Y cada vez que extiende esta clase, tiene algunos métodos preabstractos que necesitamos para proporcionar la implementación. Ahora, dentro de esta clase, solo tenemos que escribir dos líneas de código para configurar el servlet de despachador. Antes de eso, tenemos que crear otra clase para el archivo de configuración de Spring. Entonces, vaya a la carpeta src/main/java y dentro de esta carpeta cree una clase llamada CalculatorAppConfig y colóquela dentro del paquete com.geeksforgeeks.calculator.config .

Archivo: CalculatorAppConfig.java

package com.geeksforgeeks.calculator.config;

// Importing required classes 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

// Class 
@Configuration
@ComponentScan(basePackages = "com.geeksforgeeks.calculator.controllers")
public class CalculatorAppConfig {}

Aquí está el código completo para el archivo CalculatorAppIntilizer.java .

Archivo: CalculatorAppIntilizer.java

Java

// Java Program to Illustrate CalculatorAppIntilizer
  
package com.geeksforgeeks.calculator.config;
  
// Importing required classes
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  
// Class
public class CalculatorAppIntilizer
    extends AbstractAnnotationConfigDispatcherServletInitializer {
  
    @Override protected Class<?>[] getRootConfigClasses()
    {
  
        return null;
    }
  
    // Registering the Spring config file
    @Override protected Class<?>[] getServletConfigClasses()
    {
  
        Class aClass[] = { CalculatorAppConfig.class };
        return aClass;
    }
  
    // Adding mapping URL
    @Override protected String[] getServletMappings()
    {
  
        String arr[] = { "/geeksforgeeks.org/*" };
        return arr;
    }
}

Paso 4: Configurar ViewResolver

Spring MVC es un marco Web MVC para crear aplicaciones web. En general, todos los marcos MVC proporcionan una forma de trabajar con vistas. Spring hace eso a través de ViewResolvers, que le permite representar modelos en el navegador sin vincular la implementación a una tecnología de vista específica. Lea más aquí: ViewResolver en Spring MVC . Entonces, para configurar ViewResolver, vaya al archivo CalculatorAppConfig.java y escriba el código que es el siguiente: 

@Bean
public InternalResourceViewResolver viewResolver() {

    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");
    
    return viewResolver;
}

Y debajo está el código actualizado para el archivo CalculatorAppConfig.java después de escribir el código para configurar ViewResolver. 

Archivo: Actualizado CalculatorAppConfig.java

Java

// Java Program to Demonstrate Updated
// Calculator App Configuration
  
package com.geeksforgeeks.calculator.config;
  
// Importing required classes
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
  
// Class
@EnableWebMvc
@Configuration
@ComponentScan(basePackages
               = "com.geeksforgeeks.calculator.controllers")
public class CalculatorAppConfig {
  
    // Setting up ViewResolver
    @Bean public InternalResourceViewResolver viewResolver()
    {
  
        InternalResourceViewResolver viewResolver
            = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");
  
        return viewResolver;
    }
}

Paso 5: Crear controlador 

Vaya a la carpeta src/main/java y dentro de esta carpeta cree una clase llamada AppController y póngala dentro del paquete ‘com.geeksforgeeks.calculator.controllers’

Archivo: archivo AppController.java

// Java Program to Illustrate AppController Class

package com.geeksforgeeks.calculator.controllers;

// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

// Class
@Controller
public class AppController {

    // Method
    @RequestMapping("/home")
    public String showHomePage() 
    {
        return "welcome-page";
    }
}

Paso 6: Crear una vista

Ahora tenemos que crear una vista llamada » página de bienvenida » dentro de la carpeta WEB-INF/view con la extensión .jsp . Así que vaya a src> main> webapp> WEB-INF y cree una vista de carpeta y dentro de esa carpeta cree un archivo jsp llamado página de bienvenida . A continuación se muestra el código para el archivo welcome-page.jsp

Archivo: página de bienvenida.jsp

HTML

<html>
<head>
<title>Hello</title>
</head>
<body>
    <h1 align="center">Simple Calculator Application</h1>
  
    <form action="process-homepage" method="get">
  
        <div align="center">
              
<p>
                <label for="num1">Enter First Number : </label> <input type="text"
                    id="num1" name="number1" />
            </p>
  
              
<p>
                <label for="num2">Enter Second Number : </label> <input type="text"
                    id="num2" name="number2" />
            </p>
  
  
            <input type="submit" value="Calculate" />
  
        </div>
  
    </form>
</body>
</html>

La vista se ve así 

 

Paso 7: Ejecute su aplicación

Ahora nuestro proyecto está listo para ejecutarse. Entonces, probemos nuestra aplicación y entendamos el concepto de string de consulta. Para ejecutar nuestra aplicación Spring MVC, haga clic con el botón derecho en su proyecto > Ejecutar como > Ejecutar en el servidor. Y ejecute su aplicación como se muestra en la imagen a continuación como se muestra a continuación de la siguiente manera:  

 

Después de eso, use la siguiente URL para ejecutar su controlador

http://localhost:8080/simple-calculator/geeksforgeeks.org/home

Producción:

 

Ahora pongamos algunos valores dentro de la etiqueta y hagamos clic en el botón Calcular. Supongamos que aquí hemos puesto 23 y 45 y cada vez que hacemos clic en el botón Calcular se genera una URL como se muestra a continuación:

http://localhost:8080/simple-calculator/geeksforgeeks.org/process-homepage?number1=23&number2=45

Y esto se debe a esta línea “<form action=”process-homepage” method=”get”>” escrita en el archivo welcome-page.jsp . Así que ahora comprendamos esta URL en profundidad. Y como hemos comentado anteriormente aquí, «número1=23&número2=45» es la string de consulta y «número1=23» es el parámetro de consulta . Aquí está el análisis detallado de la URL anterior

Elemento

Sentido

http Protocolo
servidor local Servidor
8080 Número de puerto
/simple-calculator/geeksforgeeks.org/process-homepage Dirección al recurso
número 1 = 23 y número 2 = 45 String de consulta
? identificador
número1=23, número2=45 Parámetro de consulta
& Conector

Así es como se generan las strings de consulta y los parámetros de consulta en la aplicación Spring MVC. 

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *