0

我想发送通过单击收音机和服务器获取的 queryString 以在 xml 中获得响应。我几乎接近解决方案,无法调试为什么它不起作用的问题。

<script>

$(document).ready(
                function() {
                       $("#myCity").click(  
                    /* $("input[type=radio][name=myCity]").click( */
                                       function() {
                                                 var radioCity = $('input:radio[name=myCity]:checked').val(); 
                                              /* radioCity = $('input[name=myCity]').filter(':checked').value();  */

                                              link = "http://localhost:8080/Shipping_Order/getCity_xml.jsp?qString="+radioCity;

                                        $.ajax({ 
                                            type:"GET",
                                            url : link,
                                            data : radioCity,
                                            dataType : "xml",
                                            success : function() {

                                                /* var myCity = $('input:radio[name=myCity]:checked').value; */
                                                /* var myCity = $('input[name=myCity]:radio:checked').val() */

                                                for ( var i = 0; i < xmlDoc.getElementsByTagName("city").length; i++) {

                                                    $("#radioTable").append(
                                                                    '<tr><td id="username"'+i+'>'
                                                                            + xmlDoc
                                                                                    .getElementsByTagName("username")[i].childNodes[0].nodeValue
                                                                            + '</td><td id="city"'+i+'>'
                                                                            + xmlDoc
                                                                                    .getElementsByTagName("city")[i].childNodes[0].nodeValue
                                                                            + '</td> <td id="contact"'+i+'>'
                                                                            + xmlDoc
                                                                                    .getElementsByTagName("contact")[i].childNodes[0].nodeValue
                                                                            + '</td></tr>');

                                                }
                                            }

                                        });
                                    });
                });

在 jQuery 的点击事件中,变量“radioCity”获取当前单选值,而 ajax“url”通过 GET 请求通过 queryString 发送该值。服务器 (getCity_xml.jsp) 在 xml 数据中响应请求,稍后它将附加选择器名称#radioTable。

在我创建的 HTML 中

getCity_xml.jsp

<%
response.setContentType("text/xml");

try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/shipping_order","root","root");
Statement st = con.createStatement();
String myCity = request.getParameter("qString");
ResultSet rs = st.executeQuery("select username, contact, city from user where city ="+myCity);

while(rs.next())
{

    out.println("<user>");
    out.println("<username>"    +rs.getString(1)+   "</username>");
    out.println("<contact>"     +rs.getInt(2)+      "</contact>");
    out.println("<city>"        +rs.getString(3)+   "</city>");
    out.println("</user>"); 

}


rs.close();
st.close();

con.close();

}catch (SQLException ex) {out.println("Exception Occured");}  

%>
4

1 回答 1

1

只是一个旁注。永远不会!!!111 在 SQL 查询中使用字符串连接。

通过这样做,您在代码中引入了 SQL 注入漏洞。考虑访问本教程:http ://www.tutorialspoint.com/jdbc/jdbc-statements.htm

至于问题,您应该用引号转义城市名称

ResultSet rs = st.executeQuery("select username, contact, city from user where city = '"+myCity + "'");
于 2013-02-21T13:07:49.830 回答