一个小玩意

项目结构

image

项目流程

01

image

一个简单的表单页面 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单提交</title>
</head>
<body>
<form action="doPostServlet" method="post" name="myForm">
    <table>
        <tr>
            <td>parm1</td>
            <td><input name="parm1" type="text"></td>
        </tr>
        <tr>
            <td>parm2</td>
            <td><input name="parm2" type="text"></td>
        </tr>
    </table>
    <input type="submit" value="mySubmit">
</form>
</body>
</html>

通过post方法提交name分别parm1、parm2的值至doPostServlet。

02

image

输入内容后点击提交(mySubmit),此时内容将提交至doPostServlet.java进行处理

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;

    @WebServlet("/doPostServlet")
    public class doPostServlet extends HttpServlet {
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            String parm1 = request.getParameter("parm1");
            String parm2 = request.getParameter("parm2");
            System.out.println(parm1);
            System.out.println(parm2);
            request.getRequestDispatcher("doPostServlet.jsp").forward(request, response);
        }
    }

重写doPost方法,对请求内容进行utf-8编码
再在控制台打印测试,之后转发给doPostServlet.jsp页面

03

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>接受doPostServlet数据</title>
</head>
<body>
<h3>接受doPostServlet的数据</h3>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    out.print(path);
    out.print("<br>");
    out.print(basePath);
    out.print("<br>");
%>
parm1:  <% out.print(request.getParameter("parm1"));%>
<br>
parm2:  <% out.print(request.getParameter("parm2"));%>
</body>
</html>

打印path、basepath、parm1与parm2的值。

04

image

成功!

补充说明

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         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>doPostServlet</servlet-name>
        <servlet-class>doPostServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>doPostServlet</servlet-name>
        <url-pattern>/doPostServlet</url-pattern>
    </servlet-mapping>
</web-app>

web.xml中需要添加Servlet与url的映射

posted @ 2022-09-13 17:22  ll2001gjh  阅读(43)  评论(0)    收藏  举报