广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringMVC解析post请求参数详解
  • 625
分享到

SpringMVC解析post请求参数详解

2024-04-02 19:04:59 625人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录springMVC一,概述二、原理:1.创建fORM表单CSS代码 2.准备Student类3.创建启动类4,创建数据库,表使用JDBC把得到的数据入库5.创建StudentCo

springmvc

一,概述

作用是接受服务器请求并做出响应,是spring的后续产品,使用注解@RestController和@RequestMapping

MVC设计模式

M是model模型,用来封装数据

V是view视图,用来展示数据

C是control控制器,用来控制浏览器如何请求,做出数据响应

好处:提高代码的复用性,松耦合

二、原理:

1.前端控制器DispatcherServlet:当浏览器发送请求成功后,充当调度者的角色,负责调度每个组件

2.处理器映射器HandlerMapping:根据请求的url路径,找到能处理请求的类名和方法名

Url:Http://localhost:8080/abc 在HelloControl类中找到abc()

3.处理器适配器HandlerAdaptor:正式处理业务,并返回结果交给DispatcherServlet

4.视图解析器ViewResolver:找到正确的能展示数据的视图,准备展示数据

5.视图渲染view:展示数据

1.创建form表单

表单form默认提交方式是get,将提交的数据展示在网址上,而post提交方式隐藏了数据在网址上,因此更加的安全,这里使用springMVC来处理post的请求参数


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>学生管理系统</title>
		<link rel="stylesheet" href="../css/form.css"/>
	</head>
	<body>
		<!-- 利用表单,向服务器发送数据,
		默认是get提交,通过method属性修改提交方式
		 action属性,指定提交的位置-->
		<form method="post" action="http://localhost:8080/stu/add">
			<table width="500px" height="300px">
				<tr><td><h2>学生信息管理系统MIS</h2></td></tr>
				<tr><td>姓名:</td></tr>
				<tr><td><input class="a" type="text" placeholder="请输入姓名..." name="name" /></td></tr>	
				<tr><td>年龄:</td></tr>
				<tr><td><input class="a" type="number" placeholder="请输入年龄..." name="age"/></td></tr>
				<tr><td>性别:(单选框)
					<input type="radio" name="sex" value="1" />男
					<input type="radio" name="sex" value="0" />女
				</td></tr>
				<tr><td>爱好:(多选)
					<input type="checkbox" name="hobby" value="ppq" />乒乓球
					<input type="checkbox" name="hobby" value="ps" />爬山
					<input type="checkbox" name="hobby" value="cg" />唱歌
				</td></tr>
				<tr><td>学历:(下拉框)
				<select name="edu">
					<option value="1">本科</option>
					<option value="2">硕士</option>
					<option value="3">博士</option>
					<option value="4">专科</option>
				</select>
				</td></tr>
					<tr><td>入学日期:</td></tr>
					<tr><td><input type="date" name="intime" /></td></tr>
					<tr><td>
						<input type="submit" value="保存"/ >
						<input type="reset" value="取消" />
					</td></tr>
			</table>
		</form>
	</body>
</html>

css代码

css的三种引入方式

1.行内样式:通过style属性引入css样式

例如:<h1 style="width: 20px; height: 10px; color: #FF0000;">行内样式</h1>

一般实际写页面时不提倡,测试的时候可以使用

2,内部样式表

通过<style></style>标签,写在head标签中

例如:<style> .b{ width: 200px; height: 100px; background-color: #FF69B4; } </style>

3,外部样式表

创建.css文件,将css样式写入其中,然后在html文件中引入,使用link标签

例如:href是css文件路径


<link rel="stylesheet" href="../css/form.css"/>`

我这里使用了外部样式表的方式,使css代码和html代码分离,使结构更加清晰




.a{
		width: 300px;
	    height: 40px;
		padding: 5px;
		font-size: 15px;
}


input[type="submit"]{
	    width: 60px;
	    height: 30px;
	    background-color: blue; 
		color: #fff;
		font-size: 15px;
		border-color: blue;
}
input[type="reset"]{
		width: 60px;
		height: 30px;
		background-color:hotpink; 
		color: #fff;
		font-size: 15px;
		border-color: hotpink;
}
body{
	font-size: 20px;
}

在这里插入图片描述

页面还可以用css做得更加美观哦,这里只是为了测试,如果有兴趣还可以自己做得更加好看哦~

2.准备Student类


package cn.tedu.pojo;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Arrays;
import java.util.Date;
//@RequestMapping("find")
//是Model层,用来封装数据,就是一个pojo(封装的属性+get/set)
public class Student {
    //属性(成员变量):变量类型 变量名
    //提交数据的类型  页面上name属性的值
//    public Student find(){
        private String name;
        private Integer age;//避免一些异常,能用引用类型最好使用引用类型
        private Integer sex;
        private String[] hobby;
        private Integer edu;
        //浏览器上提交的日期默认是2021/8/12默认是String类型
        //报错400,需要把String的日期转成Date日期,使用注解 @DateTimeFormat
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date intime;
//    }
// 获取get   set   toString
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
   public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Integer getSex() {
        return sex;
    }
    public void setSex(Integer sex) {
        this.sex = sex;
    }
    public String[] getHobby() {
        return hobby;
    }
    public void setHobby(String[] hobby) {
        this.hobby = hobby;
    }
    public Integer getEdu() {
        return edu;
    }
    public void setEdu(Integer edu) {
        this.edu = edu;
    }
    public Date getIntime() {
        return intime;
    }
    public void setIntime(Date intime) {
        this.intime = intime;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex=" + sex +
                ", hobby=" + Arrays.toString(hobby) +
                ", edu=" + edu +
                ", intime=" + intime +
                '}';
    }
}

3.创建启动类

一般命名为RunApp,位置必须放在所有资源之上的包里

在这里插入图片描述


package cn.tedu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RunApp {
    public static void main(String[] args) {
        SpringApplication.run(RunApp.class);
    }
}

4,创建数据库,表

要与Student类相对应,爱好这一字段是数组类型,而Mysql中没有数组类型,因此使用varchar

注意字符集使用utf-8

在这里插入图片描述

使用JDBC把得到的数据入库

5.创建StudentController类

首先要在pom.xml中导入jar包(工具包)


<!--    添加jdbc的jar包依赖-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>
    </dependencies>

下面是将数据入库的代码


package cn.tedu.controller;
//是controller层,控制层,用来接受请求和给出响应
import cn.tedu.pojo.Student;
import org.springframework.WEB.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Arrays;
@RestController
@RequestMapping("stu")
public class StudentController {
    @RequestMapping("add")
    public Object add(Student s) throws Exception {
        //实现入库insert--jdbc
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取连接
        String url = "jdbc:mysql://localhost:3306/cgb2106";
        Connection conn = DriverManager.getConnection(url, "root", "123456");
        //SQL骨架
            String sql = "insert into tb_student values(null,?,?,?,?,?,?)";
            //获取传输器
            PreparedStatement ps = conn.prepareStatement(sql);
            //给SQL设置值
            ps.setObject(1, s.getName());
            ps.setObject(2, s.getAge());
            ps.setObject(3, s.getSex());
            //s.getHobby())得到一个数组,不能直接入数据库,需要变成串
            ps.setObject(4, Arrays.toString(s.getHobby()));
            ps.setObject(5, s.getEdu());
            ps.setObject(6, s.getIntime());
            //执行SQL
            ps.executeUpdate();//执行增删改的SQL
            System.out.println("数据插入成功");
            return s;
        }
    }

6.测试

运行启动类,执行前端页面,提交表单数据,并在数据库中查看数据入库情况

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: SpringMVC解析post请求参数详解

本文链接: https://www.lsjlt.com/news/133074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringMVC解析post请求参数详解
    目录SpringMVC一,概述二、原理:1.创建form表单css代码 2.准备Student类3.创建启动类4,创建数据库,表使用JDBC把得到的数据入库5.创建StudentCo...
    99+
    2022-11-12
  • SpringMVC请求数据详解讲解
    目录一、RequestMapping注解1、RequestMapping的属性2、RequestMapping的请求参数绑定二、RequestParam注解三、RequestBody...
    99+
    2022-11-13
  • SpringMVC实现获取请求参数方法详解
    目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@RequestHeader5、@CookieValue6、通过POJO获取...
    99+
    2022-11-13
  • POST请求和GET请求怎么传递和接收解析参数
    本篇内容介绍了“POST请求和GET请求怎么传递和接收解析参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-19
  • 详解python requests中的post请求的参数问题
    问题:最新在爬取某站点的时候,发现在post请求当中,参数构造正确却获取不到数据,索性将post的参数urlencode之后放到post请求的url后面变成get请求,结果成功获取到...
    99+
    2022-11-11
  • SpringMVC解析JSON请求数据问题解析
    这几年都在搞前后端分离、RESTful风格,我们项目中也在这样用。前几天有人遇到了解析JSON格式的请求数据的问题,然后说了一下解析的方式,今天就写篇文章简单的分析一下后台对于JSON格式请求数据是怎么解析的。先把例子的代码贴出来:前端&l...
    99+
    2023-05-31
    spring mvc json
  • axios发送post请求springMVC接收不到参数怎么办
    小编给大家分享一下axios发送post请求springMVC接收不到参数怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!axios发送post请求时,出现了参数后台接收不到的情况,分...
    99+
    2022-10-19
  • 解析HTTP请求报文(GET、POST)
    目的: 一个WEB服务器需要解析客户端(浏览器)发来的请求,两种常见的请求方式是GET和POST。 GET的请求格式: GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个""的后面,参数以key=value的形式传递,参...
    99+
    2023-09-02
    http 网络协议 c++ mysql
  • SpringMVC详解如何映射请求数据
    目录1.获取参数值1.说明2.应用实例3.获取http请求消息头2.获取 javabean 形式的数据1.使用场景说明2.应用实例3.使用注意事项3.获取Servlet API1.应...
    99+
    2022-11-13
  • SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验详解
    目录spring boot 常见http get ,post请求参数处理PathVaribale 获取url路径的数据RequestParam 获取请求参数的值注意GET参数校验PO...
    99+
    2022-11-13
  • SpringMVC请求流程源码解析
    目录一、SpringMVC使用1.工程创建2.工程配置3.启动工程二、SpringMVC启动过程1.父容器启动过程2.子容器启动过程(SpringMvc容器)3.九大组件的初始化1....
    99+
    2022-11-13
  • SpringMvc请求处理参数 和 响应数据处理的示例详解
    目录1、请求处理参数1.1 请求参数 @RequestParam1.1.1 不使用 @RequestParam 注解1.1.3 使用 @RequestParam 注解1.2 请求头参...
    99+
    2022-11-13
  • springboot中不能获取post请求参数如何解决?
    这篇文章将为大家详细讲解有关springboot中不能获取post请求参数如何解决?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题描述最近在做微信小程序,用的spring boot做后端,突然发现客户...
    99+
    2023-05-30
  • Filter中获取传递参数方式(解决post请求参数问题)
    目录Filter中获取传递参数1.GET传递2.Post传递XyRequestWrapper类XySecurityFilterFilter中获取传递参数 1. GET 传递 参数可以...
    99+
    2022-11-12
  • Spring MVC请求参数的深入解析
    请求参数解析 客户端请求在handlerMapping中找到对应handler后,将会继续执行DispatchServlet的doPatch()方法。 首先是找到handler对应的...
    99+
    2022-11-12
  • 深入理解SpringMVC参数解析器
    这篇文章主要讲解了“深入理解SpringMVC参数解析器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“深入理解SpringMVC参数解析器”吧!1.参数解析...
    99+
    2022-10-19
  • 关于SpringMVC在Controller层方法的参数解析详解
    目录自定义参数解析器实现效果实现和配置Spring提供解析器一些使用Tricky总结使用版本: spring-boot: 2.1.6.RELEASE sping: 5.1.8.RE...
    99+
    2022-11-12
  • node.js中怎么利用express解析post请求
    node.js中怎么利用express解析post请求,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、www-form-urlencoded...
    99+
    2022-10-19
  • Go语言Http调用之Post请求详解
    目录前言POST 请求小结前言 上篇文章 Go HTTP 调用(上) 介绍了如何进行 HTTP 调用,并通过 GET 请求的例子,讲述了 query 参数和 header 参数如何设...
    99+
    2022-12-15
    Go语言 Post请求 Go Post请求 Go Post
  • 详解Go语言中Get/Post请求测试
    目录gin安装Get请求测试Post请求测试基础语法差不多了,需要开始实践到一下项目,先来web框架gin吧,做一个后端web服务。 在把项目搭建起来的过程中,我也要结合实际的...
    99+
    2022-06-07
    get 详解go语言 GO post请求 go语言 测试 post
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作