Java 如何将数据从servlet获取到JSP页面?
我正在开发一个小型SQLServlet应用程序,它从html页面的文本区域接收sql命令,将命令发送到一个servlet,该servlet建立sql连接,并将结果集放入arraylist中。我已经记下了所有这些,我可以在JavaServlet类中将列名打印到浏览器中。我需要做的一件事是使用JSP页面将结果打印到表中。JSP页面看起来就像我们第一次使用的html页面。我不知道如何将arraylist从servlet获取到要向用户显示的JSP页面 以下是HTML页面:Java 如何将数据从servlet获取到JSP页面?,java,tomcat,servlets,Java,Tomcat,Servlets,我正在开发一个小型SQLServlet应用程序,它从html页面的文本区域接收sql命令,将命令发送到一个servlet,该servlet建立sql连接,并将结果集放入arraylist中。我已经记下了所有这些,我可以在JavaServlet类中将列名打印到浏览器中。我需要做的一件事是使用JSP页面将结果打印到表中。JSP页面看起来就像我们第一次使用的html页面。我不知道如何将arraylist从servlet获取到要向用户显示的JSP页面 以下是HTML页面: <html>
<html>
<head>
<title>WebApp</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="background-color:blue;">
<center>
<font color="white">
<h1> Welcome to the Project 4 Remote Database Management System</h1>
<hr>
You are connected to the Project4 database. <br>Please enter any valid SQL query or update statement.<br>
If no query/update command is given the Execute button will display all supplier information in the database. <br>All execution results will appear below.
<br>
<br>
<form action="NewServlet" method="post">
<textarea rows="10" cols="60"name="command"></textarea>
<br>
<button type="submit">Execute Query</button>
<button type="submit">Clear Command</button>
</form>
<hr>
<h1>Database Results</h1>
</font>
</body>
</html>
以下是JSP页面的开头:
<html>
<head>
<title>WebApp</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="background-color:blue;">
<center>
<font color="white">
<h1> Welcome to the Project 4 Remote Database Management System</h1>
<hr>
You are connected to the Project4 database. <br>Please enter any valid SQL query or update statement.<br>
If no query/update command is given the Execute button will display all supplier information in the database. <br>All execution results will appear below.
<br>
<br>
<form action="NewServlet" method="post">
<textarea rows="10" cols="60"name="command"></textarea>
<br>
<button type="submit">Execute Query</button>
<button type="submit">Clear Command</button>
</form>
<hr>
<h1>Database Results</h1>
<%
DO TABLE STUFF HERE TO OUTPUT SQL RESULTS
%>
</font>
</body>
</html>
网络应用
欢迎使用Project 4远程数据库管理系统
您已连接到Project4数据库
请输入任何有效的SQL查询或更新语句。
如果未发出查询/更新命令,则执行按钮将显示数据库中的所有供应商信息
所有执行结果将显示在下面。
执行查询
明确命令
数据库结果
我想我将创建一个javaBean来存储数组,以便JSP页面可以访问列arraylist。然后使用for循环遍历数组列表,以便创建表列如何将JSP页面链接到servlet,以便if可以获得所需的信息?
我必须在servlet中进行sql连接,而不能在JSP页面中进行连接 在servlet中,将数据存储在请求属性中:
request.setAttribute("rows", rows);
在JSP中,用于在行上循环:
<c:forEach var="row" value="${rows}">
...
</c:forEach>
...
不要在JSP中使用Java Scriptlet。在servlet中,将数据存储在请求属性中:
request.setAttribute("rows", rows);
在JSP中,用于在行上循环:
<c:forEach var="row" value="${rows}">
...
</c:forEach>
...
不要在JSP中使用Java Scriptlet。在servlet方法中,在页面上下文中设置属性,如下所示
HttpServletRequest req = (HttpServletRequest)request;
.... // find out what to put
req.getPageContext.setAttribute('some', objectYouFound);
在jsp中,使用el访问变量:
${some}
在servlet方法中,在页面上下文中设置属性,如下所示
HttpServletRequest req = (HttpServletRequest)request;
.... // find out what to put
req.getPageContext.setAttribute('some', objectYouFound);
在jsp中,使用el访问变量:
${some}
您的当前代码几乎没有问题: (1) 单个servlet实例将在所有请求线程之间共享,因此您不应该为servlet类创建实例变量,即
Connection connection;
Vector<String> columnNames = new Vector<String>();
你可以看一个很好的例子
(3) 使用
request.setAttribute
将结果设置为请求对象,然后您可以检索到下一个JSP(结果)页面。您当前的代码几乎没有问题:
(1) 单个servlet实例将在所有请求线程之间共享,因此您不应该为servlet类创建实例变量,即
Connection connection;
Vector<String> columnNames = new Vector<String>();
你可以看一个很好的例子
(3) 使用
request.setAttribute
将结果设置为request对象,然后可以检索到下一个JSP(结果)页面。这一点很好!我确实注意到,每次重新加载页面时,都会将相同的列名附加到向量中!说得好!我确实注意到,每次重新加载页面时,都会将相同的列名附加到向量中!