2015-01-06 15 views
0

我在搜索中遇到困難(select sql語句)。如何將我輸入的值放入文本框中,並在sql查詢 中使用它,以便我可以搜索與插入的值有關的部門名稱。使用文本框查詢jsp文件的SQL查詢和按鈕

我不知道正確的查詢這個 「SELECT * FROM部門,在那裏DEPARTMENT_NAME = ' 」%搜索%「'」

這裏是我下面的JSP文件:

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

<head> 
/head> 


<body> 

     <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost/department" 
    user="root" password="root"/> 

<sql:query dataSource="${snapshot}" var="sql"> 
SELECT * from department; 
<!-- SELECT * FROM department where department_name ='"%search%"'--> 
</sql:query> 

    <FORM NAME="form1" METHOD="POST"> 
    <input type="text" name="search"/> 
    <INPUT TYPE="BUTTON" VALUE="Button 1"> 
    </FORM><br> 


    <table border=1> 
     <thead> 
      <tr> 
       <th>department Id</th> 
       <th>department Name</th> 

       <th colspan=1>Action</th> 
      </tr> 
     </thead> 
     <tbody> 
     <c:forEach var="user" items="${sql.rows}"> 
       <tr> 
        <td><c:out value="${user.department_id}" /></td> 
        <td><c:out value="${user.department_name}" /></td> 
        </tr> 
      </c:forEach> 
     </tbody> 
    </table> 


</body> 
</html> 
+0

閱讀第一段:http://docs.oracle.com/javaee/5/tutorial/doc/bnald.html換句話說,世界上每個理智的JSP開發人員都真誠地希望你不要在生產中使用它。 – BalusC

回答

-2

在拳頭,插入paramerer到您的SQL查詢

<sql:query dataSource="${snapshot}" var="sql"> 
SELECT * from department WHERE department_name = <%= request.getParameter("query") %>; 
</sql:query> 

更改方法的方法= 「get」 和

<input type="text" name="query"/> 
<INPUT TYPE="submit"> 

當您單擊按鈕,鏈接就像

http://hostname.com/mywebapp/mypage.jsp?query=John+Smith

+0

現在感謝我可以使用文本框中的值。但是我有另一個問題 當我嘗試使用: 'SELECT * FROM部門WHERE DEPARTMENT_NAME = <(%)=用request.getParameter( 「查詢」)%>;' 的錯誤出現的是: ** java.sql中。 SQLException:'where子句'中的未知列'Math'** 它搜索列名但不搜索列中的數據 – user3496683

+1

現在可以了,謝謝! – user3496683

+0

修復嚴重的SQL注入攻擊漏洞後,我會刪除downvote。 – BalusC