【问题标题】:Update mySql table Based on jsp page基于jsp页面更新mySql表
【发布时间】:2014-06-12 06:06:38
【问题描述】:

朋友我有一个jsp页面,它从mysql表中检索数据并以表的形式显示它们。我还将显示另一列,其中包含一个将 Status 赋予 1 的按钮。单击状态按钮时,我需要更新数据库表。

以下是jsp的代码

<form action="Edit" method="post">
<table cellspacing="8">
<tr>
    <td><b>Name</b>
    </td>
    <td><b>Place</b>
    </td>
    <td><b>Gender</b>
    </td>
    <td><b>UserName</b>
    </td>
    <td><b>Password</b>
    </td>
    <td><b>Status</b>
    </td>
    <td></td>
</tr>
<%
ViewService vs = new ViewService();
ResultSet rs = vs.getRecords();
while(rs.next())
{
    %>
    <tr>
    <td><%=rs.getString(2) %></td>
    <td><%=rs.getString(3) %></td>
    <td><%=rs.getString(4) %></td>
    <td><%=rs.getString(5) %></td>
    <td><%=rs.getString(6) %></td>
    <td><%=rs.getString(7) %></td>
    <td></td>
     <td><input type="text" name="userid" value="<%=rs.getString(2) %>"                                        

             style="visibility: hidden;" > <input type="submit" value="Active"></td>
       </tr>
     <%     }
     %>
     </table>
    </form>

而我的编辑 servlet 是

package Admin;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

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 DBcon.Dbcon;
@WebServlet("/Edit")
public class Edit extends HttpServlet {
private static final long serialVersionUID = 1L;
public Edit() {
    super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)     

throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)  

throws ServletException, IOException {
    Connection con;
    PreparedStatement ps;
    Dbcon db = new Dbcon();
    con = db.getCon();
    int status=1;
    int userid =Integer.parseInt(request.getParameter("userid"));
    try {
        ps=con.prepareStatement("update tbluser set status = ? where userid 

= ?");
        ps.setInt(7,status);
        ps.setInt(1, userid);
        ps.executeUpdate();
        con.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    response.sendRedirect("ViewUser.jsp");
}

}

【问题讨论】:

  • 那是什么问题..如果您遇到错误,请解释它,以便我们通过它解决它
  • 我们是否应该继续为你编写代码??? /跨度>
  • 您提到了您正在尝试做的事情,请说明您面临的问题是什么?
  • 问题出在哪里?

标签: java mysql jsp


【解决方案1】:

while 循环内

将表单标签放在while循环(

)中而不是
....
<td><%=rs.getString(7) %></td>
<td></td>
 <td>
   <form action="Edit" method="post">
       <input type="text" name="userid" value="<%=rs.getString(2) %>" style="visibility: hidden;" > <input type="submit" value="Active">
    </form>
 </td>
   </tr>
 <%     }
 %>
 </table>

使用超链接代替表单和按钮

<td>
   <a href="Edit?userd=<%=rs.getString(2) %>"> Activate </a>
<td>

【讨论】:

    【解决方案2】:

    试试这个兄弟,我修改了你的代码。

    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
    
    throws ServletException, IOException {
        Connection con;
        PreparedStatement ps;
        Dbcon db = new Dbcon();
        con = db.getCon();
        int status=1;
        int userid =Integer.parseInt(request.getParameter("userid"));
        try {
            ps=con.prepareStatement("update tbluser set status = '"+status+"' where userid = '"+userid+"'");
            ps.executeUpdate();
            int updateQuery = ps.executeUpdate();
            con.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.sendRedirect("ViewUser.jsp");
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多