日期:2014-05-17  浏览次数:20769 次

请教各位老师,不改xml,如何在页面中提交后,修改数据库?
本帖最后由 dawnspace 于 2013-03-05 21:27:57 编辑
我是WEB新手,工作中遇到一个问题,向各位老师求助。

有一个WEB的应用。由于某些原因,不能修改XML配置文件,只能改一个JSP文件。
这个JSP页面开始就直接连接数据库,从一个表里读数据,然后通过table显示到这个JSP页面中。


现在老板要我在在这个表格每行前面加个勾选框,然后页面下面加个按钮。

被勾选的行,再提交后。要求,数据库里面删除相应勾选的记录。


我对jsp的了解仅仅在于,通过JS,获取勾选的行,然后页面提交,通过 servlet 在后台删除数据。
但是这样做,好像要添加XML配置,还要加 servlet 。现在这些都不允许。

我想请教各位老师。能不能直接在页面里面通过嵌入的JAVA程序和JS就把这项工作完成?不涉及修改XML配置文件和ACTION?(简单的说:如何点按钮,执行JAVA程序?)
不能用javascript来连数据库。写入。

JSP文件大致如下:


<%
读取数据库,获取数据……list
%>
<script>
function dell( ){
     这里怎么写?或者是在上面JAVA代码部分加???
}

</scrritp>
<table>
<%
for( list )
{
%>
<tr><%=......list.get(i)......%></tr>
<%
}
%>
<input type="button" onclik="dell( )">










jsp java

------解决方案--------------------
那就用form:
<form method="post" action="new.jsp">
</form>
------解决方案--------------------
写了个例子,在同一个JSP页面处理删除操作,主要是将要删除的记录id作为当前jsp页面的参数传入,若参数不为空则获取deleteIds参数信息执行删除操作,希望能帮到你~~

index.jsp文件如下:

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%
//驱动类名
String className = "org.gjt.mm.mysql.Driver";
// 数据库URL
String url = "jdbc:mysql://localhost/win";
// 用户名
String userName = "root";
// 密码
String password = "";

String listSql = "select * from email_history order by id limit 1,100";
String deleteSql = "delete from email_history where id in (%s)";

Class.forName(className);
Connection conn = DriverManager.getConnection(url, userName, password);
Statement stmt = conn.createStatement();

String deleteIds = request.getParameter("deleteIds");
if(deleteIds!=null && !"".equals(deleteIds)) {
stmt.execute(String.format(deleteSql, deleteIds));
}
%>
<html>
<head>
<title>会议信息</title>
</head>

<body>
<table border="1">
<%
ResultSet rs = stmt.executeQuery(listSql);
String ids = "";
while (rs.next()){
ids += "," + rs.getInt("id");
%>
<tr>
<td><input type="checkbox" id='checkbox_<%=rs.getInt("id") %>' name='checkbox_<%=rs.getInt("id") %>' onclick="doCheck()" /></td>
<td><%=rs.getInt("id") %></td>
<td><%=rs.getString("title") %></td>
<td><%=rs.getString("from_email").replaceAll("<","&lt;").replaceAll(">","&gt;") %></td>
<td><%=rs.getString("to_email") %></td>
</tr>
<%
}
if(!"".equals(ids)) {
ids = ids.substring(1);
}
%>
<tr>
<td colspan="5">
<input type="checkbox" id="checkall" name="chec