JAVAEE如何实现网页(jsp)间的数据传输?一文总结

刚刚接触到JAVAEE的WEB开发,解释不周的地方希望感谢指正!!!

情景如下:

我的使用是21版的IDEA,9.03版本的tomcat,来做一个示范。

构建项目

点击下一步 -> 完成,等待项目构建结束。

初始项目结构如下:

目录不全的情况可以右键点击根目录创建目录补全即可,如果不存在webapp目录需要添加web服务来补全

步骤如下:文件->项目结构->模块:

选择web,选择正确的路径点击应用后确定

此时这个项目的基础模型就构建好了。

配置TOMCAT

要想把程序运行到网页上,需要先配置好服务器

点击编辑配置,点击加号,下滑选择tomcat服务器,点击本地

选择配置,找到下载好的tomcat服务器,点击修复部署工件,如果没警告则不需要点击

选择war exploded,点击应用,配置完成

以下是初始的index.jsp文件:

复制代码
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="hello-servlet">Hello Servlet</a>
</body>
</html>

点击小三角运行,会在浏览器上看到页面,说明部署成功

网页操作

首先我在index中添加一个输入文本框以及提交按钮,代码如下:

复制代码
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<form action="output" method="post">
    输入内容:<input type="text" name="input">
    <input type="submit" value="提交">
</form>
</body>
</html>

可以分析以下,提交用来提交表单到action,接下来我们需要添加一个接收信息的网页hi.jsp

在webapp目录下新建网页hi.jsp:

代码如下:

复制代码
<%--
  Created by IntelliJ IDEA.
  User: 31168
  Date: 2024/9/27
  Time: 23:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>接收信息</title>
</head>
<body>
    <h1>Hi!</h1>
    接收的信息:${message}
</body>
</html>

即,我们这个网页接收一个名为message的变量,并输出到网页上。

现在的问题是,我们有了输出,也有了输入,但是我们现在需要连接两个网页了,这里我使用Servlet来连接两个网页。

Servlet连接网页

在src\main\java目录下的包内新建java类 PrintServlet.java

复制代码
package com.panjyash.ldu.jsptojsp;

import javax.servlet.RequestDispatcher;
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("/output")
public class PrintServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        // 从请求中获取名为 "input" 的参数,而不是从响应中获取
        String input = request.getParameter("input"); // 修正这里

        // 设置响应的内容类型
        response.setContentType("text/html;charset=UTF-8");

        // 将输入的内容设置为请求属性,以便在 JSP 中使用
        request.setAttribute("message", input);

        // 转发请求到 hi.jsp
        RequestDispatcher dispatcher = request.getRequestDispatcher("hi.jsp");
        dispatcher.forward(request, response);
    }
}

最后效果一览:

相关推荐
程序员小假24 分钟前
我们来说一下 MySQL 的慢查询日志
java·后端
独自破碎E1 小时前
Java是怎么实现跨平台的?
java·开发语言
To Be Clean Coder1 小时前
【Spring源码】从源码倒看Spring用法(二)
java·后端·spring
xdpcxq10291 小时前
风控场景下超高并发频次计算服务
java·服务器·网络
想用offer打牌1 小时前
你真的懂Thread.currentThread().interrupt()吗?
java·后端·架构
橘色的狸花猫1 小时前
简历与岗位要求相似度分析系统
java·nlp
独自破碎E1 小时前
Leetcode1438绝对值不超过限制的最长连续子数组
java·开发语言·算法
用户91743965392 小时前
Elasticsearch Percolate Query使用优化案例-从2000到500ms
java·大数据·elasticsearch
yaoxin5211232 小时前
279. Java Stream API - Stream 拼接的两种方式:concat() vs flatMap()
java·开发语言
坚持学习前端日记2 小时前
2025年的个人和学习年度总结以及未来期望
java·学习·程序人生·职场和发展·创业创新