JSP使用sql标记请求用户输入和查询数据库

时间:2015-10-11 01:54:49

标签: jsp jdbc jstl derby javadb

我有一个jsp页面,我使用sql标签来查询,更新和创建数据库中的列。我想询问用户输入,当他们插入输入时,查询数据库输入的内容。我看不出怎么做。如何显示和输入用户是否提交该输入,然后使用sql标签将该输入作为查询发送?我相信用户输入必须放在代码的“where NAME =''”部分。这是我的代码:

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <sql:setDataSource var="data" driver="org.apache.derby.jdbc.ClientDriver"
     url="jdbc:derby://localhost:1527/testing"
     user="testing"  password="testing"/>
    </head>

    <body>


   <sql:query var="t" dataSource="$ {data}">
        SELECT NAME FROM DATA WHERE NAME = ''
    </sql:query>    



    </body>
</html>

1 个答案:

答案 0 :(得分:0)

首先,您需要像这样查询数据库中的数据

<sql:query var="data" >
    SELECT * FROM public.DATA where NAME = ?
    <sql:param value="${param.searchString}" />
</sql:query>

在这种情况下,searchString(我们使用的param.searchString就是我们的搜索字符串)将是输入文本框的名称,如下所示

<input type="text" name="searchString" />

然后,根据您的要求,您可以使用范围变量data来显示使用forEach或其他任何内容。

另见