使用jsp中的空格从db中删除数据

时间:2015-07-05 16:14:17

标签: java mysql web-services jsp jdbc


我无法从DB(MySql)中删除带有空格的数据,例如:
" blabla blabla"或" blabla",但没有空格的数据删除:" blablabla"

以下是我在JSP中的价值:

<a href=deleteData?id=<%= rs.getString(1)></a>

和deleteData - servlet

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;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

@WebServlet("/deleteData")
public class deleteData extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String value = request.getParameter("id");


    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/evernoteDB",
                "evernoteDB", "0633739768z");


        Statement st = conn.createStatement();

        st.executeUpdate("DELETE FROM note WHERE noteName='" + value  + "'");

        response.sendRedirect("/userNotes.jsp");

        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

} 我认为问题出在-getString函数中,但是在oracle网站上提到这个函数正在获取所有行,我很失望

1 个答案:

答案 0 :(得分:0)

您正在重定向到您的href,并且URL中的空格被转换为%20,这就是为什么当您通过&#34; blabla blabla&#34;您的删除不匹配结果。你应该消毒你的价值。

快速的方式:

将%20替换为空字符串

正确方法:Java: How to unescape HTML character entities in Java?