java把文本框内容存到数据库怎么弄出来的呢
Java如何将文本框内容存到数据库并显示出来?
在Java开发中,将用户在文本框中输入的内容存储到数据库,并在需要时从数据库中取出显示,是常见的操作,本文将详细介绍如何实现这一过程,包括前端页面的设计、后端代码的编写以及数据库的配置和操作。
前端页面设计
我们需要一个HTML页面,其中包含一个文本框和一个按钮,用于接收用户的输入,我们还需要另一个文本框来显示从数据库中取出的内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">文本框内容存储与显示</title>
</head>
<body>
<h2>输入文本</h2>
<input type="text" id="inputText" placeholder="请输入文本">
<button onclick="saveToDatabase()">保存</button>
<h2>显示文本</h2>
<input type="text" id="displayText" readonly>
<script src="script.js"></script>
</body>
</html>
在上面的代码中,我们使用了两个<input>元素,分别用于输入和显示文本。saveToDatabase函数将在用户点击“保存”按钮时被调用,该函数将触发JavaScript与后端进行交互,以保存文本框内容到数据库。
后端代码编写
我们需要编写后端代码,以便处理来自前端的请求,并将数据存储到数据库中,这里我们使用Servlet来实现这一功能。

创建Servlet类
创建一个名为TextServlet的Servlet类,用于处理保存文本框内容的请求。
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TextServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String inputText = request.getParameter("inputText");
saveTextToDatabase(inputText);
response.sendRedirect("index.html"); // 重定向回首页
}
private void saveTextToDatabase(String text) {
String url = "jdbc:mysql://localhost:3306/yourdatabase"; // 替换为你的数据库URL
String user = "yourusername"; // 替换为你的数据库用户名
String password = "yourpassword"; // 替换为你的数据库密码
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = DriverManager.getConnection(url, user, password);
String sql = "INSERT INTO texts (content) VALUES (?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, text);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
在这个Servlet中,我们首先通过request.getParameter("inputText")获取用户在文本框中输入的内容,我们连接到数据库,并使用PreparedStatement插入到名为texts的表中,请确保你已经在数据库中创建了相应的表,并包含了一个名为content的列。
配置web.xml文件
为了确保我们的Servlet能够正确运行,我们需要在web.xml文件中进行配置。
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="4.0">
<servlet>
<servlet-name>TextServlet</servlet-name>
<servlet-class>com.example.TextServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TextServlet</servlet-name>
<url-pattern>/saveText</url-pattern>
</servlet-mapping>
</web-app>
在这个配置文件中,我们将TextServlet映射到了/saveText路径上,当用户访问http://yourserver/yourapp/saveText时,就会触发TextServlet的doPost方法。
从数据库中取出并显示内容
我们需要编写代码来从数据库中取出之前保存的内容,并将其显示在文本框中,我们可以在同一个Servlet中添加一个方法来实现这一功能。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String displayText = getTextFromDatabase();
request.setAttribute("displayText", displayText); // 设置属性,以便在JSP中使用
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); // 指向JSP页面
dispatcher.forward(request, response); // 转发请求和响应
}
private String getTextFromDatabase() {
String url = "jdbc:mysql://localhost:3306/yourdatabase"; // 替换为你的数据库URL
String user = "yourusername"; // 替换为你的数据库用户名
String password = "yourpassword"; // 替换为你的数据库密码
String content = null;
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = DriverManager.getConnection(url, user, password);
String sql = "SELECT content FROM texts LIMIT 1"; // 假设只取一条记录,可以根据需要修改SQL语句
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
content = resultSet.getString("content");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return content;
}
在这个代码片段中,我们定义了一个getTextFromDatabase方法,该方法连接到数据库,执行SQL查询以获取最新的文本内容,并将其返回,在doGet方法中,我们调用了这个方法,并将结果存储在request对象的属性中,以便在JSP页面中使用。
JSP页面展示结果
我们需要在JSP页面中展示从数据库中取出的内容,可以在之前的HTML页面基础上添加一个JSP文件,例如index.jsp。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>显示文本</title>
</head>
<body>
<h2>显示文本</h2>
<input type="text" id="displayText" value="${displayText}" readonly>
</body>
</html>
在这个JSP页面中,我们使用了EL表达式${displayText}来显示从Servlet传递过来的文本内容。
相关文章

发表评论