首页 > 编程语言 >Java 新手如何使用Spring MVC 中的查询字符串和查询参数?

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?

时间:2023-10-18 17:01:42浏览次数:36  
标签:Java Spring calculator springframework 查询 import org geeksforgeeks

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_字符串

根据维基百科的说法,“查询字符串是统一资源定位符(URL)的一部分,它为指定的参数分配值。查询字符串通常包括由 Web 浏览器或其他客户端应用程序添加到基本 URL 的字段,例如作为 HTML 的一部分、选择页面的外观或跳转到多媒体内容中的位置。让我们通过一个例子来简单地理解这个说法。假设您在互联网上填写了一份表格,并且您注意到 URL 如下所示:  

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

所以在上面的URL中,查询字符串就是问号(“?”)后面的任何内容,即(“number1=23&number2=12”)这部分。其中“number1=23”、“number2=12”是查询参数,由连接符“&”连接。 

让我们考虑另一个 URL,如下所示: 

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

所以在上面的URL中,查询字符串是“title=Query_string&action=edit”这部分。“title=Query_string”、“action=edit”是由连接器“&”连接的查询参数。 

在本文中,我们将从 Spring MVC 的角度讨论查询字符串和查询参数的概念。我们将开发一个简单的 MVC 应用程序,并将了解如何生成查询字符串和查询参数。 

第 1 步:

我们将在该项目中使用 Spring Tool Suite 4 IDE。转到STS IDE,然后创建一个新的maven项目,File > New > Maven Project,然后选择以下原型,如下图所示:  

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_query_02

 

步骤2:

将以下maven依赖项和插件添加到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>

以下是添加这些依赖项后 pom.xml 文件的完整代码。

文件:pom.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>

第 3 步:

配置调度程序 Servlet

让我们先看一下下图中的文件结构。 

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_spring_03

 

因此,首先创建一个src/main/java文件夹,并在该文件夹中创建一个名为CalculatorAppIntilizer的类,并将其放入com.geeksforgeeks.calculator.config包中,并扩展AbstractAnnotationConfigDispatcherServletInitializer类。参考下图如下: 

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_url_04

 

每当您扩展此类时,它都有一些我们需要提供实现的预抽象方法。现在在这个类中,我们只需编写两行代码来配置 Dispatcher Servlet。在此之前,我们必须为 Spring 配置文件创建另一个类。

因此,转到src/main/java文件夹,并在该文件夹内创建一个名为CalculatorAppConfig的类,并将其放入com.geeksforgeeks.calculator.config包中。

文件: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 {}

以下是CalculatorAppIntilizer.java文件的完整代码。


文件:CalculatorAppIntilizer.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[] = { "/demo.org/*" }; 
		return arr; 
	} 
}

第四步:

设置ViewResolver

Spring MVC 是一个用于构建 Web 应用程序的 Web MVC 框架。一般来说,所有 MVC 框架都提供了一种使用视图的方法。Spring 通过 ViewResolvers 来实现这一点,它使您能够在浏览器中渲染模型,而无需将实现与特定的视图技术绑定。在这里阅读更多内容:Spring MVC 中的 ViewResolver。因此,为了设置 ViewResolver,请转到CalculatorAppConfig.java文件并写下如下代码: 

@Bean
public InternalResourceViewResolver viewResolver() {

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

下面是编写设置 ViewResolver 的代码后 CalculatorAppConfig.java文件的更新代码。

文件:更新的CalculatorAppConfig.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; 
	} 
}

第5步:

创建控制器 

转到src/main/java文件夹,并在该文件夹内创建一个名为AppController的类,并将其放入“com.geeksforgeeks.calculator.controllers”包中。 

文件: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";
    }
}

第 6 步:

创建视图

现在我们必须在WEB-INF/view文件夹中创建一个名为“ welcome-page ”的视图,扩展名为.jsp。因此,转到src > main > webapp > WEB-INF并创建一个文件夹视图,并在该文件夹内创建一个名为welcome-page的jsp 文件下面是welcome-page.jsp文件的代码。 

文件:welcome-page.jsp

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

视图看起来像这样 

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_java_05

 

第 7 步:

运行您的应用程序

现在我们的项目已准备好运行。因此,让我们测试我们的应用程序并了解查询字符串的概念。要运行我们的 Spring MVC 应用程序,请右键单击您的项目 > 运行方式 > 在服务器上运行。并如下图所示运行您的应用程序,如下图所示:  

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_字符串_06

 

之后使用以下 URL 运行您的控制器

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

输出:

Java 新手如何使用Spring MVC 中的查询字符串和查询参数?_字符串_07

 

现在,让我们在标签中输入一些值,然后单击“计算”按钮。假设我们在这里输入了 23 和 45,每当我们单击“计算”按钮时,就会生成一个 URL,如下所示:

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

这是因为在welcome-page.jsp文件中写入了这一行“<form actinotallow=”process-homepage” method=”get”>”。现在让我们深入了解这个 URL。正如我们之前讨论的,“number1=23&number2=45”是查询字符串,“number1=23”是查询参数。下面是对上面网址的详细分析

元素

意义

http

协议

localhost

服务器

8080

端口号

/simple-calculator/demo.org/process-homepage

资源地址

number1=23&number2=45

请求参数


标识符

number1=23, number2=45

查询参数

&

连接器

这就是 Spring MVC 应用程序中生成查询字符串和查询参数的方式。 

标签:Java,Spring,calculator,springframework,查询,import,org,geeksforgeeks
From: https://blog.51cto.com/demo007x/7908209

相关文章

  • Spring Boot中的过滤器、拦截器、监听器技巧汇总:让你快速成为大神
    ......
  • springboot 打 war 包后的访问路径
    http://laremehpe.eu.org:9090/api/access/time 域名:http://laremehpe.eu.org端口号:9090访问路径:/api/access/time/api是tomcat解压后文件夹名称/access是类上的路径名称(@RequestMapping)/time是方法上的路径名称(@RequestMapping) 这里的9090指的是访问服务器的9090......
  • Spring MVC,Mybatis常见问题
    如果您面试一个只做过SpringMVC+MyBatis项目的候选人,您可能会问一些问题来评估其在这两个技术上的了解和经验。以下是一些可能的问题及其答案:什么是SpringMVC和MyBatis?它们在项目中的作用是什么?答:SpringMVC是一个基于Spring框架的用于构建Web应用程序的模块,它使用MVC(Model-......
  • JAVA IO 详细介绍
                  ......
  • SQL语句的基本使用5-多值子查询
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13074这个作业的目标SQL语句的基本使用5-多值子查询1.在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日......
  • 【JAVA】cron定时怎么记 ss mi hh DD MM 星期 YY
      ......
  • spring setter注入
     <!--对象类型1-->  <propertyname="user">   <props>     <propkey="">dddd</prop>   </props>  </property>   <!--对象类型2-->   <propertyname="user"ref="st......
  • JavaScript高级程序设计(第3版)pdf电子版Nicholas C. Zakas
    JavaScript高级程序设计(第3版)pdf电子版作者:[美]NicholasC.Zakas原作名:ProfessionalJavaScriptforWeb出版年:2012-3-29ISBN:9787115275790链接提取码:jz6rJavaScript最基础的书籍。......
  • Java 设计模式之七大原则
    Java设计模式之七大原则|Drunkbaby'sBlog(drun1baby.top)1、认识设计模式1.1什么是设计模式所谓设计模式,就是对经常出现的软件设计问题的成熟解决方案。很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。笔者见过一些学员喜欢抱着一......
  • SpringBoot 注解小记
    用于入口类的注解SpringBootApplication标识该类是入口ComponentScan表示扫描入口类同级和所有子包下的Component我们也可以使用ComponentScan("Com.XXXX")自定义扫描路径用于类的注解@Component,@Service,@Repository,@Controller四个注解用于类上,后三个实质上都是Compon......