jsp 语言 JSP 处理表单提交的 JSON 对象深度嵌套示例

JSP阿木 发布于 2025-07-03 17 次阅读


JSP 处理表单提交的 JSON 对象深度嵌套示例

随着互联网技术的不断发展,前端与后端的数据交互变得越来越复杂。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛应用于各种编程语言中。在Java Web开发中,JSP(JavaServer Pages)技术常用于构建动态网页。本文将围绕JSP处理表单提交的JSON对象深度嵌套示例,详细讲解如何实现这一功能。

环境准备

在开始编写代码之前,我们需要准备以下环境:

1. JDK 1.8及以上版本

2. Apache Tomcat 9.0及以上版本

3. Eclipse IDE或其他Java开发工具

示例需求

假设我们有一个表单,用户可以输入以下信息:

- 用户名

- 密码

- 地址信息(包括:省、市、区、街道、门牌号)

- 联系方式(包括:电话、邮箱)

当用户提交表单时,我们需要将这些信息以JSON格式返回给前端。

代码实现

1. 创建JSP页面

我们需要创建一个JSP页面,用于展示表单并接收用户输入。

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>表单提交示例</title>


</head>


<body>


<form action="submitForm.jsp" method="post" id="myForm">


<label for="username">用户名:</label>


<input type="text" id="username" name="username" required><br>


<label for="password">密码:</label>


<input type="password" id="password" name="password" required><br>


<label for="province">省:</label>


<input type="text" id="province" name="province" required><br>


<label for="city">市:</label>


<input type="text" id="city" name="city" required><br>


<label for="district">区:</label>


<input type="text" id="district" name="district" required><br>


<label for="street">街道:</label>


<input type="text" id="street" name="street" required><br>


<label for="doorNumber">门牌号:</label>


<input type="text" id="doorNumber" name="doorNumber" required><br>


<label for="phone">电话:</label>


<input type="text" id="phone" name="phone" required><br>


<label for="email">邮箱:</label>


<input type="email" id="email" name="email" required><br>


<input type="submit" value="提交">


</form>


<script>


document.getElementById('myForm').onsubmit = function() {


var data = {


username: document.getElementById('username').value,


password: document.getElementById('password').value,


address: {


province: document.getElementById('province').value,


city: document.getElementById('city').value,


district: document.getElementById('district').value,


street: document.getElementById('street').value,


doorNumber: document.getElementById('doorNumber').value


},


contact: {


phone: document.getElementById('phone').value,


email: document.getElementById('email').value


}


};


var jsonData = JSON.stringify(data);


this.action = 'submitForm.jsp';


this.method = 'post';


this.submit();


};


</script>


</body>


</html>


2. 创建处理表单提交的Servlet

接下来,我们需要创建一个Servlet来处理表单提交,并将JSON对象返回给前端。

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;


import java.io.PrintWriter;

@WebServlet("/submitForm.jsp")


public class SubmitFormServlet extends HttpServlet {


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


response.setContentType("application/json;charset=UTF-8");


PrintWriter out = response.getWriter();


String username = request.getParameter("username");


String password = request.getParameter("password");


String province = request.getParameter("province");


String city = request.getParameter("city");


String district = request.getParameter("district");


String street = request.getParameter("street");


String doorNumber = request.getParameter("doorNumber");


String phone = request.getParameter("phone");


String email = request.getParameter("email");

String jsonData = "{"username":"" + username + "","password":"" + password + "","address":{"province":"" + province + "","city":"" + city + "","district":"" + district + "","street":"" + street + "","doorNumber":"" + doorNumber + ""},"contact":{"phone":"" + phone + "","email":"" + email + ""}}";


out.print(jsonData);


out.flush();


}


}


3. 配置web.xml

我们需要在web.xml中配置Servlet映射。

xml

<web-app>


<servlet>


<servlet-name>SubmitFormServlet</servlet-name>


<servlet-class>SubmitFormServlet</servlet-class>


</servlet>


<servlet-mapping>


<servlet-name>SubmitFormServlet</servlet-name>


<url-pattern>/submitForm.jsp</url-pattern>


</servlet-mapping>


</web-app>


总结

本文通过一个简单的示例,讲解了如何在JSP中处理表单提交的JSON对象深度嵌套。在实际开发中,我们可以根据需求调整表单内容和JSON结构,实现更复杂的数据交互。希望本文对您有所帮助。