怎么把前端用户输入的信息成功获取到后台呢?
目录
前端页面
比如我们现在有一个获取信息的前端表单(注:HTML 文件必须与 WEB-INF 同级)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<form action="addSer" method = "post">
名称:<input type="text" name = "fname"><br/>
价格:<input type="text" name = "price"><br/>
库存:<input type="text" name = "fcount"><br/>
备注:<input type="text" name = "remark"><br/>
<input type="submit" value = "添加">
</form>
</body>
</html>
当我们点击添加按钮时,表单的数据就会被提交到后台
重写doPost方法
我们首先需要部署 Tomcat 服务器的相关 jar 包
File ——> Project Structure
一定要选择你想部署的 Model ,比如本文我想部署到 JavaWebCode 这个 model 下
点击加号,选择 Library,在 Library 下选择 Tomcat
按照以上路径即可完成相关 jar 包的部署
接下来就可以重写 doPost 方法了,为什么要重写这个方法呢,因为在 HTML 页面,我们选择用 post 方法来接收参数,所以我们才要重写此方法
此 Java 文件需要写在 src 下
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class AddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fname = request.getParameter("fname");
String priceStr = request.getParameter("price");
Integer price = Integer.parseInt(priceStr);
String fcountStr = request.getParameter("fcount");
Integer fcount = Integer.parseInt(fcountStr);
String remark = request.getParameter("remark");
System.out.println("fname = " + fname);
System.out.println("price = " + price);
System.out.println("fcount = " + fcount);
System.out.println("remark = " + remark);
}
}
添加配置信息
在 WEB-INF 下有一个 web.xml,我们需要在里面指明,form action="addSer" 中的 addSer 就是连接到的 AddServlet 方法
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>com.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/addSer</url-pattern>
</servlet-mapping>
</web-app>
我们来解释一下 XML 文件中的信息,我们添加的是 servlet 和 servlet-mapping 模块
servlet 中的 servlet-name 指的是我们重写 doPost 方法对应的类,servlet-class 是这个类的位置,从 src 下一级为起始
servlet-mapping 中的 servlet-name 也是我们重写 doPost 方法对应的类,url-pattern 则是我们链接的名称
从下往上看,我们的思路就是前端找到 addSer, addSer 连接到 AddServlet ,AddServlet 的位置在 com.AddServlet,在 Java 文件中找到重写的 doPost 方法,执行
运行结果
点击添加,我们就可以在后台看到相应的输出了