【JavaWeb笔记】Servlet入门—获取参数

怎么把前端用户输入的信息成功获取到后台呢?

前端页面

比如我们现在有一个获取信息的前端表单(注: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 方法,执行

运行结果

点击添加,我们就可以在后台看到相应的输出了

经验分享 程序员 微信小程序 职场和发展