gpt4 book ai didi

java - Java Servlet 中的数据表独立编辑器

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:34 25 4
gpt4 key购买 nike

我将 DataTables 独立编辑器用于我的 Web 应用程序中的字段。该软件的创建者有 PHP 类,但没有 Java 类,因此我快速创建了一个 Java servlet 来接受要编辑的传入字段。 javascript 如下:(如您所见,一个 url 有不同的字段)

editor = new $.fn.dataTable.Editor( {
ajax: "/json/fields/server",
fields: [ {
label: "Status:",
name: "status",
type: 'radio',
options: [
{ label: 'Enabled', value: 'Enabled' },
{ label: 'Disabled', value: 'Disabled' }
]
}, {
label: "Server IP address:",
name: "server-ip"
}, {
label: "Polling period:",
name: "poll-period"
}, {
name: "protocol", // `label` since `data-editor-label` is defined for this field
type: "select",
options: [
{ label: 'TCP', value: 'TCP' },
{ label: 'UDP', value: 'UDP' }
]
}
]
} );

我在我的 java servlet 中使用了类似这样的东西:

String serverid = request.getParameter("serverid");
String[] status = {"status", request.getParameter("data[keyless][status]")};
String[] server-ip = {"server-ip", request.getParameter("data[keyless][server-ip]")};
String[] protocol = {"protocol", request.getParameter("data[keyless][protocol]")};

String[][] fields = {status, server-ip, protocol};

Connection conn = null;
PreparedStatement pst = null;
String write = null;
try {
conn = ConnectionManager.getConnection();
for(String[] field : fields){
if(field[1] != null){
write = "{\"data\":[{\"" + field[0] + "\":\"" + field[1] + "\"}]}";

pst = conn.prepareStatement("UPDATE server SET " + field[0] + " = ? WHERE id = ?");
pst.setString(1, field[1]);
pst.setString(2, serverid);
pst.execute();
pst.close();

break;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBUtil.close(conn);
DBUtil.close(pst);
}

response.setContentType("application/json");
PrintWriter writer = response.getWriter();
if(write != null)
writer.write(write);
writer.close();

我首先使用带有字段名的字符串数组来防止sql注入(inject)攻击,但我不能使用参数,因为字段名是动态的。

我的问题是,是否有更好的方法来完成此任务?

最佳答案

是的。无需重新发明轮子。您只需访问 http://jed-datatables.net 就可以节省很多时间。 .它包含使用数据表所需的所有示例。

关于java - Java Servlet 中的数据表独立编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com